[关闭]
@SovietPower 2021-09-26T11:19:36.000000Z 字数 16935 阅读 975

Linux常用命令

Linux



Linux完整学习笔记:https://zybuluo.com/SovietPower/note/1780166

参考:https://www.runoob.com/linux/linux-command-manual.html

内建命令与外部命令

https://blog.csdn.net/qq_36761831/article/details/89738493

  1. 内建命令(built-in)实际上是 shell 程序的一部分,其中包含的是一些比较简单的 Linux 系统命令,这些命令是写在bash源码的builtins里面的,由 shell 程序识别并在 shell 程序内部完成运行,通常在 Linux 系统加载运行时 shell 就被加载并驻留在系统内存中。而且解析内部命令 shell 不需要创建子进程,因此其执行速度比外部命令快。比如:history、cd、exit等。
  2. 外部命令(external)是 Linux 系统中的实用程序部分,因为实用程序的功能通常都比较强大,所以其包含的程序量也会很大,在系统加载时并不随系统一起被加载到内存中,而是在需要时才将其调入内存。虽然其不包含在 shell 中,但是其命令执行过程是由 shell 程序控制的。外部命令是在 Bash 之外额外安装的,通常放在1/bin,/usr/bin,/sbin,/usr/sbin1等等。比如:1ls、vi1等。
  3. type可判断一个命令为内部命令还是内部命令:type <command>。如:
  1. ~$ type ls
  2. ls 是“ls --color=auto”的别名
  3. ~$ type vi
  4. vi /usr/bin/vi

帮助指令help,man,info

解压/安装

tar

https://www.cnblogs.com/manong--/p/8012324.html

tar(tape archive)用来建立/还原备份文件的工具程序,它可以加入/解开备份文件内的文件。

命令格式:

-c: 建立压缩档案
-x:解压
-t:查看内容
-r:向压缩归档文件末尾追加文件
-u:更新原压缩包中的文件

上面五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。

-z:有gzip属性的
-j:有bz2属性的
-Z:有compress属性的
-v:显示所有过程
-O:将文件解开到标准输出

上面五个参数根据需要在压缩或解压档案时可选(一个或多个)(与第一种命令顺序任意)。

-f: 使用档案名字。这个参数是最后一个参数,后面只能接文件名。

-f是必须的。
例子:
tar -cf all.tar *.jpg:将所有.jpg的文件打成一个名为all.tar的包。-c是表示产生新的包,-f指定包的文件名。
tar -rf all.tar *.gif:将所有.gif的文件增加到all.tar的包里面去。-r是增加文件。
tar -uf all.tar logo.gif:更新原来tar包all.tar中logo.gif文件,-u是更新文件。
tar -tf all.tar:列出all.tar包中所有文件,-t是列出文件
tar -xf all.tar:解出all.tar包中所有文件,-x是解压。

7z

软件安装

cat命令

cat(concatenate)命令用于连接文件并打印到标准输出设备上,即把档案串连接后传到基本输出(屏幕 或 用> fileName传到另一个文件)。
语法:cat [-AbeEnstTuv] [--help] [--version] fileName

参数:
-n 或 --number:由 1 开始对所有输出的行数编号。
-b 或 --number-nonblank:和-n相似,只不过对于空白行不编号。
-s 或 --squeeze-blank:当遇到有连续两行以上的空白行,就代换为一行的空白行。
-v 或 --show-nonprinting:使用^M-符号,除了 LFD 和 TAB 之外。
-E 或 --show-ends: 在每行结束处显示$
-T 或 --show-tabs``将 TAB 字符显示为^I
-A, --show-all:等价于-vET
-e:等价于-vE
-t:等价于-vT`。

用法:
1. cat <name>:显示整个文件。
2. cat > <name>:从键盘读入内容,创建一个文件<name>(下一行开始输入文件内容,Ctrl+D结束。若文件存在则覆盖)。
3. cat >> <name>:从键盘读入内容,附加到一个文件之后(下一行开始输入文件内容,Ctrl+D结束。若文件不存在则创建)。
cat只能创建(覆盖)文件,或追加内容,不能直接编辑。
4. cat <file1> <file2> > <file3>:将几个文件合并为一个文件。同上>改为>>可附加内容到<file3>后面。
5. cat > <name> << abc:从键盘读入内容,创建一个文件<name>。但是输入可以以abc作为标准输入结束(同Ctrl+D效果),abc可任意替换。>同样可换为>>><<顺序任意。

例子:
cat -n file1 > file2:把file1的档案内容加上行号后输入file2这个档案里
cat -b linuxfile1 linuxfile2 >> linuxfile3:把file1file2的档案内容加上行号(空白行不加)之后将内容附加到file3里。
cat /dev/null > /etc/a.txt:清空/etc/a.txt档案内容。

/dev/null:在类 Unix 系统中,/dev/null称为空设备,是一个特殊的设备文件,它丢弃一切写入其中的数据(但报告写入操作可成功),读取它则会立即得到一个 EOF。
可以将/dev/null看作"黑洞"。它等价于一个只写文件,但所有写入它的内容都会永远丢失。而尝试从它读取内容则什么也读不到。
用处:
禁止标准输出:cat $filename >/dev/null,文件不会输出到标准输出。
禁止标准错误:2>/dev/null,这样不会显示错误信息到标准输出(没了)。
具体:https://www.cnblogs.com/selectztl/p/9477988.htmlhttps://blog.csdn.net/longgeaisisi/article/details/90519690

chmod命令

chmod(change mode)控制用户对文件的权限。
Linux/Unix的文件调用权限分为三级:文件所有者(Owner)、用户组(Group)、其它用户(Other Users)。
只有文件所有者和超级用户可以修改文件或目录的权限。可以使用绝对模式(八进制数字模式),符号模式指定文件的权限。
语法:chmod [-cfvR] [--help] [--version] mode file...

参数:
mode:权限设定字串,格式:[ugoa...][[+-=][rwxX]...][,...]
其中:
u表示该文件的拥有者,g表示与该文件的拥有者属于同一个群体(group)者,o表示其他以外的人,a表示这三者皆是。
+表示增加权限、-表示取消权限、=表示唯一设定权限。
r表示可读取,w表示可写入,x表示可执行,X表示只有当该文件是个子目录或者该文件已经被设定过为可执行。

其他参数:
-c:若该文件权限确实已经更改,才显示其更改动作
-f:若该文件权限无法被更改也不要显示错误讯息
-v:显示权限变更的详细资料
-R:对目前目录下的所有文件与子目录进行相同的权限变更(即以递归的方式逐个变更)
--version:显示版本

chmod命令后也可直接使用三位八进制数来指定权限。文件或目录的权限位是由9个权限位来控制,每三位为一组,它们分别是文件所有者(User)的读、写、执行,用户组(Group)的读、写、执行以及其它用户(Other)的读、写、执行。使用ls -l查看文件夹中文件的权限。
如:chmod ug=rwx,o=x filechmod 771 file等价。
chmod 4755 filename:可使此程序具有 root 的权限。

chown命令

chown(change owner)用于设置文件所有者和文件关联组。
Linux/Unix 是多用户多任务操作系统,所有的文件都有拥有者。利用chown可将指定文件的拥有者改为指定的用户或组,用户可以是用户名或者用户ID,组可以是组名或者组ID,文件是以空格分开的要改变权限的文件列表,支持通配符。
只有超级用户和属于组的文件所有者才能用chown变更文件关联组。非超级用户如需要设置关联组可能需要使用chgrp命令。
语法:chown [-cfhvR] [--help] [--version] user[:group] file...

参数:
user:新的文件拥有者的使用者ID
group:新的文件拥有者的使用者组(group)
-c:显示更改的部分的信息
-f:忽略错误信息
-h:修复符号链接
-v:显示详细的处理信息
-R:处理指定目录以及其子目录下的所有文件
--version:显示版本

例子:
chown root /var/run/httpd.pid:把/var/run/httpd.pid的所有者设置为root。
chown a:groupb qwq.txt:将文件qwq.txt的拥有者设为a,群体的使用者groupb
chown -R a:groupb *:将当前前目录下的所有文件与子目录的拥有者全设成a,群体的使用者groupb

cmp命令

cmp比较两个文件是否不同。
当比较的两个文件完全一样时,不会显示任何信息。若有差异,会标出第一个不同字符和列数编号。若不指定文件名称或是文件名为"-",则cmp会从标准输入设备读取数据。
语法:cmp [-clsv][-i <字符数目>][--help][第一个文件][第二个文件]
参数:
-c或--print-chars:除了标明差异处的十进制字码之外,一并显示该字符所对应字符。
-i<字符数目>或--ignore-initial=<字符数目>:指定一个数目。
-l或--verbose:标示出所有不一样的地方。
-s或--quiet或--silent:不显示错误信息。

cp命令

cp(copy file)命令主要用于复制文件或目录。
语法:cp [options] source... dest
dest为目录时,文件名不变;dest为文件名时,将复制后的source命名为dest(有些类似mv)。

参数:
-a:此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容。其作用等于dpR参数组合。
-d:复制时保留链接。这里所说的链接相当于Windows系统中的快捷方式。
-f:覆盖已经存在的目标文件而不给出提示。
-i:与-f选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答"y"时目标文件将被覆盖。
-p:除复制文件的内容外,还把修改时间和访问权限也复制到新文件中。
-r:若给出的源文件是一个目录文件(文件夹),此时将递归复制该目录下所有的子目录和文件(不加-r会忽略文件夹)。
-l:不复制文件,只是生成链接文件。

diff命令

diff以逐行的方式,比较文本文件的异同。如果指定目录,则diff会比较目录中相同文件名的文件,但不会比较其子目录。
具体见:https://www.runoob.com/linux/linux-comm-diff.html

dig命令

dig(域信息搜索器)命令是查询 DNS 包括 NS 记录,A 记录,MX 记录等相关信息的工具。dig 执行 DNS 搜索,显示从受请求的域名服务器返回的答复。多数 DNS 管理员利用 dig 作为 DNS 问题的故障诊断,因为其灵活性好、易用、输出清楚。

find命令

find在指定目录下查找满足指定条件的文件。
具体见:https://www.runoob.com/linux/linux-comm-find.html

free命令

free用于显示内存状态。会显示内存的使用情况,包括实体内存,虚拟的交换文件内存,共享内存区段,以及系统核心使用的缓冲区等。
语法:free [-bkmotV][-s <间隔秒数>]

参数:
-b:以Byte为单位显示内存使用情况。
-k:以KB为单位显示内存使用情况。
-m:以MB为单位显示内存使用情况。
-h:以合适的单位显示内存使用情况,最大为三位数,自动计算对应的单位值。单位有:B, K, M, G, T。
-o:不显示缓冲区调节列。
-s<间隔秒数>:持续观察内存使用状况(每隔指定秒观察一次)。
-t:显示内存总和列。

grep命令

grep用于查找文件里符合条件的字符串。如果发现某文件的内容符合所指定的范本样式,预设grep指令会把含有范本样式的那一列显示出来。若不指定任何文件名称,或是所给予的文件名为-,则grep指令会从标准输入设备读取数据;文件名为*即所有文件。
grep通过返回一个状态值来说明搜索的状态,如果模板搜索成功,则返回0,如果搜索不成功,则返回1,如果搜索的文件不存在,则返回2。
语法:
grep [-abcEFGhHilLnqrsvVwxy][-A<显示行数>][-B<显示列数>][-C<显示列数>][-d<进行动作>][-e<范本样式>][-f<范本文件>][--help][范本样式][文件或目录...]

常用参数:
-a 或 --text:不忽略二进制的数据。
-A<显示行数> 或 --after-context=<显示行数>:显示匹配行和 从匹配位置开始往后若干行的内容,其中<>中指定行数(不计算显示符合样式的那一行)。
-b 或 --byte-offset:在显示符合样式的那一行之前,标示出该行第一个字符的编号。
-B<显示行数> 或 --before-context=<显示行数>:显示匹配行和 从匹配位置开始往前若干行的内容,其中<>中指定行数(不计算显示符合样式的那一行)。
-c 或 --count:计算符合样式的列数。
-C<显示行数> 或 --context=或-<显示行数>:显示匹配行和 从匹配位置开始往前和往后若干行的内容,其中<>中指定行数(不计算显示符合样式的那一行)。
-d <动作> 或 --directories=<动作>:当指定要查找的是目录而非文件时,必须使用这项参数,否则grep指令将回报信息并停止动作。会递归所有子文件夹。
-e<范本样式> 或 --regexp=<范本样式>:指定字符串做为查找文件内容的样式。
-E 或 --extended-regexp:将样式为延伸的正则表达式来使用。
-f<规则文件> 或 --file=<规则文件>:指定规则文件,其内容含有一个或多个规则样式,让grep查找符合规则条件的文件内容,格式为每行一个规则样式。
-F 或 --fixed-regexp:将样式视为固定字符串的列表。
-G 或 --basic-regexp:将样式视为普通的表示法来使用。
-h 或 --no-filename:在显示符合样式的那一行之前,不标示该行所属的文件名称。
-H 或 --with-filename:在显示符合样式的那一行之前,表示该行所属的文件名称。
-i 或 --ignore-case:忽略字符大小写的差别。
-l 或 --file-with-matches:列出文件内容符合指定的样式的文件名称。
-L 或 --files-without-match:列出文件内容不符合指定的样式的文件名称。
-n 或 --line-number:在显示符合样式的那一行之前,标示出该行的列数编号。
-o 或 --only-matching:只显示匹配PATTERN 部分。
-q 或 --quiet或--silent:不显示任何信息。
-r 或 --recursive:递归所有子文件夹。此参数的效果和指定"-d recurse"参数相同。
-s 或 --no-messages:不显示错误信息。
-v 或 --invert-match:显示不包含匹配文本的所有行。
-V 或 --version:显示版本信息。
-w 或 --word-regexp:只显示全字符合的列。
-x --line-regexp:只显示全列符合的列。
-y:此参数的效果和指定"-i"参数相同。

例子:
grep sqwq ab*:查找文件名前缀有ab的文件中,包含sqwq字符串的文件。
grep -r qqw /etc/acpi:以递归的方式查找/etc/acpi下包含qqw的文件。
grep -v svq *ab*:反向查找:查找文件名中包含ab的文件中包含svq的行。

规则表达式:
https://www.cnblogs.com/peida/archive/2012/12/17/2821195.html

ip命令

ip命令与ifconfig(不是ipconfig)命令类似,但比ifconfig命令更加强大,是 Linux 加强版的的网络配置工具,用于代替ifconfig命令。主要功能是用于显示或设置网络设备。
语法:ip [ OPTIONS ] OBJECT { COMMAND | help }

参数:
OBJECT 为常用对象,值可以是:
OBJECT={ link | addr | addrlabel | route | rule | neigh | ntable | tunnel | maddr | mroute | mrule | monitor | xfrm | token }
常用对象:
link:网络设备
address:设备上的协议(IP或IPv6)地址
addrlabel:协议地址选择的标签配置
route:路由表条目
rule:路由策略数据库中的规则

OPTIONS 为常用选项,值可以是:
OPTIONS={ -V[ersion] | -s[tatistics] | -d[etails] | -r[esolve] | -h[uman-readable] | -iec | -f[amily] { inet | inet6 | ipx | dnet | link } | -o[neline] | -t[imestamp] | -b[atch] [filename] | -rc[vbuf] [size] }
常用选项:
-V:显示命令的版本信息
-s:输出更详细的信息
-f:强制使用指定的协议族
-4:指定使用的网络层协议是IPv4协议
-6:指定使用的网络层协议是IPv6协议
-0:输出信息每条记录输出一行,即使内容较多也不换行显示
-r:显示主机时,不使用IP地址,而使用主机的域名

ln命令

ln(link files)命令是一个非常重要命令,它的功能是为某一个文件在另外一个位置建立一个同步的链接。
当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个固定的目录,放上该文件,然后在其它的目录下用ln命令链接(link)它就可以,不必重复的占用磁盘空间。
语法:ln [参数][源文件或目录][目标文件或目录]
其中参数的格式为[-bdfinsvF] [-S backup-suffix] [-V {numbered,existing,simple}] [--help] [--version] [--]
链接分为硬链接(hard link)与软链接(symbolic link)。具体见:https://www.runoob.com/linux/linux-comm-ln.html
注意软链接的源文件目录要是绝对目录。

参数:
必要参数:
-b:删除,覆盖以前建立的链接
-d:允许超级用户制作目录的硬链接
-f:强制执行
-i:交互模式,文件存在则提示用户是否覆盖
-n:把符号链接视为一般目录
-s:软链接(符号链接)
-v:显示详细的处理过程
可选参数:
-S:"-S<字尾备份字符串> "或 "--suffix=<字尾备份字符串>"
-V:"-V<备份方式>"或"--version-control=<备份方式>"
--help:显示帮助信息
--version:显示版本信息

ls命令

功能:列出非目录的文件项,然后是每一个目录中的“可显示”文件(可理解为ls命令将本目录向下展开两级)。
语法:ls [参数] [目录名](当前目录可忽略目录名)(目录名可以是文件,只显示它的信息)。

常用参数:
-a:显示所有文件,包含隐藏文件
-A:显示所有文件,包含隐藏文件,但不包含.及..
-l:显示为long format(长格式),列出文件的详细信息,包括文件类型、权限、链接数、owner、group、大小,时间,名字
-R–recursive,同时列出所有子目录层
-d–directory,将目录像文件一样显示,而不是显示其下的文件。即不展开目录,只显示目录自身,一般与-l配合使用以显示目录自身的属性信息(只显示当前目录的内容)
-1:数字1,成列显示内容
-S:以文件大小排序显示,默认从大到小 -r后,从小到大
-U:按存放顺序排序显示
-X:按扩展名的首字母来排序
-t:按mtime排序(先显示时间最近的)。mtime:数据修改时间(写入,修改数据mtime改变,mtime改变ctime必改变)
-ul:按atime排序(先显示时间最近的)。atime:访问时间
-ct:按ctime排序(先显示时间最近的)。ctime:元数据修改时间(修改权限的时候只有ctime改变)
-r:在以上三种排序后加r,表示倒序排序。
(注意参数可同时使用)

通配符:https://www.cnblogs.com/bailandecheng/p/9310407.html

more命令

more类似cat,不过会以一页一页的形式显示,更方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会往回(back)一页显示,而且还有搜寻字串的功能(与 vi 相似)。同样使用时也可按h查看说明,按q退出,同man
语法:more [-dlfpcsu] [-num] [+/pattern] [+linenum] [fileNames..]

参数:
-num:一次显示的行数
-l取消遇见特殊字元^L送纸字元)时会暂停的功能
-d:提示使用者,在画面下方显示 [Press space to continue, 'q' to quit.] ,如果使用者按错键,则会显示 [Press 'h' for instructions.] 而不是 '哔' 声
-f:计算行数时,以实际上的行数,而非自动换行过后的行数(有些单行字数太长的会被扩展为两行或两行以上)
-p:不以卷动的方式显示每一页,而是先清除萤幕后再显示内容
-c:跟-p相似,不同的是先显示内容再清除其他旧资料
-s:当遇到有连续两行以上的空白行,就代换为一行的空白行
-u:不显示下引号 (根据环境变数 TERM 指定的 terminal 而有所不同)
+/pattern:在每个文档显示前搜寻该字串(pattern),然后从该字串之后开始显示
+num:从第 num 行开始显示
fileNames:要显示内容的文档,可为复数个数

常用操作指令:(按h即可查看)
多数命令可在前面加整数参数 k。方括号中为参数的默认值。星号*表示参数将成为新的默认值。
<空格键>:显示下 k 行文本[当前屏幕尺寸]
z:显示下 k 行文本[当前屏幕尺寸]*
<回车键>:显示下 k 行文本[1]*
d 或 ctrl-D:滚动 k 行[当前滚动尺寸,初始值为 11]*
q 或 Q 或 <interrupt>:退出 more
s:跳过下面 k 行文本[1]
f:跳过下面 k 屏文本[1]
b 或 ctrl-B:跳过上面 k 屏文本 [1]
':转到上次搜索开始处
=:显示当前行号
/<正则表达式>:搜索正则表达式第 k 次出现处[1]
n:搜索前一正则表达式第 k 次出现处[1]
v:在当前行启动 /usr/bin/vi
ctrl-L:重绘屏幕
:p/:n:转到前面/后面第 k 个文件[1]
:f:显示当前文件名和行号
.:重复前一命令

mkdir命令

mkdir(make directory)命令用于创建目录。
语法:mkdir [-p] dirName...(可同时创建多个子目录)

参数:
-p:若不能确保目录名称存在,则若不存在可新建(可递归创建多级目录)。
-m:建立目录的同时设置目录的权限
-z:设置安全上下文
-v:显示目录的创建过程

例子:
mkdir qvw:在当前目录创建一个名为qvw的子目录。
mkdir -p a/name:在当前目录下的 a 目录中,建立一个名为 name 的子目录。若 a 目录原本不存在,则建立一个(若不加-p参数,且原本 a 目录不存在,则会错误)。

mv命令

mv(move file)命令用来为文件或目录改名、或将文件或目录移入其它位置。
语法:mv [options] source... dest

参数:
-b:当目标文件或目录存在时,在执行覆盖前,会为其创建一个备份。
-i:如果指定移动的源目录或文件与目标的目录或文件同名,则会先询问是否覆盖旧文件,输入 y表示直接覆盖,输入n表示取消该操作。
-f:如果指定移动的源目录或文件与目标的目录或文件同名,不会询问,直接覆盖旧文件。
-n:不要覆盖任何已存在的文件或目录。
-u:当源文件比目标文件新或者目标文件不存在时,才执行移动操作。

例子:

mv src des有三种参数情况:
src为文件,des为文件:将源文件src改名为des,并将文件放到des所在目录(未给出则为当前目录)。
src为文件,des为目录:将文件src移动到目标目录des中。
src为目录,des为目录:若目录des存在,将src移动到目录des目录des不存在,则将源目录src改名为des`。

mv info/ logs:将info目录放入logs目录中。但如果logs目录不存在,则将info改名为logs
mv /usr/runoob/* .:将/usr/runoob下的所有文件和目录移到当前目录下。

nice命令

nice命令以更改过的优先序(指nice值)来运行程序,若未指定程序,则会输出目前的排程优先序。不指定数值则默认的 为 10。nice值范围为 -20(最高优先序)到 19(最低优先序)。
优先级 (priority) 为操作系统用来决定 CPU 分配的参数,Linux 使用回合制(round-robin)的演算法来做 CPU 排程,优先序越高,可能获得的 CPU 时间就越多。
注:nice 值不是优先级,但会影响优先级。
语法:nice [-n adjustment] [-adjustment] [--adjustment=adjustment] [--help] [--version] [command [arg...]]

参数:
-n adj, -adj, --adjustment=adj:都是将原有优先序(初始时为0)增加adj
--help/version:显示帮助/版本

例子:
nice vi &:以默认的优先级10后台运行vi。
nice -n -20 vi &:设置优先级为-20并后台运行vi。

ping命令

ping命令用于检测主机。执行ping指令会使用 ICMP 传输协议,发出要求回应的信息,若远端主机的网络功能没有问题,就会回应该信息,因而得知该主机运作正常。
语法:ping [-dfnqrRv][-c<完成次数>][-i<间隔秒数>][-I<网络界面>][-l<前置载入>][-p<范本样式>][-s<数据包大小>][-t<存活数值>][主机名称或IP地址]

常用参数:
-d:使用Socket的SO_DEBUG功能。
-c <完成次数>:设置完成要求回应的次数。
-f:极限检测。
-i<间隔秒数>:指定收发信息的间隔时间。
-I<网络界面>:使用指定的网络接口送出数据包。
-l<前置载入>:设置在送出要求信息之前,先行发出的数据包。
-n:只输出数值。
-p<范本样式>:设置填满数据包的范本样式。
-q:不显示指令执行过程,开头和结尾的相关信息除外。
-r:忽略普通的Routing Table,直接将数据包送到远端主机上。
-R:记录路由过程。
-s<数据包大小>:设置数据包的大小。
-t<存活数值>:设置存活数值TTL的大小。
-v:详细显示指令的执行过程。
-w <deadline>:在 deadline 秒后退出。
-W <timeout>:在等待 timeout 秒后开始执行。

ps命令

ps(process status)用于显示当前进程的状态,类似于 windows 的任务管理器。
语法:ps [options] [--help]

常用参数:
l:长格式输出
u:按用户名和启动时间的顺序来显示进程
j:用任务格式来显示进程
f:用树形格式来显示进程
a:显示所有用户的所有进程(包括其它用户)
x:显示无控制终端的进程
r:显示运行中的进程
ww:避免详细参数被截断(显示更多的参数)
具体:https://www.cnblogs.com/kendoziyu/p/11143703.html

例子:
ps aux | grep qwq:将含qwq的进程输出。
ps –A --sort cmd:显示系统所有的应用程序,并根据程序命令进行排序。
ps -aux > ps001.txt:把所有进程输出到ps001.txt文件。接more ps001.txt即可分页查看。

reboot命令

reboot命令用于重新启动计算机。
若系统的 runlevel 为 0 或 6 ,则重新开机,否则以 shutdown 指令(加上 -r 参数)来取代
语法。
语法:reboot [-n] [-w] [-d] [-f] [-i]

参数:
-n:在重开机前不做将记忆体资料写回硬盘的动作
-w:并不会真的重开机,只是把记录写到 /var/log/wtmp 档案里
-d:不把记录写到 /var/log/wtmp 档案里(-n 这个参数包含了 -d)
-f:强迫重开机,不呼叫 shutdown 这个指令
-i:在重开机之前先把所有网络相关的装置先停止

renice命令

renice命令用于重新指定一个或多个行程(Process)的优先序(数量由参数决定)。
语法renice priority [[-p] pid ...] [[-g] pgrp ...] [[-u] user ...]

参数:
-p pid:重新指定 id 为 pid 的行程的优先序
-g pgrp:重新指定行程群组(process group)中 id 为 pgrp 的行程 (一个或多个) 的优先序
-u user:重新指定行程拥有者为 user 的行程的优先序

例子:
renice +1 987 -u ABC root -p 32:将行程 id 为 987 及 32 的行程与行程拥有者为 ABC 及 root 的优先序号码改为+1。

rm命令

rm(remove)命令用于删除一个文件或者目录。文件一旦通过rm命令删除,则无法恢复。
**语法:**rm [options] name...`

参数:
-i:删除前逐一询问确认(默认输入为否)。
-f:即使原档案属性设为唯读,亦直接删除,无需逐一确认。
-r:将目录及以下之档案亦逐一删除。

例子:
rm -rf *:删除当前目录下的所有文件及目录,无需确认。
rm -rf /*:清空系统中所有的文件,无需确认。

避免rm -rf误删:
1. alias rm='rm -i',使用rm时不要加-f
2. chmod a-w <file>,去掉重要文件的写权限。
3. chattr保护文件或文件夹。

shutdown命令

shutdown命令可以用来进行关机程序,并且在关机以前传送讯息给所有使用者正在执行的程序,shutdown 也可以用来重开机。
语法:shutdown [-t seconds] [-rkhncfF] time [message]

参数:
-t seconds:设定在几秒钟之后进行关机程序。
-k:并不会真的关机,只是将警告讯息传送给所有使用者。
-r:关机后重新开机。
-h:关机后停机。
-n:不采用正常程序来关机,用强迫的方式杀掉所有执行中的程序后自行关机。
-c:取消目前已经进行中的关机动作。
-f:关机时,不做 fsck 动作(检查 Linux 档系统)。
-F:关机时,强迫进行 fsck 动作。
time:设定关机的时间。
message:传送给所有使用者的警告讯息。

例子:
shutdown -h now:立即关机。
shutdown -h 10:指定 10 分钟后关机。

ss命令

ss(Socket Statistics)命令可以用来获取 socket 统计信息,其输出的结果类似于netstat输出的内容,但它能显示更多更详细的 TCP 连接状态的信息,且比 netstat 更快速高效,因为它使用了 TCP协议栈中 tcp_diag(是一个用于分析统计的模块),能直接从内核获得信息。即使没有tcp_diagss也可以正常运行。

常用参数:
-t:tcp,显示TCP连接
-a:all
-l:listening,ss -l列出所有打开的网络连接端口
-s:summary,显示 Sockets 摘要
-p:progress
-n:numeric,不解析服务名称
-r:resolve,解析服务名称
-m:memory,显示内存情况

touch命令

touch修改文件或者目录的时间属性,包括存取时间和更改时间。若文件不存在,则新建。
ls -l <dir/filename>可以查看档案的时间记录。

语法:touch [-acfm][-d<日期时间>][-r<参考文件或目录>] [-t<日期时间>][--help][--version][文件或目录…]

参数:
-a:改变档案的读取时间记录。
-c--no-create:如果目的档案不存在,不会建立新的档案。
-d:设定时间与日期,可以使用各种不同的格式。
-f:不使用,是为了与其他 unix 系统的相容性而保留。
-m:改变档案的修改时间记录。
-r:使用参考档的时间记录,同--file
-t:设定档案的时间记录,格式与 date 指令相同。

uname命令

uname(unix name)显示电脑以及操作系统的相关信息。
语法:uname [-amnrsv][--help][--version]

参数:
-a或--all:显示全部的信息。
-m或--machine:显示电脑类型。
-n或--nodename:显示在网络上的主机名称。
-r或--release:显示操作系统的发行编号。
-s或--sysname:显示操作系统名称。
-v:显示操作系统的版本。

useradd命令

useradd用来创建用户帐号。帐号创建后,用passwd设定密码,用userdel删除帐号。使用useradd创建的帐号,保存在/etc/passwd文本文件中。
语法:useradd [-mMnr][-c <备注>][-d <登入目录>][-e <有效期限>][-f <缓冲天数>][-g <群组>][-G <群组>][-s <shell>][-u <uid>][用户帐号]

参数:
-c<备注>:加入备注文字。备注文字会保存在passwd的备注栏位中。
-d<登入目录>:指定用户登入时的起始目录。
-e<有效期限>:指定帐号的有效期限。
-f<缓冲天数>:指定在密码过期后多少天关闭该帐号。
-g<群组>:指定用户所属的群组。
-G<群组>:指定用户所属的附加群组列表(-G后面跟一个用户组列表,使用户属于指定的多个用户组)。
-m:自动建立用户的登入目录。
-M:不要自动建立用户的登入目录。
-n:取消建立以用户名称为名的群组.
-r:建立系统帐号。
-s<shell> :指定用户登入后所使用的shell。
-u<uid>:指定用户ID。

例子:
# useradd abc:添加一般用户abc(该用户无Home Directory,无密码,无系统Shell)。
# useradd -g root abc:为添加的用户abc指定用户组root。
# useradd -r abc:创建一个系统用户abc。
# useradd -d /home/qwq abc:为新添加的用户abc指定home目录。
# useradd caojh -u 544:建立用户abc且指定用户ID。
#useradd -d /usr/local/apache -g apache -s /bin/false apache:添加一个不能登录的用户

userdel命令

userdel用于删除用户帐号,可删除用户帐号与相关的文件。若不加参数,则仅删除用户帐号,而不删除相关文件。
语法:userdel [-r][用户帐号]

参数:
-r:删除用户登入目录以及目录中所有文件。

who, whoami, whois

who
who用于显示系统中有哪些使用者正在上面,显示的资料包含了使用者 ID、使用的终端机、从哪边连上来的、上线时间、呆滞时间、CPU 使用量、动作等等。
语法:who -[husfV] [user]

参数:
-H 或 --heading:显示各栏位的标题信息列。
-i 或 -u 或 --idle:显示闲置时间,若该用户在前一分钟之内有进行任何动作,将标示成"."号,如果该用户已超过24小时没有任何动作,则标示出"old"字符串。
-m:此参数的效果和指定"am i"字符串相同。
-q 或--count:只显示登入系统的帐号名称和总人数。
-s:此参数将忽略不予处理,仅负责解决who指令其他版本的兼容性问题。
-w 或-T或--mesg或--message或--writable:显示用户的信息状态栏。

whoami
whoami显示自身的用户名称。相当于执行id -un指令。

whois
whois用于查找并显示用户信息。
whois会去查找并显示指定帐号的用户相关信息,因为它是到Network Solutions的WHOIS数据库去查找,所以该帐号名称必须在上面注册方能寻获,且名称没有大小写的差别。
语法:whois [账号名称]

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注