Linux:基础详细版
Linux基础知识:
文件信息:
Linux是一个以根目录为核心,多个子目录和软链接组成的操作系统
linux中不同类型文件的颜色:
白色:普通文件
蓝色:目录
绿色:可执行文件
红色:压缩文件
青色:链接文件(或者浅蓝色)
黄色:块设备,也就是设备文件
灰色:其他文件
红色闪烁:表示链接文件有问题。
通过 ls -al 显示所有文件信息
[root@localhost test]# ls -al 总用量 16 drwxr-xr-x. 2 root root 56 10月 21 14:32 . dr-xr-x---. 16 root root 4096 10月 21 2022 .. -rw-r--r--. 1 root root 0 10月 14 22:29 123 -rw-r--r--. 1 root root 95 10月 9 23:31 1.txt -rw-r--r--. 1 root root 55 10月 9 23:08 2.txt -rw-r--r--. 1 root root 145 10月 9 23:09 3.txt
A:
代表普通文件
d 代表目录文件
I 代表链接文件
b 代表设备文件里可供存储的周边设备
c 代表设备文件里面的串行端口设备,如键盘鼠标
B:
B部分表示的是属主权限。
这里有四种模式,r(可读)/w(可写)/x(可执行)/-(无)
C:
C部分表示的是同组权限。
这里有四种模式,r(可读)/w(可写)/x(可执行)/-(无)
D:
D部分表示的是其他权限。
这里有四种模式,r(可读)/w(可写)/x(可执行)/-(无)
文件类型这里举个例子:
比如 r-xr-x--- 代表的信息:
r 读 w 写 x 执行 - 没有权限
r-x 代表所有者权限:有读的权限没有写的权限,有执行权限
r-x 代表所属组的权限:有读的权限没写的
— 代表其他人权限:没有任何去那先
E:
E表示硬链接数量,就是文件别名的数量。
F:
F表示的是属主的名称。
G:
G表示的是属组的名称。
H:
表示字节数。
I:
表示最后修改的时间。
j:
表示文件的名称。
补充知识:
Linux中包含放访问时间(atime)、修改时间(mtime)、状态修改时间(ctime)
命令行前缀:
[root@localhost~] 登陆用户名 @ 系统用户名 路径
Linux命令:
文件管理常用命令:
ls mkdir cd pwd cp rm mv touch chmod chown chgrp
目录信息查看命令: ls
英文愿意:list
所在路径:/bin/ls
执行权限:所有用户
参数:
a 显示所有文件及目录 (. 开头的隐藏文件也会列出)
[root@localhost test]# ls -a . .. 123 1.txt 2.txt 3.txt
注意:~ 路径,也就是 root 目录
l 将文件型态、权限、拥有者、文件大小等资讯详细列出
[root@localhost test]# ls -l 总用量 12 -rw-r--r--. 1 root root 0 10月 14 22:29 123 -rw-r--r--. 1 root root 95 10月 9 23:31 1.txt -rw-r--r--. 1 root root 55 10月 9 23:08 2.txt -rw-r--r--. 1 root root 145 10月 9 23:09 3.txt
i 检查i节点(inode)
i节点:每个文件和目录都有自己的id号,系统就是靠这个索引号来搜索查询文件
[root@localhost test]# ls -i 33790422 123 33790380 1.txt 33790384 2.txt 33790388 3.txt
d direct 显示当前目录本身
[root@localhost test]# ls -d .
创建文件夹命令: mkdir
英文愿意:make directories
所在路径:/bin/mkdir
执行权限:所有用户
eg:
[root@localhost test]# mkdir test [root@localhost test]# ls 123 1.txt 2.txt 3.txt test
参数:
-p 递归创建目录(例如先创目录a,再在a里创个目录b)
意思:确保目录名称存在,不存在就建一个
[root@localhost test]# mkdir -p test1/test2/test3 [root@localhost test]# ls test1/test2 test3
-v 显示创建过程
[root@localhost test]# mkdir -pv test2/test3/test4 mkdir: 已创建目录 "test2" mkdir: 已创建目录 "test2/test3" mkdir: 已创建目录 "test2/test3/test4"
-m 修改权限
[root@localhost test]# ll 总用量 12 drwxrwxrwx. 2 root root 6 10月 21 14:37 1
注:linux中文件权限解释见博客
https://blog.csdn.net/Simon_coder/article/details/78660978/
属主、属组、其他的权限可用数字表示
r = 4 w = 2 x = 1 - = 0
补充:
mkdir命令可以连续创建目录
mkdir test1 test2
创建带有空格的目录
mkdir "t est"
切换目录命令:cd
命令原意: change directories
所在的路径:shell 内置命令
执行权限:所有用户
参数:
cd …
进入当前目录
cd …/ 进入上一级目录
cd ~ 进入当前用户的主目录
cd - 返回进入此目录之前的目录
cd 进入当前用户的主目录
显示当前目录命令: pwd
命令原意:print working directories
执行权限:所有用户
所在路径:/usr/bin/pwd
文件拷贝命令: cp
原意:copy
命令所在路径: /bin/cp
执行权限:所有用户
eg:
[root@localhost test]# touch 1.txt [root@localhost test]# cp 1.txt 2.txt [root@localhost test]# ls 1.txt 2.txt
参数:
-r 复制目录
[root@localhost test]# cp -r test1 test2 [root@localhost test]# ls 1.txt 2.txt test1 test2
-p 保留文件的属性
如图所示两份文件所有时间都一样,包括时间
[root@localhost test]# cp -p 2.txt 3.txt [root@localhost test]# ll 总用量 0 drwxr-xr-x. 2 root root 6 10月 21 14:39 test1 drwxr-xr-x. 2 root root 6 10月 21 14:39 test2
-rp [源文件或目录] [目标目录]
补充:
可以用cp一次性复制多个文件
[root@localhost test]# cp 1.txt 2.txt test1 [root@localhost test]# ls test1 1.txt 2.txt
文件删除命令:rm
愿意:remove
命令所在路径: /bin/rm
执行权限:所有用户
参数:
-f (force) 表示将在不要求确认的情况下强行删除文件
$ rm -f testfile
-rf (recursion) 递归删除目录以及该目录中的所有内容
$ rm -rf testdirectory
通配符 删除所有以linux为前缀的文件
$ rm -rf linux*
rmdir 只有在目录为空时才会删除该目录
$ rmdir testdirectory
移动文件或者重命名命令 mv
原意:move
文件所在的路径:/bin/mv
执行权限:所有用户
语法:mv [源文件或目录][目标目录]
功能:移动文件、剪切文件、修改文件名称
eg:
改名:将源文件名 source_file 改为目标文件名 dest_file
mv source_file(文件) dest_file(文件)
剪切:将文件 source_file 移动到目标目录 dest_directory 中
mv source_file(文件) dest_directory(目录)
文件创建命令 touch
命令所在路径:/bin/touch
执行权限:所有用户
功能:创建空文件
补:修改文件或者目录的时间属性,包括存取时间和更改时间。若文件不存在,系统会建立一个新的文件。
补充:
创建带有空格的文件
touch "program files"
权限管理命令:chmod
命令愿意:change the permissions mode of a file
所在路径:/usr/bin/chmod
执行权限:所有用户
功能描述:改变文件或目录权限
命令语法:
chmod [{ugoa} {+-=}] [文件或目录] [mode = 421] [文件或目录]
参数:
-R 递归修改
-v 显示执行过程
u: user 文件或目录的所有者
g: group 文件或目录的所属组
o: other 除了文件或目录的所有者和所属组都是其他人
a: all 代表所有者,所属组,其他人
r: 读取权限,数字代号是4
文件:可以查看文件内容
目录:可以列出目录里中的内容
w:写入权限,数字代号2
文件:可以修改文件内容
目录:可以在目录中创建、删除文件
x:执行权限,数字代号1
文件:可以执行文件
目录:可以进入目录
-:没有权限,数字代号0
+:在原有的基础上增加权限
-:在原有的基础上取消权限
=:文件或目录唯一权限
例子:
修改文件权限:
[root@localhost test]# chmod 777 1.txt [root@localhost test]# ll 总用量 0 -rwxrwxrwx. 1 root root 0 10月 21 14:38 1.txt
对文件t2添加执行权限:
[root@localhost test]# ll 总用量 0 -rw-r--r--. 1 root root 0 10月 21 14:39 2.txt [root@localhost test]# chmod u+x 2.txt [root@localhost test]# ll 总用量 0 -rwxr--r--. 1 root root 0 10月 21 14:39 2.txt
更改文件属主命令:chown
命令的英文原意:change file ownership
命令所在的路径:/bin/chown
执行权限:所有用户
语法:chown [用户] [文件或者目录]
属组管理命令:chgrp
命令英文的原意:change file group ownership
命令所在的路径:/bin/chgrp
执行权限:所有用户
语法:chgrp [用户组] [文件或目录]
用户管理命令:
用户分类:root用户、系统用户、普通用户
root用户的ID是0
系统用户UID范围(1-999),大多数是不能登陆的
普通用户的UID范围(1000-60000)
普通用户管理命令:
useradd命令
语法:useradd [选项] [用户账号]
功能:建立用户账号,然后再用passwd设定账号的密码,再用userdel删除账号
注意:使用useradd建立的账号被保存在/etc/passwd 文本文件中
参数:
-c 加上备注文字
-d 指定用户登陆时的起始目录
-D 变更默认值
-e 指定账号的有效期限
-f 指定再密码过期多少天后关闭该账号
-g 指定用户所属的组群
-r 建立系统账号
-u 指定用户ID
passwd 命令
语法:passwd
关机命令:shutdown
poweroff:立刻关机
shutdown -h now:立刻关机(root用户使用)
-h (halt 停止,中止)
磁盘管理命令:
查看文件系统磁盘空间:df
df: (disk free)
语法:df [选项] [设备或文件名]
功能:检查文件系统的磁盘空间占用情况,显示所有文件系统对i节点和磁盘块的使用情况
注意:df查看的是文件系统
助于理解文件系统:
想想有多个搁板的冰箱,可用于存放各种物品。 这些货架帮助您按形状、大小、类型等组织杂货项目。相同的概念适用于文件系统,它是一种以人类可用的形式存储和组织任意数据集合的方法的体现
选项与参数:
a :列出所有的文件系统,包括系统特有的 /proc 等文件系统;
k :以KBytes 的容量显示各文件系统;
m :以MBytes 的容量显示各文件系统;
h :以 2 的n次方为计量单位, 以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示;
H :以 10 的n次方为计量单位, 以 M=1000K 取代 M=1024K 的进位方式;
t :显示各个指定类型的文件系统的磁盘空间的使用情况
T :显示文件系统类型, 连同该 partition 的 filesystem 名称 (例如 ext3) 也列出;
i :不用硬盘容量,而以 inode 的数量来显示
补充:换算
1B=8b
1KB=1024B=2^10B
1MB=1024KB=2^10KB
1GB=1024MB=2^10MB
1TB=1024GB=2^10GB
1PB=1024TB=2^10TB
案例:
将系统内所有的文件系统列出来
[root@localhost ~]# df 文件系统 1K-块 已用 可用 已用% 挂载点 devtmpfs 1913636 0 1913636 0% /dev tmpfs 1930640 0 1930640 0% /dev/shm tmpfs 1930640 12772 1917868 1% /run tmpfs 1930640 0 1930640 0% /sys/fs/cgroup /dev/mapper/centos-root 17811456 4628340 13183116 26% / /dev/sda1 1038336 188628 849708 19% /boot tmpfs 386128 28 386100 1% /run/user/0 /dev/sr0 4669162 4669162 0 100% /run/media/root/CentOS 7 x86_64
将容量结果以易读的容量格式显示出来
[root@localhost ~]# df -h 文件系统 容量 已用 可用 已用% 挂载点 devtmpfs 1.9G 0 1.9G 0% /dev tmpfs 1.9G 0 1.9G 0% /dev/shm tmpfs 1.9G 13M 1.9G 1% /run tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup /dev/mapper/centos-root 17G 4.8G 13G 29% / /dev/sda1 1014M 185M 830M 19% /boot tmpfs 378M 36K 378M 1% /run/user/0 /dev/sr0 4.5G 4.5G 0 100% /run/media/root/CentOS 7 x86_64
将系统内的所有特殊文件格式及名称都列出来
[root@www ~]# df -aT Filesystem Type 1K-blocks Used Available Use% Mounted on /dev/hdc2 ext3 9920624 3823112 5585444 41% / proc proc 0 0 0 - /proc sysfs sysfs 0 0 0 - /sys devpts devpts 0 0 0 - /dev/pts /dev/hdc3 ext3 4956316 141376 4559108 4% /home /dev/hdc1 ext3 101086 11126 84741 12% /boot tmpfs tmpfs 371332 0 371332 0% /dev/shm none binfmt_misc 0 0 0 - /proc/sys/fs/binfmt_misc sunrpc rpc_pipefs 0 0 0 - /var/lib/nfs/rpc_pipefs
查看文件或目录所占磁盘空间:du 命令
du:(disk usage)
语法:du [选项] [Names…]
功能:统计目录(或文件)所占磁盘空间的大小,显示磁盘空间的使用情况
选项与参数:
a :列出所有的文件与目录容量,因为默认仅统计目录底下的文件量而已。
b:以字节为单位列出磁盘空间的使用情况
c:除了显示个别目录或文件的大小外,同时也显示所有目录或文件的总和
h :以人们较易读的容量格式 (G/M) 显示;
s :列出总量而已,而不列出每个各别的目录占用容量;
S :不包括子目录下的总计,与 -s 有点差别。
k :以 KBytes 列出容量显示;
m :以 MBytes 列出容量显示;
案例:
只列出当前目录下的所有文件夹容量(包括隐藏文件夹):
[root@www ~]# du 8 ./test4 <==每个目录都会列出来 8 ./test2 ....中间省略.... 12 ./.gconfd <==包括隐藏文件的目录 220 . <==这个目录(.)所占用的总量
直接输入 du 没有加任何选项时,则 du 会分析当前所在目录里的子目录所占用的硬盘空间。
将文件的容量也列出来
[root@www ~]# du -a 12 ./install.log.syslog <==有文件的列表了 8 ./.bash_logout 8 ./test4 8 ./test2 ....中间省略.... 12 ./.gconfd 220 .
文件查看命令:
以页的形式显示文件内容:more
语法:more [选项] [文件名]
功能:
一页一页地显示内容,方便用户 逐页阅读
基本操作:
按空格: 显示下一页
按B键:显示上一页
按H键:查看帮助信息
按Q键:跳出more状态
按V键:进入vim模式
查找字符串:/字符串 , 按n查找下一个关键字,shift+n查找上一个
参数:
-num 一次显示行数
逐行显示文件内容:less 命令
语法:less [选项] [文件名]
**功能:**可以用上下键逐行显示内容
与more的区别:
区别:1、less可以按上下方向键来显示上下内容,而more不能通过上下方向键控制显示;2、less不必读整个文件,加载速度比more更快;3、less退出后shell不会留下刚显示的内容,而more退出后会在shell上留下刚显示的内容。
参数:
-N 在每行前输出行号
-m 显示读取文件的百分比
-c 从顶部刷新屏幕,并显示文件内容。
-f 强制打开文件,二进制文件显示时 不提示警告
-I 搜索的时候忽略大小写;除非搜索 串中包含大写字母
-M 显示读取文件的百分比、行号、总行数
-p pattern 在指定文件中搜索 pattern -s 把连续多个空白行作为一个空白行 显示
-Q 在终端下不响铃
cat 命令
语法:cat[选项] 文件 1文件 2 …
功能:把文件 串连接 后传到基本输出(输出到显示器或重定向到另一个文件)
参数:
-A --show-all 等价于-vET,显示所有字符,包括控制字符和非打印字符
-b --number-nonblank 对非空输出行编号
-e 等价于-vE
-E –show-ends在每行结束处显示$
-n --number 对输出的所有行编号
-s 当遇到有连续两行以上的空白行,就替换为一个空白行
-t 与-vT 等价
-v 显示除 Tab 和 Enter 之外的所有字符
-T 将跳格字符显示为^I
-help 显示帮助信息
案例:
把 textfile1 的文档内容加上行号后输入 textfile2 这个文档里:
cat -n textfile1 > textfile2
把 textfile1 和 textfile2 的文档内容加上行号(空白行不加)之后将内容附加到 textfile3 文档里:
cat -b textfile1 textfile2 >> textfile3
tac 命令
语法:tac 文件名
功能:将文件从最后一行开始倒过来将 内容数据输出到屏幕上。
nl 命令
类似于 cat -n 显示时输出行号,但是 不对空行编号。
head 命令
语法:head [选项] [文件名]
功能:显示文件的前几行
参数:
-n 输出文件前 n 行,默认输出前 10 行
-c 指定输出文件的大小,单位为 B
案例:
显示文件前3行
[root@localhost test]# head -n 3 1.txt 123 123 123
注意:默认带参赛 -n 10
显示文件前4个字节
[root@localhost test]# head -c 4 1.txt 123
tail 命令
语法:tail [选项] [文件名]
功能:显示文件的后几行
参数:
-n 输出文件后 n 行,默认输出后 10 行
-f 把 filename 最尾部内容显示在屏幕 上,并不断刷新,常用于日志文件的实时监控。
Ctrl+Z 结束命令
wc 命令
语法:wc [选项] [文件名]
功能:文件内容的统计命令。统计文件中的行数、字数、字符数。
参数:
c 统计文件的字节数
m 统计字符数。不能与-c 一起使用
l 统计文件的行数
L 打印最长行的长度
w 统计文件的字数,一个字被定义为由空白、跳格或换行字符分隔的字符串
案例:
$ wc testfile # testfile文件的统计信息 3 92 598 testfile # testfile文件的行数为3、单词数92、字节数598
find命令
语法: find [起始目录] [查找条件] [操作]
功能:在目录中搜索文件,并执行指定的操作
参数:
常用参数:
-a and 必须满足两个条件才显示
-o or 只要满足一个条件就显示
-name 按照文件名查找文件
-iname 按照文件名搜索,不区分文件名大小写
根据时间:
-atime n 文件被读取或者访问的时间
-type c 文件类型是 c 的文件
-size n 文件大小是n 单位
补:b 代表 512 位元组的区块,c 表示字元数,k 表示 kilo bytes,w 是二个位元组
-user 按照文件属主来查找文件
-group 按照文件属组来查找文件
补充知识:
通配符:
当我们不知道确切的文件名时,可以用通配符来进行模糊操作。
“*”可以代表任意长度的任意字符,“?”代表一个任意字符。
注意:
如果使用该命令时,不设置任何参数,则 find 命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。
例:在/etc目录中查找文件init
案例:
1.常用查找文件:
1.1 find .
列出当前目录及子目录下所有文件和文件夹
[root@host-134 ~]# find . . ./.bash_logout ./.bash_profile
1.2 -name
将当前目录及其子目录下所有文件后缀为 .c 的文件列出来:
# find . -name "*.c"
1.3 -type
-type 类型参数
类型参数列 f 普通文件 l 符号连接(软连接) d 目录 b 块设备 s 套接字
1.4 将当前目录及其子目录中的所有文件列出:
[root@host-136 ~]# find /home/ -type f /home/frank/.bash_logout /home/frank/.bash_profile /home/frank/.bashrc
2.按照时间查找:
UNIX/Linux文件系统每个文件都有三种时间戳:
访问时间(-atime/天,-amin/分钟):用户最近一次访问时间。
修改时间(-mtime/天,-mmin/分钟):文件最后一次修改时间
变化时间(-ctime/天,-cmin/分钟):文件数据元(例如权限等)最后一次修改时间。
amin 访问时间 access cmin 文件属性 change mmin 文件内容 modify
2.1 将当前目录及其子目录下所有最近 20 天内更新过的文件列出:
# find . -ctime 20
2.2 在/etc目录下查找100分钟内被修改过属性的文件和目录
[root@localhost ~]# find /etc -cmin -100 /etc/resolv.conf
3.根据文件大小进行匹配
find . -type f -size 文件大小单元
b —— 块(512字节) c —— 字节 w —— 字(word)(2字节) k —— 千字节 M —— 兆字节 G —— 吉字节
搜索大于10KB的文件
[root@host-136 ~]# find /etc/ -type f -size +10k /etc/ssh/moduli
搜索小于10KB的文件
[root@host-136 ~]# find /etc/ -type f -size -10k /etc/man_db.conf
搜索等于10KB的文件
[root@host-136 ~]# find /etc/ -type f -size 10k /etc/dbus-1/system.d/org.freedesktop.systemd1.conf
在/etc目录下查找大于80MB或者小于100MB的文件
a:两个条件同时满足
o:两个个条件满足一个即可
[root@localhost ~]# find /etc -size +163840 -o -size -204800 /etc/resolv.conf /etc/fonts /etc/fonts/conf.d
4.根据文件所有者或组进行匹配
-usr 在/home目录下找所有者为lhx的文件
[root@localhost ~]# find /home -user lhx /home/lhx /home/lhx/.mozilla /home/lhx/.mozilla/extensions
-group 在/home目录中查找所属组为lhx的文件
[root@localhost ~]# find /home -group lhx /home/lhx /home/lhx/.mozilla
5.-exec 命令
语法:
find [路径] [选项] [表达式] -exec 命令 {} \;
{ } 代表find找到的文件
\ 表示转义
; 表示本行命令结束
exec 参数后跟的是command命令,它的终止是以;(分号)来结束,所以这句话命令后面的分号是必不可少的,考虑到各个系统中分号会有不同的意义,所以前面加反斜杠 "\”
案例:
[root@localhost ~]# find test -name 123 -exec ls -l {} \; -rw-r--r--. 1 root root 0 10月 14 22:29 test/123
6.按照节点查找
-inum:按照inode号搜索
参考博客:
https://blog.csdn.net/m0_46674735/article/details/112390027?ops_request_misc=&request_id=&biz_id=102&utm_term=find命令&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduweb~default-0-112390027.nonecase&spm=1018.2226.3001.4187
查找文件里符合条件的字符串命令:grep
功能描述:查找文件里符合条件的字符串
案例:
在当前目录中,查找前缀有 test 字样的文件中包含 456 字符串的文件,并打印出该文件名:
[root@localhost test]# ls test test1 test2 [root@localhost test]# grep 456 test* test:456
以递归的方式查找符合条件的文件
参数: -r recurse
[root@localhost root]# grep -r 456 test/test3 test/test3/1.txt:456 test/test3/test4/2.txt:456 test/test3/test4/3.txt:456
帮助命令:
帮助命令:man
命令英文原意:manual
命令所在路径:/usr/bin/man
执行权限:所有用户
语法:man [命令或配置文件]
功能描述:获得帮助信息
参数:
-k 按照指定关键字查询有关命令
-a 查询参数的所有相关页
案例:
[root@localhost ~]# man ls
帮助命令:help
命令所在路径:shell内置命令
执行权限:所有用户
语法:help 命令
功能描述:获得shell内置命令的帮助信息
案例:
[root@localhost ~]# help while while: while 命令; do 命令; done 只要测试成功即执行命令。 只要在 `while' COMMANDS 中的最终命令返回结果为0,则 展开并执行 COMMANDS 命令。 退出状态: 返回最后一个执行的命令的状态。
显示操作时间日期命令:date
作用:表示操作时间日期
参数:
%F 表示完整的年月日
%T 表示完整的时分秒
%Y 表示四位的年份
%m 表示两位月份(带前导0)
%d 表示日期(带前导0)
%H 表示小时(带前导0)
%M 表示分钟(带前导0)
%S 表示秒(带前导0)
案例:
显示当前时间
[root@localhost ~]# date 2022年 10月 21日 星期五 22:24:56 CST
以全格式显示当前时间
[root@localhost ~]# date '+%F %H:%M:%S' 2022-10-21 22:25:53 [root@localhost test]# date '+%F %T' 2022-10-21 14:28:28
显示未来或过去某时间
[root@localhost test]# date +%F -d "+1day" 2022-10-22
单位可选值:day(天)month(月)year(年)
显示文件或目录最后修改时间
[root@localhost test]# date -r test1 2022年 10月 21日 星期五 21:38:36 CST [root@localhost test]# date +%F -d "-1day" 2022-10-20
设置时间
[root@localhost test]# date -s '2022-10-21 14:25:30' 2022年 10月 21日 星期五 14:25:30 CST
进程管理命令:
进程:
是程序在一个数据集合上的一次具体执行过程。
每一个进程都有一个独立的进程号(Process ID PID),系统通过进程号来调度操控进程。
显示系统中进程的信息命令:ps
原意:process status
语法:ps [选项]
功能:显示系统中进程的信息
参数:
-a 显示现行终端机下的所有程序,包括其他用户的程序
-e 显示所有进程
-A 显示所有进程
-u 显示进程所有者的信息
-p 显示指定进程ID的信息
案例:
[root@localhost ~]# ps PID TTY TIME CMD 2563 pts/0 00:00:00 bash 2655 pts/0 00:00:00 ps
PID 进程的进程号
TTY 终端的次设备号
TIME 执行时间
CMD(Command) 所执行的指令
[root@localhost ~]# ps -u USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1434 0.0 0.7 284576 27732 tty1 Ssl+ 03:46 0:00 /usr/bin/X :0 -background none -noreset -audit 4 -v root 2563 0.0 0.0 116436 2992 pts/0 Ss 03:47 0:00 -bash root 2673 0.0 0.0 155472 1872 pts/0 R+ 03:54 0:00 ps -u
USER: 行程拥有者
PID: pid
%CPU: 占用的 CPU 使用率
%MEM: 占用的记忆体使用率
VSZ: 占用的虚拟记忆体大小
RSS: 占用的记忆体大小
TTY: 终端的次要装置号码 (minor device number of tty)
STAT: 该行程的状态:
D: 无法中断的休眠状态 (通常 IO 的进程)
R: 正在执行中
S: 静止状态
T: 暂停执行
Z: 不存在但暂时无法消除(僵尸状态)
W: 没有足够的记忆体分页(内存分页)可分配
<: 高优先序的行程
N: 低优先序的行程
L: 有记忆体分页分配并锁在记忆体内 (实时系统或捱A I/O)
START: 行程开始时间
TIME: 执行的时间
COMMAND:所执行的指令
以树状方式表现进程的父子关系命令:pstree
原意:process status tree
功能:以树状方式表现进程的父子关系
语法:pstree [选项]
参数:
-a 显示每个进程的完整命令,包含路径、参数或者是常驻服务的标识;
-c 不使用精简标识法
-h 列出树状图时,特别标明现在执行的进程
-p 显示进程号
-u 显示用户名称
[root@localhost ~]# pstree -h systemd─┬─ModemManager───2*[{ModemManager}] ├─NetworkManager───2*[{NetworkManager}] ├─VGAuthService ├─2*[abrt-watch-log] ├─abrtd ├─accounts-daemon───2*[{accounts-daemon}] ├─alsactl ├─anacron ├─at-spi-bus-laun─┬─dbus-daemon───{dbus-daemon} │ └─3*[{at-spi-bus-laun}] ├─at-spi2-registr───2*[{at-spi2-registr}] ├─atd ├─auditd─┬─audispd─┬─sedispatch │ │ └─{audispd} │ └─{auditd} ......
显示系统进程相关信息命令:top
语法:top [选项]
功能:显示当前系统正在执行的进程的相关信息,包括进程 ID、内存占用率、CPU 占用率等。
在运行 top 的时候,可以按下快捷键:
M(大写) 表示将结果按照内存(MEM)从高到低进行降序排列;
P(大写) 表示将结果按照CPU 使用率从高到低进行降序排列;
q 退出
案例:
top - 04:10:09 up 23 min, 2 users, load average: 0.00, 0.01, 0.06 Tasks: 194 total, 1 running, 193 sleeping, 0 stopped, 0 zombie %Cpu(s): 0.3 us, 0.3 sy, 0.0 ni, 99.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem : 3861272 total, 2637468 free, 545784 used, 678020 buff/cache KiB Swap: 2097148 total, 2097148 free, 0 used. 3075256 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 2306 root 20 0 640784 28212 19364 S 0.3 0.7 0:02.22 vmtoolsd 2837 root 20 0 162124 2332 1584 R 0.3 0.1 0:00.09 top 1 root 20 0 128268 6948 4184 S 0.0 0.2 0:02.07 systemd 2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd 4 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0H 5 root 20 0 0 0 0 S 0.0 0.0 0:00.08 kworker/u256:0
gome-system-monitor 命令
在终端窗口执行gome-system-monitor 命令会出现“系统监视器”窗口,可以通过图形化界面的方式监视系统
判断程序是否正在运行命令:pgrep
语法:pgrep [选项] pattern
功能:通过程序的名字或者其他属性查找进程,一般是用来判断程序是否正在运行
案例:
[root@localhost ~]# pgrep -u root 1 2 4 5 6 ......
进程终止命令:kill
语法: kill [信号代码] PID
功能:用来终止一个进程。
9 强行终止进程
15 终止进程
17 将进程挂起
u 指定用户
显示计算机以及操作系统的相关信息命令:uname
语法:uname [选项]
功能:uname 可显示计算机以及操作系统的相关信息
参数:
-a 显示全部信息
-m 显示计算机的类型、硬件的型号
-n 显示在网络中的主机名
-r 显示操作系统的 release 版本
-s 显示操作系统的名称
-v 显示操作系统的 version 版本
案例:
显示全部信息
[root@localhost test]# uname -a Linux localhost.localdomain 3.10.0-1127.el7.x86_64 #1 SMP Tue Mar 31 23:36:51 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
显示内存使用情况命令:free
语法: free [选项]
功能:显示内存的使用和空闲的内存情况,包括物理内存、交互区内存和内核缓冲区内存,共享内存
将被忽略
参数:
-b 以 Byte 为单位显示内存使用情况
-k 以 KB 为单位显示内存使用情况
-m 以 MB 为单位显示内存使用情况
-g 以 GB 为单位显示内存使用情况
案例:
[root@localhost test]# free -m total used free shared buff/cache available Mem: 3770 553 2523 13 693 2972 Swap: 2047 0 2047
系统管理命令
关闭系统命令:halt
语法:halt [选项]
功能:关闭系统,halt 会先检查系统的runlevel。若 runlevel 为 0 或 6,则关闭系统,否则即调用
shutdown 来关闭系统。
用户注销命令:logout
语法: logout
功能:用户注销,注销的目的在于防止下一位坐在终端机前面的用户继续用前一用户的权限去存取文件
改变系统状态命令:init
语法:init state
功能:改变系统状态。可以使用该命令重启或关闭系统。
state 描述:
0 完全关闭系统
1 管理模式的单用户状态
2 多用户状态
3 完全多用户模式
4 未使用
5 只用在 X11 上,即 GUI
6 关闭并重启
s/S 同 state=1.单用户模式,只允许一个用户访问系统
日历显示命令:cal
语法:cal [选项] [[[日]月]年]
功能:显示某年某月的日历
选项:
-1 只显示当前月份
-3 显示上个月、当月和下个月的日历
-j 显示给定月中的每一天是一年中的第几天(从1月1日算起)
-m 周一作为一周的第一天
-s 周日作为一周的第一天
-y 显示整年的日历
案例:
[root@localhost test]# cal -m 十一月 2022 一 二 三 四 五 六 日 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
压缩解压缩命令:
文件压缩解压缩命令:gzip
命令英文原意:GUN zip
命令所在路径:/bin/gzip
执行权限:所有用户
语法:gzip [选项] [文件]
参数:
-d 解压文件
-v 对每一个压缩和解压的文件显示文件名和压缩比
-<压缩效率>压缩效率是一个介于1-9的数,预设值为"6",指定愈大的数值,压缩效率就会愈高
-best 此参数的效果和指定"-9"参数相同。
-fast 此参数的效果和指定"-1"参数相同。
案例:
压缩文件:
//压缩单个文件 [root@localhost test]# gzip -v 1.txt 1.txt: 0.0% -- replaced with 1.txt.gz [root@localhost test]# ls 1.txt.gz //压缩所有文件 [root@localhost test]# gzip -v * 1.txt: 0.0% -- replaced with 1.txt.gz 2.txt: 0.0% -- replaced with 2.txt.gz 3.txt: 0.0% -- replaced with 3.txt.gz [root@localhost test]# ls 1.txt.gz 2.txt.gz 3.txt.gz
解压文件:
[root@localhost test]# gzip -dv * 1.txt.gz: 0.0% -- replaced with 1.txt 2.txt.gz: 0.0% -- replaced with 2.txt 3.txt.gz: 0.0% -- replaced with 3.txt [root@localhost test]# ls 1.txt 2.txt 3.txt
补充:
压缩解压缩命令:gunzip
功能:解压缩.gz 的压缩文件
压缩解压缩命令:bzip2
命令所在路径:/usr/bin/unzip
执行权限:所有用户
语法:bzip2 [选项] [文件名]
功能描述:压缩文件
参数:
-k 产生压缩文件后保留原文件,压缩后文件格式.bz2
-z 或–compress 强制执行压缩
-d 或–decompress 解压缩
-v 或–verbose 压缩或解压缩文件时,显示详细的信息
-c 将压缩的过程产生的数据输出到屏幕上
-# 与 gzip 同样 都是计算压缩比的参数,-9 为最佳 -1 最快
案例:
压缩文件
//产生压缩文件并保留原文件 [root@localhost test]# bzip2 -k 1.txt [root@localhost test]# ls 1.txt 1.txt.bz2
补充:解压缩命令:bunzip2
压缩解压缩命令:tar
命令所在路径:/bin/tar
执行权限:所有用户
功能描述:打包目录
语法:tar 选项[-zcf] [压缩后的文件名] [文件|目录]
参数:
-c 压缩用。建立新的备份文件
-x 解压用。从备份文件中释放文件
-zvf:
-z 通过gzip支持压缩或解压缩
-v 显示详细信息
-f 指定备份文件
-k 保存已经存在的文件
案例:
压缩文件:
[root@localhost test]# tar -czvf new.tar.gz test2 test2/ [root@localhost test]# ls 1.txt 2.txt 3.txt new.tar.gz test2
解压文件:
//解压文件到当前目录 [root@localhost test]# tar -xzvf new.tar.gz test2/ [root@localhost test]# ls new.tar.gz test2 //解压文件到指定目录 参数:-C 指定目录 [root@localhost ~]# tar -xzvf /root/test/new.tar.gz -C /root/test1 1.txt 2.txt 3.txt
列出压缩文件内容:
[root@localhost test]# tar -tzvf new.tar.gz -rw-r--r-- root/root 0 2022-11-02 04:54 1.txt -rw-r--r-- root/root 0 2022-11-02 04:54 2.txt -rw-r--r-- root/root 0 2022-11-02 04:54 3.txt