Linux:基础笔记

简介: Linux:基础笔记

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

2f952968e1490e4b4859dcb47eedc05c.png

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 命令会出现“系统监视器”窗口,可以通过图形化界面的方式监视系统

8fc90d0f2b010eb32ddb0f2ba73b9edf.png

判断程序是否正在运行命令: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
相关文章
|
2月前
|
Ubuntu Linux Python
Tkinter错误笔记(一):tkinter.Button在linux下出现乱码
在Linux系统中,使用Tkinter库时可能会遇到中文显示乱码的问题,这通常是由于字体支持问题导致的,可以通过更换支持中文的字体来解决。
169 0
Tkinter错误笔记(一):tkinter.Button在linux下出现乱码
|
4月前
|
Linux
Linux源码阅读笔记10-进程NICE案例分析2
Linux源码阅读笔记10-进程NICE案例分析2
|
4月前
|
Linux
Linux源码阅读笔记09-进程NICE案例分析1
Linux源码阅读笔记09-进程NICE案例分析1
|
2月前
|
Linux API 开发工具
FFmpeg开发笔记(五十九)Linux编译ijkplayer的Android平台so库
ijkplayer是由B站研发的移动端播放器,基于FFmpeg 3.4,支持Android和iOS。其源码托管于GitHub,截至2024年9月15日,获得了3.24万星标和0.81万分支,尽管已停止更新6年。本文档介绍了如何在Linux环境下编译ijkplayer的so库,以便在较新的开发环境中使用。首先需安装编译工具并调整/tmp分区大小,接着下载并安装Android SDK和NDK,最后下载ijkplayer源码并编译。详细步骤包括环境准备、工具安装及库编译等。更多FFmpeg开发知识可参考相关书籍。
116 0
FFmpeg开发笔记(五十九)Linux编译ijkplayer的Android平台so库
|
4月前
|
Unix Linux 开发工具
linux笔记 diff及patch的制作与使用
这篇文章是关于Linux系统中使用`diff`命令生成补丁文件以及使用`patch`命令应用这些补丁的详细教程和实战案例。
118 2
linux笔记 diff及patch的制作与使用
|
4月前
|
安全 Linux 开发者
Linux笔记之ldd命令详解
`ldd`命令是Linux环境下一个非常实用的工具,用于显示一个程序运行时所需的共享库依赖。它帮助开发者和系统管理员快速诊断程序运行问题,特别是在处理"找不到库文件"或者"错误的库文件版本"等错误时。然而,出于安全的考虑,对于不信任的可执行文件,应该慎用 `ldd`命令,可以考虑使用其他工具如 `objdump`。总的来说,懂得如何妥善且安全地使用 `ldd`,对于维护一个稳定和高效的Linux系统来说,是非常重要的。
118 9
|
4月前
|
存储 缓存 编译器
Linux源码阅读笔记06-RCU机制和内存优化屏障
Linux源码阅读笔记06-RCU机制和内存优化屏障
|
4月前
|
Linux
Linux源码阅读笔记13-进程通信组件中
Linux源码阅读笔记13-进程通信组件中
|
4月前
|
消息中间件 安全 Java
Linux源码阅读笔记13-进程通信组件上
Linux源码阅读笔记13-进程通信组件上
|
4月前
|
Linux 开发者
Linux源码阅读笔记18-插入模型及删除模块操作
Linux源码阅读笔记18-插入模型及删除模块操作

热门文章

最新文章