Linux 学习笔记
一、Linux 简介
Linux 是一套免费使用、开源的类 Unix 操作系统。 Linux 存在着许多不同的发行版本,但它们都使用了 Linux 内核。
发行版
Linux 的发行版本可以大体分为两类:
商业公司维护的发行版本,以著名的 Red Hat 为代表,比较典型的有 CentOS 。
社区组织维护的发行版本,以 Debian 为代表,比较典型的有 Ubuntu、Debian。
对于初学者学习 Linux ,推荐选择 CentOS 。
文件系统简介
在 Linux 操作系统中,所有被操作系统管理的资源,例如网络接口卡、磁盘驱动器、打印机、输入输出设备、普通文件或是目录都被看作是一个文件。 也就是说在 Linux 系统中有一个重要的概念:一切都是文件。
其实这是 UNIX 哲学的一个体现,在 UNIX 系统中,把一切资源都看作是文件,Linux 的文件系统也是借鉴 UNIX 文件系统而来。
二、Linux 基本命令
下面只是给出了一些比较常用的命令。推荐一个 Linux 命令快查网站,非常不错,大家如果遗忘某些命令或者对某些命令不理解都可以在这里得到解决。
Linux 命令大全:man.linuxde.net
目录切换命令 cd
cd usr
: 切换到该目录下 usr 目录cd ..
: 切换到上一层目录cd /
: 切换到系统根目录cd ~
: 切换到用户主目录cd -
: 切换到上一个操作所在目录
目录操作命令(增删改查)
mkdir 目录名称
: 增加目录。ls
:查看目录信息。ll
: 查看该目录下的所有目录和文件的详细信息,ll 是 ls -l 的别名find 目录 参数
: 寻找目录(查)。
示例:
① 列出当前目录及子目录下所有文件和文件夹:find .
② 在/home目录下查找以.txt 结尾的文件名:find /home -name "*.txt"
,忽略大小写:find /home -iname "*.txt"
③ 当前目录及子目录下查找所有以.txt 和.pdf 结尾的文件:find . \( -name "*.txt" -o -name "*.pdf" \)
或find . -name "*.txt" -o -name "*.pdf"
mv 目录名称 新目录名称
: 修改目录的名称(改)。mv 目录名称 目录的新位置
: 移动目录的位置---剪切(改)。cp -r 目录名称 目录拷贝的目标位置
: 拷贝目录(改),-r 代表递归拷贝 。
注意:cp 命令不仅可以拷贝目录还可以拷贝文件,压缩包等,拷贝文件和压缩包时不 用写-r 递归。rm [-rf] 目录
: 删除目录(删)。注意:rm 不仅可以删除目录,也可以删除其他文件或压缩包,为了增强大家的记忆, 无论删除任何目录或文件,都直接使用rm -rf 目录/文件/压缩包。
文件操作命令(增删改查)
touch 文件名称
: 文件的创建(增)。cat/more/less/tail 文件名称
:文件的查看(查)。
命令 tail -f 文件 可以对某个文件进行动态监控,例如 tomcat 的日志文件, 会随着程序的运行,日志会变化,可以使用 tail -f catalina-2016-11-11.log 监控 文 件的变化 。vim 文件
: 修改文件的内容(改)。rm -rf 文件
: 删除文件(删)。du -sh
: 查看当前文件夹大小du -sh * | sort -n
: 统计当前文件夹(目录)大小,并按文件大小排序du -sk filename
: 查看指定文件大小ls | wc -w
: 查看当前目录下的文件数量du -h --max-depth=1
:查看当前文件夹大小
压缩文件的操作命令
Linux 中的打包文件一般是以.tar 结尾的,压缩的命令一般是以.gz 结尾的。而一般情况下打包和压缩是一起进行的,打包并压缩后的文件的后缀名一般.tar.gz。
压缩文件
命令:tar -zcvf 打包压缩后的文件名 要打包压缩的文件
z:调用 gzip 压缩命令进行压缩
c:打包文件
v:显示运行过程
f:指定文件名
示例:
假如 test 目录下有三个文件分别是:aaa.txt bbb.txt ccc.txt
如果我们要打包 test 目录并指定压缩后的压缩包名称为 test.tar.gz 可以使用命令:tar -zcvf test.tar.gz aaa.txt bbb.txt ccc.txt
或 tar -zcvf test.tar.gz /test/
解压压缩包
命令:tar [-xvf] 压缩文件
x:代表解压
示例:
将 /test 下的 test.tar.gz 解压到当前目录下可以使用命令:tar -xvf test.tar.gz
将 /test 下的 test.tar.gz 解压到根目录/usr 下: tar -xvf test.tar.gz -C /usr
c代表指定解压的位置
Linux 的权限命令
操作系统中每个文件都拥有特定的权限、所属用户和所属组。权限是操作系统用来限制资源访问的机制,在 Linux 中权限一般分为读(readable)、写(writable)和执行(excutable),分为三组。分别对应文件的属主(owner),属组(group)和其他用户(other),通过这样的机制来限制哪些用户、哪些组可以对特定的文件进行什么样的操作。
通过 ls -l 命令我们可以 查看某个目录下的文件或目录的权限
权限信息解释如下:
下面将详细讲解文件的类型、Linux 中权限以及文件有所有者、所在组、其它组具体是什么?
文件的类型:
d: 代表目录
-: 代表文件
l: 代表软链接(可以认为是 window 中的快捷方式)
Linux 中权限分为以下几种:
r:代表权限是可读,r 也可以用数字 4 表示
w:代表权限是可写,w 也可以用数字 2 表示
x:代表权限是可执行,x 也可以用数字 1 表示
文件和目录权限的区别:
对文件和目录而言,读写执行表示不同的意义。
文件:
r: 可以使用 cat 查看文件的内容
w: 可以修改文件的内容
x: 可以将其运行为二进制文件
目录
r: 可以查看目录下列表
w: 可以创建和删除目录下文件
x: 可以使用 cd 进入目录
需要注意的是: 超级用户可以无视普通用户的权限,即使文件目录权限是 000,依旧可以访问。
修改文件/目录的权限的命令:chmod
示例:
修改/test 下的 aaa.txt 的权限为文件所有者有全部权限,文件所有者所在的组有读写权限,其他用户只有读的权限。
chmod u=rwx,g=rw,o=r aaa.txt
或者 chmod 764 aaa.txt
Linux 用户管理
Linux 系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。
useradd 选项 用户名
: 添加用户账号userdel 选项 用户名
: 删除用户帐号usermod 选项 用户名
: 修改帐号passwd 用户名
: 更改或创建用户的密码passwd -S 用户名
: 显示用户账号密码信息passwd -d 用户名
: 清除用户密码
Linux 系统用户组的管理
每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理。不同 Linux 系统对用户组的规定有所不同,如 Linux 下的用户属于与它同名的用户组,这个用户组在创建用户时同时创建。
用户组的管理涉及用户组的添加、删除和修改。组的增加、删除和修改实际上就是对/etc/group文件的更新。
groupadd 选项 用户组
: 增加一个新的用户组groupdel 用户组
: 要删除一个已有的用户组groupmod 选项 用户组
: 修改用户组的属性
系统相关
top
: 实时显示 process 的动态free
: 查看系统内存使用情况cat /proc/meminfo
: 查看RAM使用情况
进程相关
ps -auxf | sort -nr -k 4 | head -10
: 找出占用内存资源最多的前 10 个进程ps -auxf | sort -nr -k 3 | head -10
: 找出占用 CPU 资源最多的前 10 个进程ps -ef | grep java
: 查看java服务netstat -nultp
: 查看已经使用的端口netstat -anp |grep 端口号
: 查看某个端口号netstat -lnt | grep 80
: 查看某个端口号端口占用
netstat -ano|findstr 8005(端口号) taskkill /pid 22376 /f (22376为对应的pid)
网络相关
查看 IP
下载net-tools
sudo apt-get install net-tools
输入命令
ifconfig
其中inet之后的就是ip地址,inet6之后的就是ipv6地址
开发相关
1、修改系统变量
vi /etc/profile
使配置文件生效
source /etc/profile
参考:
Ubuntu18.04查看本机IP
后端程序员必备的 Linux 基础知识+常见命令