Linux 命令大全

说明:
有的命令需要安装软件才能执行,如果你配置了yum,可以用命令 yum provides 命令 查看,例如查看哪个软件提供了 nc 命令 ,可以通过 yum provides nc 命令查询

1、文件管理

cat 用于查看文件并打印到标准输出设备上
-n 显示行号
-b 和 -n 相似,对空白行不编号
cat -b file1 file2 > file3
cat /dev/fd0 > OUTFILE #用来制作镜像文件,将软盘放好后输入
cat IMG_FILE > /dev/fd0 #把 image file 写到软盘

chattr 用于改变文件属性。可改变存放在 ext2 文件系统上的文件或目录属性,属性共有8种模式
a 让文件或目录仅供附加用途
b 不更新文件或目录的最后存取时间
c 将文件或目录压缩后存放
d 将文件或目录排除在倾倒操作之外
i 不得任意更改文件或目录
s 保密性删除文件或目录
S 即时更新文件或目录
u 预防意外删除
chattr [-RV][-v<版本编号>][+/-/=<属性>][文件或目录…]
-R 递归处理
-v<版本编号> 设置文件或目录版本
-V 显示指令执行过程
chattr +i /etc/resolv.conf #设置成不可变的文件,不能被删除、修改、重命名或链接
lsattr /etc/resolv.conf
chattr +a /var/log/messages #让某个文件只能往里面追加数据,但不能删除,适用于各种日志文件
chattr +d file1 #在进行文件系统备份时,dump程序将忽略这个文件
chattr +s file1 #允许一个文件被安全地删除
chattr +u file1 #若文件被删除,系统会允许你再以后恢复这个被删除的文件

lsattr 用于显示文件属性

chgrp 用于变更文件或目录的所属群组,与chown不同,chgrp允许普通用户改变文件所属的组,只要该用户是该组的一员。
chgrp [-cfhRv][–help][–version][所属群组][文件或目录…] 或
chgrp [-cfhRv][–help][–reference=<参考文件或目录>][–version][文件或目录…]
-v 显示指令执行过程
-c 类似 “-v” 参数,但仅回报更改的部分
-f 不显示错误信息
-h 只对符号链接的文件作修改,而不更改其他任何相关文件
-R 递归处理
–reference=<参考文件或目录> 把指定文件或目录的所属群组全部设成和参考文件或目录的所属群组相同
–version 显示版本信息
chgrp -v bin log2020.log
chgrp --reference=log2020.log log2013.log

chmod 控制用户对文件或目录的群贤
chmod [-cfvR][–help][==version] mode file…
mode:权限设定字串 [ugoa…][[±=][rwxX]…][…]
-c 若该文件权限确实已经更改,才显示其更改动作
-f 不显示错误信息
-v 显示权限变更的详细资料
-R 递归处理

chown 设置文件所有者和文件关联组的命令
chown [-cfhvR][–help][–version] user[:group] file…
-c 显示更改的部分信息
-f 修复符号链接
-R 递归处理

cksum 检查文件的CRC是否正确
cksum [–help][–version][文件…]

cmp 比较两个文件是否有差异
cmp [-clsv][-i<字符数目>][–help][第一个文件][第二个文件]
-c 除了标明差异处的十进制字码之外,一并显示该字符所对应字符。
-l 标示处所有不一样的地方
-s 不显示错误信息
cmp file1 file2

diff 用于比较文件的差异,以逐行的方式,比较文本文件的易同处,如果要指定比较目录,则diff会比较目录中相同文件名的文件,但不会比较其中子目录
diff [][]… file1 file2
diff file1 file2
diff file1 file2 -y -W 50 #并列格式输出
| 表示前后两个文件内容有不同
< 表示后面文件比前面文件少了一行内容
> 表示后面文件比前面文件多了一行内容

diffstat 根据diff的比较结果,显示统计数字。
diff [-wV][-n<文件名长度>][-p<文件名长度>]
-n<文件名长度 指定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名。
-p<文件名长度> 与-n参数相同,但此处的<文件名长度>包括了文件的路径。
-w 指定输出时栏位的宽度
diff test1 test2 | diffstat #进行比较结果的统计显示

file 辨识文件类型
file [-bcLvz][-f<名称文件>][-m<魔法数字文件>…][文件或目录…]

find 在指定目录下查找文件
find path -option [-print][-exec -ok |xargs |grep command] {} ;
-print 表示将结果输出到标准输出
-ok与exec作用相同,区别在于,在执行命令之前,ok都会给出提示,让用户确认是否执行
|xargs与exec相同,起承接作用,区别在于|xargs主要用于承接删除操作,而exec都可用,如复制,移动,重命名
options常用选项
-name #按文件名查找,支持正则匹配
-iname 按名称查找,不区分大小写
-perm 按照文件权限来查找文件
-user 按照文件属主来查找文件
-group 按文件属组查找
-mtime -n +n n (modify time)文件内容被修改时间,-n指n天以内,+n指n天以前
-atime (access time)显示的是文件中的数据最后被访问的时间,比如系统的进程直接使用或通过一些命令和脚本间接使用,cat会修改atime
-ctime (change time)显示的是文件的权限、拥有者、所属的组,链接数发生改变时的时间。当然当内容改变时也随之改变
#使用stat filename可以查看文件的atime,mtime,ctime
ls -l filename 查看mtime
ls -lu filename 查看atime
ls -lc filename 查看ctime #使用touch可改变atime,ctime,mtime
-type
-exec 对找到的档案执行命令
-maxdepth 3 最大3层深度
-o 或者
-a 并且
-not 相反
-size [±]n[cwbkMG] 文件大小
find . (-name “.sh" -o -name ".txt”) -print
find ./ -name “" -type f -mtime +7 -delete #找到当前目录下7天前的所有文件并删除
find ./ -name "null_
” -exec basename {} ; | sort #找到以null_开头的文件,并只显示文件名,以升序排列。
find . -type f -newermt “2023-06-05 08:00” ! -newermt “2023-06-06 08:00” #查找当前目录修改时间在"2023-06-05 08:00" ~ "2023-06-06 08:00"的文件

git 管理文件的程序

gitview 用于观看文件的内容,它会同时显示十六进制和ASCII格式的字码
gitview [-bchilv][文件]
-b 单色模式
-c 彩色模式
-h 在线帮助
-i 显示存放gitview程序的所在位置
-l 不使用先前的显示字符
-v显示版本信息
gitview -c test.txt #以彩色模式观看文件中的内容

indent 用于调整C原始代码文件的格式

cut 用于显示每行从开头算起num1到num2的文字
cut [-bn] [file]
cut [-c] [file]
cut [-df] [file]
-b 以字节为单位进行分割
-c 以字符为单位进行分割
-f 与 -d 一起使用
cut -d: -f1 /etc/passwd # -f设置需要看的列 -d自定义分隔符
who | cut -b 3

ln 为某一个文件在另外一个位置建立一个同步的链接。
ln [参数][源文件或目录][目标文件或目录]
软链接,以路径的形式存在,可以跨文件系统,硬链接不可以;可以对一个不存在的文件名进行链接,可以对目录进行链接
硬链接,以文件副本的形式存在,但不占用实际空间,不允许给目录创建硬链接,只有在同一个文件系统中才能创建
ln -s log1.log link1 #为log1.log文件创建软链接link1,如果log1.log丢失,link1将失效。
ln log1.log ln1 #创建硬链接

less 与more类似,less可以随意浏览文件
less [参数] 文件
less test1 test2 #浏览多个文件,输入 :n 后,切换到test2;输入 :p 后,切换到test1

locate 查找符合条件的文档
locate passwd
locate /etc/sh 搜索etc下所有以sh开头的文件
locate -i ~/r 忽略大小写搜索当前用户目录下以r开头的文件

mc 用于提供一个菜单式的文件管理程序。

mktemp 建立暂存文件
mktemp temp.xxxx #生成临时文件
dir

more 类似cat,一页一页显示,b往回一页显示,空格下一页
more -s testfile #逐页显示,如有连续两行以上的空白行则以一行空白行显示。
more +20 testfile #从第20行开始显示

mv 移动或改名

od 用于输出文件内容,od指令会读取所给予的文件的内容,并将其内容以八进制字码呈现出来。

paste 用于合并文件的列,把每个文件以列对列的方式,一列列的加以合并。
paste [-s][-d<间隔字符>][–help][–version][文件…]
-d<间隔字符> 用指定的间隔字符取代跳格字符
-s 串列进行而非平行处理
paste test1 test2 test3 #将指定的三个文件合并
paste -s test1

patch 利用设置修补文件的方式,修改,更新原始文件
cat testfile1
Hello,This is the firstfile!
cat testfile2
Hello,This is the secondfile!
diff testfile1 testfile2 > testfile.patch 补丁包 testfile.patch
patch -p0 testfile1 testfile.patch #通过补丁包升级 testfile1

rcp 用于复制远程文件或目录
rcp [-pr][源文件或目录][目标文件或目录]
rcp [-pr][源文件或目录…][目标文件]
-p 保留源文件或目录的属性,包括拥有者,所属群组,权限与时间
-r 递归处理

rm 删除一个文件或目录

slocate 查找文件或目录

split 用于将一个文件分割成数个。在默认情况下将按照每1000行切割成一个小文件。
split [–help][–version][-<行数>][-b <字节>][-C <字节>][-l <行数>][要切割的文件][输出文件名]
-<行数> 指定多少行切割成一个小文件
-b <字节> 指定多少字节切割成一个小文件
-C <字节> 与 "-b"类似,但在切割是将尽量维持每行的完整性
[输出文件名] 设置切割后文件的前置文件名,split会自动在前置文件名后再加上编号。

tee 用于读取标准输入的数据,并将其内容输出成文件
tee [-ai] [–help][–version][文件…]
-a 附加到既有文件的后面,而非覆盖它。
-i 忽略中断信号
tee test1 test2 << EOF
1
2
EOF

tmpwatch 用于删除不必要的暂存文件,可以设置文件超期时间,单位以小时计算。
tmpwatch [-afqv][–test][超期时间][目录…]
-a 删除任何类型的文件
-f 强制删除文件或目录。
-q 不显示指令执行过程
-v 详细显示指令执行过程
–test 仅做测试,并不真的删除文件或目录
tmpwatch 24 /tmp/ #删除/tmp目录中超过一天未使用的文件。

touch 用于修改文件或目录的时间属性,包括存取时间和更改时间。若文件不存在,系统会建立一个新的文件。
touch [-acfm][-d<日期时间>][-r<参考文件或目录>][-t<日期时间>][–help][–version][文件或目录…]
-a 改变档案的读取时间记录
-m 改变档案的修改时间记录
-c 如果目的档案不存在,不会建立新的档案。
touch testfile #testfile已存在,修改文件时间属性为当前系统时间

umask 指定在建立文件时预设的权限掩码
umask [-S][权限掩码]
-S 以字符的方式来表示权限掩码
umask #获取当前权限掩码
umask 755 #设置预设权限,新建的文件权限则为777-755

which 用于查找文件,which指令会在环境变量 $PATH 设置的目录里查找符合条件的文件
which [文件…]

cp 复制文件或目录
cp [options] source dest
-a 此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容。作用等于 dpR 参数组合
-d 复制是保留链接
-f 覆盖已经存在的目标文件而不给出提示
-i 与 -f 相反,在覆盖目标文件之前给出提示
-p 除复制文件的内容外,还把修改时间和访问权限也复制到新文件中。
-r 若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件
-l 不复制文件,只是生成链接文件
复制目录时,必须使用参数 -r 或 -R

whereis 用于查找文件,该指令只能用于查找二进制文件、源代码文件和man手册页
whereis [-bfmsu][-B<目录>…][-M<目录>…][-S<目录>…][文件…]
-b 只查找二进制文件
-B<目录> 只在设置的目录下查找二进制文件
-f 不显示文件名前的路径名称
-m 值查找说明文件
-M<目录> 只在设置的目录下查找说明文件
-s 只查找原始代码文件
-S<目录> 只在设置的目录下查找原始代码文件
-u 查找不包含指定类型的文件
whereis bash

rhmask 用于对文件进行加密和解密操作
rhmask [加密文件][输出文件] 或
rhmask [-d][加密文件][源文件][输出文件]
-d 产生加密过的文件

scp 用于复制文件和目录,scp是加密的,rcp是不加密的,scp是rcp的加强版
scp [-1246BCpqrv][-c cipher][-F ssh_config][-i identity_file][-l limit][-o ssh_option][-P port][-S program][user@host1:/file1] […][user@host2:/file2]
-p 保留文件的修改时间,访问时间和访问权限
-r 递归复制
-v 详细显示输出
-P port 传输用的端口

awk 一种处理文本文件的语言,是一个强大的文本分析工具
NR 行号
NF 列号

read 用于从标准输入读取数值
-p 后面跟提示信息,即在输入前打印提示信息
-e 在输入的时候可以使用命令补全功能
-n 后面跟一个数字,定义输入文本的长度。
-r 屏蔽,没有该选项,则\作为一个转义字符
-s 安静模式,在输入字符是不在屏幕上显示
-t 后面跟秒数,定义输入字符的等待时间。
read -n1 -p "输入一个数字:"n

updatedb 用来创建或更新 slocate/locate 命令所必须的数据库文件

2、文档编辑

col 用于过滤控制字符,在许多UNIX说明文件里,都有RLF控制字符。当我们运用">“和”>>",把说明文件的内容输出成纯文本文件时,控制字符会变成乱码,col则能有效过滤除
col [-bfx][-l<缓冲区列数>]
-b 过滤掉所有的控制字符,包括RLF和HRLF
-f 过滤除RLF字符,但允许将HRLF字符呈现出来
-x 以多个空格字符来表示跳格字符
-l<缓冲区列数> 预设的内存缓冲区有128列,可以自行指定缓冲区的大小
man man | col -b > man_help

colrm 用于滤掉指定的行,不加任何参数,不会滤掉任何一行。
colrm [开始行数编号<结束行数编号>]
开始行数编号 指定要删除的列的起始编号
结束行数编号 指定要删除的列的结束编号,可以省略

comm 用于比较两个已排过序的文件,结果显示3列,第一列仅在第1个文件里出现过,第二列仅在第2个文件里出现,第三列则是第1和第2文件都出现过
comm [-123][–help][–version][第一个文件][第二个文件]
-1 不显示只在第1个文件里出现过的列
-2 不显示只在第2个文件里出现过的列
-3 不显示在第1和第2文件里出现的列
comm a.txt b.txt

csplit 用于分割文件

ed 是文本编辑器,用于文本编辑,一次仅能编辑一行

egrep 用于在文件内查找指定的字符串,效果与"grep -E"相似,
egrep [范本模式][文件或目录]
egrep linux * #查找当前目录下所有文件中包含字符换"linux"的文件

ex 用于在Ex模式下启动vim文本编辑器。执行效果如同 vi -E

fgrep 相当于 grep -F

fmt 用于编排文本文件

fold 用于限制文件列宽

grep 查找文件里符合条件的字符串
grep [-abcEFGhHilLnqrsvVwxy][-A<显示行数>][-B<显示列数>][-C<显示列数>][-d<进行动作>][-e<范本样式>][-f<范本样式>][–help][范本样式][文件或目录…]
-a 不要忽视二进制的数据
-A<显示行数> 除了显示符合范本样式的那一列之外,并显示该行之后的内容
-b 在显示符合样式的那一行之前,标示处该行第一个字符的编号
-B<显示列数> 除了显示符合样式的那一行之外,并显示该行之前的内容
-c 计算符合样式的列数
-C<显示列数> 除了显示符合样式的那一行之外,还显示该行之前后的内容
-d<进行动作> 当指定要查找的是目录而非文件时,必须使用这项参数
-E 使用扩展正则
-i 忽略大小写
-l 列出文件内容符合指定样式的文件名称
-L 列出文件内容不符合指定样式的文件名称
-n 显示行号
-o 只显示匹配PATTERN部分
-v 显示不包括匹配文本的所有行
-s 不显示错误信息
-r 以递归的方式查找符合条件的文件。
-q 安静模式,不打印任何标准输出,如果有匹配的内容则立即返回状态值0;可用于if逻辑判断。
正则表达式
^ $ [] [^] . x* x{n,m} x{n,} x{n} ()
扩展正则

  • ? x{n,m} x{n,} x{n} () | \b
    grep test file #查找后缀file的文件中包含test字符串的文件
    grep -r update /etc/acpi #查找目录/etc/acpi及其子目录下所有文件中包含update的文件。
    find / -type f -name "
    .log" | xargs grep -i “error”
    grep “^root” test.txt
    grep “bash$” test.txt
    greo “[root]” test.txt
    grep “[a-z]” test.txt
    grep “[A-Z]” test.txt
    grep “[a-Z]” test.txt
    grep “[^0-9]” test.txt
    grep “roo.” test.txt
    grep “ro…” test.txt
    grep “ro*” test.txt
    grep “rot" test.txt
    grep “[0-9]:” test.txt
    grep “[^0-9]:” test.txt #:前面不是数字
    grep “roo{1,2}t” test.txt #第2个o出现1~2次,找root或rooot
    grep “ro{2}t” test.txt #o智能出现2次 root
    grep “ro{1,}t” test.txt #o出现1次及1次以上
    grep "(root).
    \1” /etc/passwd #查找包含两个root的行 grep “root.*root” /etc/passwd
grep "\(root\)\(:\).*\2\1" /etc/passwd #查找以 root: 开头,并以 :root 结尾的行 grep "root:.*:root" /etc/passwd

ispell 用于拼写检查程序

jed 用于编辑文本文件,适合用来编辑程序原始代码

joe 用于编辑文本文件

join 用于将两个文件中,指定栏位内容相同的行连接起来。
join file1 file2

look 用于查询单词

pico 用于编辑文字文件

rgrep 递归查找文件里符合条件的字符串

sed 利用脚本来处理文本文件

sort 用于将文本文件内容加以排序
sort [-bcdfikmMnr][-o<输出文件>][-t<分隔字符>][+<起始栏位>-<结束栏位>][–help][–version][文件]
-b 忽略每行开始出的空格字符
-c 检查文件是否已经按照顺序排列,若已有序则不进行操作
-d 排序时,处理英文字母、数字及空格字符外、忽略其他的字符
-k --key=位置1[,位置2] 在位置1开始1个key,在位置2终止(默认为尾行)
-n 按照数值的大小排序
-t 使用指定的分隔符代替而非空格到空格的转换
-r 以相反的顺序来排序
-o<输出文件> 将排序后的结果输入到指定文件
-u 配合 -c,严格校验排序;不配合 -c,则只输出一次排序结果
sort -nr testfile #降序排列
cat /etc/passwd | sort -t ‘:’ -k 3 #用 : 来分割,以第三栏来排序
cat /etc/passwd | sort -t ‘:’ -k 3n
cat /etc/passwd | sort -t ‘:’ -k 7 -u
cat /etc/passwd | sort -t ‘:’ -k 6.2,6.4 -k 1r #先已第六个域的第2个字符到第4个字符进行正向排序,再基于第一个域进行反向排序
cat /etc/passwd | sort -t ‘:’ -k 7 -u #查看有多少个shell,对passwd的第七个域进行排序,然后去重

spell 可建立拼音检查程序

tr 用于转换或删除文件中的字符
tr [-cdst][–help][–version][第一字符集][第二字符集]
tr [OPTION]…SET1[SET2]
cat testfile | tr a-z A-Z cat testfile | tr [:lower:] [:upper:]

expr 手工命令行计数器
expr a - b

uniq 用于检查及删除文本文件中重复出现的行列,一般与sort命令结合使用
uniq [-cdu][-f<栏位>][-s<字符位置>][-w<字符位置>][输入文件][输出文件]
-c 在每行旁边显示该行重复出现的次数
-d 仅显示重复出现的行列
sort testfile | uniq -c

wc 用于统计字数
wc [-clw][文件…]
-c 只显示Bytes数
-l 显示行数
-w 只显示字数

let BASH中用于计算的工具
let arg [arg…]
arg : 要执行的表达式
let a++

3、文件传输

lprm 可用来将常未送到打印机的工作取消

lpr 实时程序用来将一个或多个文件当如打印队列等待打印

lpq 查看一个打印队列的状态

lpd 常驻的打印机管理程序

bye 在ftp模式下,中断FTP连线并结束程序。

ftp 设置文件系统相关功能

uuto 将文件传送到远端的UUCP主机

uupick 用来处理传送进来的文件

uucp 用于在Unix系统之间传送文件

uucico UUCP文件传输服务程序

tftp 用于传输文件,
tftp [主机名称或IP地址]
put :上传文件
get :下载文件
quit :退出

ncftp 用于传输文件

ftpshut 在指定的时间关闭FTP服务器
ftpshut [-d<分钟>][-l<分钟>][关闭时间][“警告信息”]
-d<分钟> 切断所有FTP连线时间
-l<分钟> 停止接受FTP登入的时间
ftpshut -d 3 -l 5 1100 “Server will be shutdown at 23:00:00” #在晚上11:00关闭FTP服务器,并在关闭前5分钟拒绝新的ftp登陆,前3分钟关闭所有ftp的链接,并给出警告信息

ftpwho 显示目前所有FTP登入的用户信息

ftpcount 显示目前以FTP登入的用户人数

lftp 基于命令行的文件传输软件(FTP客户端),除FTP协议外,还支持FTPS,HTTP,HTTPS,HFTP,FISH以及SFTP协议
lftp ftp用户:ftp密码@服务器地址:传送端口(默认为21)
本地目录的操作
lcd
lpwd
ftp端的操作
cd
ls
pwd
rm
mkdir
rmdir
文件上传下载
上传: put 文件名 多个文件(支持通配符) mput 文件1 文件2 …
下载: get 文件名 多个文件(支持通配符) mgut 文件1 文件2 …
上传文件夹: mirror -R 文件夹名
下载文件夹: mirror 下载文件夹存档到本地目录的位置

4、磁盘管理

cd 进入到一个文件夹目录下

df 监控磁盘上使用情况
-h 人性化易读方式显示
-i 显示磁盘inode使用量信息,inode个数决定了该分区可以创建的文件个数
-T 显示文件系统类型
df -hT
df -i

dirs 显示目录记录

du 显示目录或文件的大小
du [-abcDlms][-L<>][-X<文件>][–block-size][–exclude=<目录或文件>][–max-depth=<目录层数>][文件或目录]
-a 显示目录中个别文件的大小
-b 显示文件或目录大小时,以bytes为单位
-c 除显示个别目录或文件的大小外,同时显示所有目录或文件的总和
-h 以K,M,G为单位。提高可读性
-s 仅显示总计
-X<文件> 指定目录或文件
–exclude=<目录或文件> 略过指定的目录或文件
du -sh
du -sk * | sort -rn #以容量大小为依据依次显示文件和目录的大小

edquota 用于编辑用户或群组的磁盘配额
edquota [-ug] -t
-u 设置用户的磁盘配额
-g 设置群组的磁盘配额
-t 设置宽限期限

eject 用于退出抽取式设备

mkdir [-p] dirName
-p 可以一次创建多级目录

mlabel 设定磁盘的标签(Label)

pwd 限制目前所在的绝对路径

quota 用于显示磁盘已使用的空间和限制

mount 挂载Linux系统外的文件
fuser -km /mnt/hda1 #当设备繁忙时强制卸载
mount -o loop file.iso /mnt/cdrom #挂载一个文件或ISO镜像文件
mount -t vfat /dev/hda5 /mnt/hda5 #挂载一个Windows FAT32文件系统
mount -a 读取 /etc/fstab 文件配置并挂载

rmdir 删除空的目录
rmdir [-p] dirName
-p 当子目录被删除后使它也成为空目录的话,则会顺便一并删除

rmt 通过进程间通信远程控制磁带机

stat 文件/文件系统的详细信息显示
stat [选项][文件或目录]
-f 不显示文件本身的信息,显示文件所在文件系统的信息
-Z 打印SElinux安全上下文信息

tree 树状图列出目录的内容 #需要安装tree安装包
tree [参数][目录…]
-d 显示目录
-L 限制目录显示层级

umount 卸载 挂载的目录

ls 显示目录下内容
-a 显示所有文件及目录(.开头的隐藏文件也会列出)
-A 同-a,但不列出 “.” (目录)及 “…”(父目录)
-l 详细列出
-d 遇到目录时列出目录本身而非目录内的文件
-h 与-l一起,以易于阅读的格式输出文件大小
-Z 显示文件的安全上下文
-p 对目录加上表示符号 “/”
-R 递归列出子目录
-1 数字1:每行显示一条记录,即单列展示数据
-c with -lt: sort by, and show, ctime (time of last modification of file status information);with -l: show ctime and sort by name;
-t 根据修改时间排序,‘–sort=time’,Sort by modification time (the ‘mtime’ in the inode), newest first.
-S ‘–sort=size’,Sort by file size, largest first.
ls -Zd /mydir
ls -lSrh | more #以大小排列显示文件和目录

quotacheck 检查磁盘的使用空间与限制

quotaoff 关闭磁盘空间的限制

lndir 用于连接目录内容,可一次把源目录下的文件和子目录统统建立起相互对应的符号链接

repquota 用于检查磁盘空间限制的状态

quotaon 用于开启磁盘空间限制

mdadm 用于管理Linux系统中的软件 RAID 硬盘阵列
mdadm [模式] <RAID设备名称> [选项][成员设备名称]
-a 检车设备名称
-n 指定设备数量
-l 指定 RAID 级别
-C 创建
-x 指定设备备用个数
-v 显示过程
-f 模拟设备损坏
-r 移除设备
-Q 查看摘要信息
-D 查看详细信息
-S 停止RAID磁盘阵列
mdadm -Cv /dev/md0 -a yes -n 4 -l 10 /dev/sdb /dev/sdc /dev/sdd /dev/sde #创建一个RAID阵列卡,磁盘阵列名称为/dev/md0, -a yes 代表自动创建设备文件,-n 4 代表使用4块硬盘来部署,-l 10 代表RAID 10方案
mkfs.ext4 /dev/md0
mkdir /RAID
mount /dev/md0 /RAID
df -h
mdadm -D /dev/md0
echo “/dev/md0 /RAID ext4 defaults 0 0” >> /etc/fstab
mdadm /dev/md0 -f /dev/sdb
mdadm -D /dev/md0

	mdadm -Cv /dev/md0 -n 3 -l 5 -x 1 /dev/sdb /dev/sdc /dev/sdd /dev/sde	#创建一个RAID 5磁盘阵列+备份盘, -x 1 代表有一块备份盘

5、磁盘维护

badblocks 用于检查磁盘装置中损坏的区块
badblocks [-svw][-b<区块大小>][-o<输出文件>][磁盘装置][磁盘区块数][起始区块]
-b<区块大小> 指定磁盘的区块大小
-o<输出文件> 将检查结果写入指定的输出文件
-s 在检查时显示进度
-v 执行时显示详细的信息
badblocks -s -v /dev/sdb1

cfdisk 用于磁盘分区

dd 用于读取、转换并输出数据
按照指定大小和个数的数据块来复制文件或转换文件
if=输入的文件名称
of=输出的文件名称
bs=设置每个"块"的大小
count=设置要复制"块"的个数
dd if=/dev/zero of=/tmp/test bs=1M count=10 #创建/tmp/test文件,大小10M,单词写入1M,写入10次
dd if=/dev/cdrom of=RHEL-server-7.0-x86_64-LinuxProbe.Com.iso #制作光盘文件
echo 1 | dd of=/etc/zookeeper/conf/myid

e2fsck 用于检查使用Linux ext2档案系统的partition是否正常工作

ext2ed 是ext2文件系统编辑程序,此指令只有RedHat Linux才提供

fsck 用于检查与修复Linux档案系统

fsck.minix 用于检查文件系统并尝试修复错误

fsconf 用于设置文件系统相关功能

fdformat 用于对指定的软碟机装置进行低阶格式化

hdparm 用于显示与设定硬盘的参数

mkbootdisk 用于建立目前系统的启动盘

mke2fs 用于建立ext2文件系统

mkfs.ext2 用于建立ext2文件系统,与mke2fs相同

mkfs.msdos 与mkdosfs命令相同

mkinitrd 用于建立要载入ramdisk的映像文件

mkisofs 用于建立ISO 9660映像文件

mkswap 用于设置交换区,将磁盘分区或文件设为Linux的交换区
mkswap [-cf][-v0][-v1][设备名称或文件][交换区大小]
-c 建立交换区前,先检查是否有损坏的区块
-f 在SPARC电脑上建立交换区时,要加上此参数。
-v0 建立旧式交换区,此为预设值
-v1 建立新式交换区
[交换区大小] 指定交换区大小,单位为1024字节
dd if=/dev/zero of=/extra-swap bs=1024 count=1024
mkswap /extra-swap 1024
swapon /extra-swap

swapon 用于激活Linux系统中的交换分区
-a 自动启动所有swap装置
-s 显示简短的装置信息

symlinks 用于维护符号连接的工具程序

sync 用于数据同步,此命令是在关闭Linux系统时使用的

mbadblocks 用于检查MS-DOS文件系统的磁盘是否有损坏的磁区

mkfs.minix 用于建立Minix文件系统

fsck.ext2 用于检查文件系统并尝试修复错误

fdisk 是一个创建和维护分区表的程序,它兼容DOS类型的分区表、BSD或者SUN类型的磁盘列表
fdisk [必要参数][选择参数]
必要参数
-l 列出所有分区表
-u 与"-l"搭配使用,显示分区数目
选择参数
-s<分区编号> 指定分区
-v 版本信息
菜单操作说明
m 显示菜单和帮助信息
a 活动分区标记/引导分区
d 删除分区
l 显示分区类型
n 新建分区
p 显示分区信息
q 退出不保存
w 保存修改
v 进行分区检查
t 设置分区号
x 扩展应用,高级功能
fdisk -l

losetup 用于设置循环设备

mkfs 用于在特定的分区上建立Linux文件系统
mkfs [-V][-t fstype][fs-options] filesys [blocks]
-V 详细显示模式
-t 给定档案系统的格式
-c 在制作前,检查是否有损坏
-l bad_blocks_file 将有损坏的block资料加入到 bad_blocks_file里面
mkfs -V -t msdos -c /dev/sdb3
mkfs -t ext3 /dev/sda6 #指定文件系统,比如ext3,reiserfs,ext2,fat32,msdos

sfdisk 是硬盘分区工具程序

swapoff 用于关闭系统交换区,临时关闭,永久关闭需要修改/etc/fstab文件

6、网络通讯

apachectl 用来控制Apache HTTP 服务器的程序

arpwatch 用来监听网络上ARP的记录;ARP是用来解析IP与网络装置硬件地址的协议。
arpwatch [-d][-f<记录文件>][-i<接口>][-r<记录文件>]
-d 启动拍错模式
-f<记录文件> 设置存储ARP记录的文件,预设为/var/arpwatch/arp.dat
-i<接口> 指定的监听ARP的接口,预设的接口为eth0
-r<记录文件> 从指定的文件中读取ARP记录,二不是从网络上监听
-n 指定附件的本地网络
-u 指定用户和用户组
-e 发送邮件给指定用户
-s 指定用户名作为返回地址
arpwatch -i eth0 -f a.log

dip 用于ip拨号连接

getty 用于设置终端机模式,连线速率和管制路线

mingetty 是精简版的getty,适用于本机上的登入程序

uux 用于在远端的UUCP主机上执行命令

telnet 用于远端登入 #只能用于检查tcp端口
telnet 192.168.1.1 17009
退出 ctrl+] quit

nc 可用于测试tcp和udp端口 #软件包 nmap-ncat提供
测试tcp端口
nc -vz IP port
测试udp端口
nc -vuz IP port

uulog 用于显示UUCP记录文件

uustat 用于显示UUCP目前的状况

ppp-off 用于关闭ppp连线

netconfig 用于设置网络环境

httpd 是Apache HTTP服务器程序

ifconfig 显示或设置网络设备
ifconfig [网络设备][down up -allmulti -arp -promisc][add<地址>][del<地址>][<hw<网络设备类型><硬件地址>][io_addr][irq<IRQ地址>][media<网络媒介类型>][mem_start<内存地址>][metric<数目>][mtu<字节>][netmask<子网掩码>][tunnel<地址>][-broadcast<地址>][-pointopoint<地址>][IP地址]
ifconfig eth0 192.168.0.31 netmask 255.255.255.0
ifconfig eth0 up
ifconfig eth0

minicom 用于调制解调器通信程序

mesg 用于设置终端机的写入权限

dnsconf 用于设置DNS服务器组态

wall 将讯息传送给每一个mesg设定为yes的上线使用者

netstat 用于显示网络状态
netstat [-acCeFghilMnNoprstuvVwx][-A<网络类型>][–ip]
-a 显示所有连线中的Socket
-A<网络类型>或–<网络类型> 列出该网络类型连线中的相关地址
-c 持续列出网络状态
-C 显示路由器配置的快取信息
-e 显示网络其他相关信息
-F 显示路由器缓存
-g 显示多重广播功能群组组员名单
-i 显示网络界面信息表单
-l 显示监控中的服务器的Socket
-M 显示伪装的网络连线
-n 直接使用ip地址,而不通过域名服务器
-p 显示正在使用Socket的程序识别码和程序名称
-r 显示Routing Table
-s 显示网络工作信息统计表
-t 显示TCP传输协议的连线状况
-u 显示UDP传输协议的连线状况
-s 显示各种协议数据统计信息
常用组合 netstat -ntulp,通过管道 | grep 80 可以快速查看有没有某一个端口号

ping 用于检测主机,使用ICMP传输协议
ping [-dfnqrRv][-c<完成次数>][-i<间隔秒数>][-w<等待时间结束>][-I<网络界面>][-l前置载入][-p<范本样式>][-s<数据包大小>][-t<存活数值>][主机名称或IP地址]
ping -i 0.5 -c 3 -w 4 www.baidu.com

pppstats 显示PPP连线状态

samba 用于Samba服务器控制

setserial 用于设置或显示串口的相关信息

talk 用于与其他使用者对谈

traceroute 用于显示数据包到主机间的路径
traceroute www.baidu.com

tty 用于显示终端机连接标准输入设备的文件名称

newaliases 会使用一个在/etc/aliases中的档案做使用者名称转换的动作

uuname 用于显示全部的UUCP远端主机

netconf 用于设置各项网络功能

write 用于传讯息给其他使用者

statserial 用于显示串口状态

efax 用于收发传真

pppsetup 用于设置PPP连线

tcpdump 用于倾倒网络传输数据
tcpdump [-adeflnNOpqStvx][-c<数据包数目>][-F<表达文件>][-i<网络界面>][-r<数据包文件>][-s<数据包大小>][-tt][-T<数据包类型>][-vv][-w<数据包文件>][输出数据栏位]
-a 尝试将网络和广播地址转换成名称
-c<数据包数目> 收到指定的数据包数目后,就停止
-d 把编译过的数据包编码转换成可阅读的格式,并倾倒到标准输出
-e 在每列倾倒资料上显示连接层级的文件夹
-f 用数字显示网际网络地址
-F<表达文件> 指定内含表达式的文件
-i interface 指定tcpdump需要监听的端口,如果没有指定,tcpdump会从系统接口列表中搜寻编号最小的已配置好的接口(不包括loopback接口)
-l 使用标准输出列的缓冲区
-n 不把主机的网络地址转换成名字
-N 不列出域名
-O 不将数据包编码最佳化,当怀疑某些bug是由优化代码引起的,此选项很有用
-p 不让网络界面进入混杂模式
-q 快速输出,仅列出少数的传输协议信息
-r<数据包文件> 从指定的文件读取数据包数据
-s<数据包大小> 设置每个数据包的大小
-S 用绝对而非相对数值列出TCP关连数
-t 在每行输出中不显示时间戳
-tt 在每行输出中显示未经格式化的时间戳
-ttt 在每行打印的时间戳之前添加日期
-T<数据包类型> 强制将表达式所指定的数据包转译成设置的数据包类型
-v 详细显示指令执行过程
-vv 更详细显示指令执行过程
-w<数据包文件> 把数据包数据写入指定的文件
tcpdump -i eth0
tcpdump host webserver
tcpdump host 210.27.48.1
tcpdump host 210.27.48.1 and (210.27.48.2 or 210.27.48.3)
tcpdump ip host 210.27.48.1 and !210.27.48.2
tcpdump -i eth0 src host webserver
tcpdump -i eth0 dst host webserver
tcpdump tcp port 23 and host 210.27.48.1
tcpdump ‘gateway snup and (port ftp or ftp-data)’ #打印所有通过网关snup的ftp数据包
tcpdump ip and not net localnet #打印所有源地址或目标地址是本地主机的IP数据包
tcpdump ‘tcp[tcpflags] & (tcp-syn|tcp-fin) !=0 and not src and dst net localnet’ #打印TCP会话中的开始和结束数据包,并且数据包的源或目的不是本地网络上额主机(nt:localnet,实际使用替换成本地网络的名字)
tcpdump ‘tcp port 80 and ((ip[2:2] - ((ip[0] & 0xf)<<2 -=“” tcp=“” 12=“” 0xf0=“”>>2)) !=0)’ #打印所有源或目的的端口是80,网络协议IPV4,并且含有数据,而不是SYN,FIN以及ACK-only等不含数据的数据包
tcpdump ‘gateway sunp and ip[2:2]>576’ #打印长度超过576字节,并且网关地址是snup的IP数据包
tcpdump ‘ether[0] & 1 = 0 and ip[16]>=224’ #打印所有IP层广播或多播的数据包,但不是物理以太网的广播或多播数据包
tcpdump ‘icmp[icmptype] !=icmp-echo and icmp[icmptype] != icmp-echoreply’ #打印除icmp-echo或icmp-echoreply类型以外的数据包
tcpdump tcp -i eth1 -t -s 0 -c 100 and dst port ! 22 and src net 192.168.1.0/24 -w ./target.cap #ip icmp arp rarp 和tcp udp icmp这些选项要放到第一个参数的位置,用来过滤数据包的类型,只抓经过接口eth1的包,-t不显示时间戳,-s 0 抓取数据包默认长度是68字节,加上-s 0可以抓到完整的数据包,-c只抓取100个数据包,不抓22端口,数据包的源网络地址是192.168.1.0/24,-w保存成cap文件,方便用wireshark分析

tcpdump -XvvennSs -i eth0 tcp[20:2]=0x4756 or tcp[20:2]=0x4854	#抓取HTTP包

ytalk 用于和其他用户交谈

cu 用于连接另一个系统主机

smbd 用于Samba服务器程序

testparm 应用测试Samba的设置是否正确无误

smbclient 可存取SMB/CIFS服务器的用户端程序

shapecfg 用于管制网络设备的流量

7、系统管理

chfn 提供使用者更改个人资讯

useradd 用于建立用户账号
useradd [-mMnr][-c<备注>][-d<登入目录>][-e<有效期限>][-f<缓冲天数>][-g<群组>][-G<群组>][-s][-u][用户账号]
useradd -D [-b][-e<有效期限>][-f<缓冲天数>][-g<群组>][-G<群组>][-s]
-D 变更预设值
-e<有效期限> 账号的有效期限
-f<缓冲天数> 指定在密码过期多少天即关闭该账号
-g<群组> 指定用户所属的组
-G<群组> 指定用户所属的附加群组
-m 自动建立用户的登入目录
-M 不要自动建立用户的登入目录
-n 取消建立以用户名称为名的群组
-r 建立系统账号

date 用来显示或设定系统的日期与时间
时间方面:
% 印出%
%n 下一行
%t 跳格
%H 小时(00…23)
%I 小时(01…12)
%k 小时(00…23)
%l 小时(1…12)
%M 分钟(00…59)
%p 显示本地AM或PM
%r 直接显示时间(12小时制,格式为hh:mm:ss[AP]M)
%s 时间戳,从1970年1月1日00:00:00 UTC到目前为止的秒数
%S 秒(00…60)
%T 直接显示时间 %H:%M:%S(24小时制)
%X 相当于 %H:%M:%S(e.g., 23:13:48)
%Z 显示时区
日期方面:
%a 星期几(Sun…Sat)
%A 星期几(Sunday…Saturday)
%b 月份(Jan…Dec)
%B 月份(January…December)
%c 直接显示日期和时间
%d 日(0…31)
%D 直接显示日期(mm/dd/yy),same as %m/%d/%y
%h 同 %b
%j 一年中的第几天(001…366)
%m 月份(01…12)
%U 一年中的第几周with Sunday as first day of week (00…53)
%w 一周中的第几天(0…6); 0 is Sunday
%W 一年中的第几周with Monday as first day of week (00…53)
%x 直接显示日期(mm/dd/yy) 04/21/2021
%y 年份的最后两位数字(00…99)
%Y 完整的年份(0000.9999)
若是不以 “+” 作为开头,则表示要设定时间,而时间格式为 MMDDhhmm[[CC]YY][.ss],其中MM为月份,DD为日,hh为小时,mm为分钟,CC为年份前两位数字,YY为年份后两位数字,ss为秒数
当不希望出现无意义的0时(比如1970/03/07),则可以在标记中插入 “-” 符号,eg: date ‘+%-H:%-M:%-S’,向08:09:04会变成8:9:4
若以root身份更改了系统时间之后,记得以 clock -w 来将系统时间写入 CMOS 中,这样下次重新开机时系统才会持续保持最新的正确值
-d display time described by STRING, not ‘now’ eg: date -d -5month +%Y-%m-%d #5个月之前的今天
-s 将系统时间调为所设定的时间

exit 退出目前的shell

finger 让使用者查询一些其他使用者的资料

fwhios 用于查找并显示用户信息,类似finger,不同在于fwhios是到Network Solutions的WHOIS数据库去查找,必须有注册才能寻获,没大小写差别

sleep 用来将目前动作延迟一段时间
sleep number[smhd]
s 秒,m 分钟,h 小时,d 日数
sleep 3s

suspend 用于暂停执行shell

groupdel 删除群组

groupmod 更改群组识别码或名称
groupmod [-g<群组识别码>][-o][-n<新群组名称>][群组名称]
[-g<群组识别码>] 设置欲使用的群组识别码
-o 重复使用群组识别码
groupmod -n linux linuxso

halt 若系统的runlevel为0或6,则halt命令关闭系统,否则shutsown指令来取代

kill 用于删除执行中的程序或工作
kill 12345 杀死进程
kill -KILL 123456 强制杀死进程123456
kill -9 12345 彻底杀死进程 #常用选项

last 显示最近登录信息

lastb 用于列出登入系统失败的用户信息;单独执行lastab,会读取文件/var/log/btmp,并把该文件内容记录的登入失败的用户名单,全部显示出来
lastb [-adRx][-f<记录文件>][-n<显示列数>][账号名称…][终端机编号…]
-a 把从何处登入系统的主机名称或ip地址限制在最后一行
-d 把ip地址转换成主机名称
-R 不显示等日系统的主机名称或ip地址
-x 显示系统关机,重新开机,以及执行登记的改变等信息

login 用于登入系统

logname 用于显示用户名称

logout 用于退出系统

ps 用于显示当前进程的状态
ps [options]
-a 显示所有终端机下执行的进程,包括其他用户的进程
-C<指令名称> 指定执行指令的名称,并列出该指令的进程的状况
-e 效果和指定 “A” 参数相同,列出进程时,显示每个进程所使用的环境变量
-f 显示UID,PPID,C与STIME栏位;用ASCII字符显示树状结构,表达进程间的相互关系
-u<用户识别码> 以用户为主的格式来显示进程状况
-x 所示所有进程,不以终端机来区分
-A 列出所有的进程
-w 显示加宽可以显示较多的咨询
-au 显示较详细的咨询
aux 显示所有包含其他使用者的进程
ps -e
ps aux
ps -ef
ps -u zhangs #显示zhangs用户的所有进程
ps -u nginx -f -w
ps axo pid,comm,pcpu #查看进程的PID、名称以及CPU占用率
ps -efL #查看线程数
ps -e -o “%C:%p:%z:%a” | sort -k5 -nr #查看进程并按内存使用大小排列
ps -C nginx
ps aux --sort=-pcpu,+pmem #CPU或者内存进行排序,-降序,+升序
ps -f --forest -C nginx #用树的风格显示进程的层次关系
ps -o pid,uname,comm -C nginx #显示一个父进程的子进程
ps -e -o pid,uname=USERNAME,pcpu=CPU_USAGE,pmem,comm #重定义标签
ps -e -o pid,comm,etime #显示进程运行的时间
#最常用组合:
pa -aux | grep named #查看named进程详细信息
ps -ef | grep nginx #查看nginx的进程信息

nice 以更改过的优先序来执行程序

procinfo 用于显示系统状态

top 实时显示process的状态
top #显示进程信息
top -c #显示完整命令
top -b #以批处理模式显示程序信息,搭配"n"参数一起使用,可以用来将top的结果输出到档案内
top -S #以累计模式显示程序信息,会将已完成或消失的子行程(dead child process)的CPU time累计起来
top -n 2 #表示更新两次后终止更新显示,退出top
top -d 3 #表示更新周期为3秒
top -p 139 #显示进程号为139的进程信息,CPU,内存占用等
top -s #安全模式,使用者不能利用交谈式指令来对行程下命令

pstree 将所有行程以树状图显示

reboot 重启计算机

rlogin 用于远端登入

rsh 用于远端登入的Shell

sliplogin 用于将SLIP接口加入标准输入

screen 用于多重视窗管理程序

shutdown 用来进行关机程序

rwho 用于查看系统用户

sudo 以系统管理员的身份执行命令;使用权限: 在 /etc/sudoers 中有出现的使用者
sudo -l #显示自己的权限
sudo ls
sudo -u userb ls -l #指定用户执行命令
sudo -L #显示sudo设置
sudo !! #以root权限执行上一条命令

gitps 用于报告程序状况

swatch 用于系统监控程序

tload 用于显示系统负载状况

logrotate 用于管理记录文件

uname 用于显示系统信息
uname [-amnrsv][–help][–version]
-a 显示全部的信息
-m 显示电脑类型
-n 显示网络上的主机名称
-r 显示操作系统的发行编号
-s 显示操作系统名称

chsh 用于更改使用者shell设定

userconf 用于用户账号设置程序

userdel 用于删除用户账号
userdel [-r] 用户账号
-r 删除用户登入目录以及目录中的文件

usermod 修改用户账号
usermod -d /home/docker docker #更改登陆目录
usermod -u 777 docker 改变用户的uid

vlock 用于锁住虚拟终端

who 用于显示系统中的哪些使用者正在上面

whoami 用于显示自身用户名称

whois 用于查找并显示用户信息
whois 账号名称

newgrp 用于登入另一个群组

renice 用于重新指定一个或多个行程(process)的优先序

su 用于变更为其他使用者的身份
su oldsixl #切换到oldsixl用户
su - oldsixl #切边到oldsixl用户,并且切换到oldsixl的家目录

skill 送个讯号给正在执行的程序,预设的信息为TERM(中断),较常使用的讯息为HUP,INT.KILL,STOP,CONT和0

w 用于显示目前登入系统的用户信息

id 用于显示用户的ID,以及所属群组的ID

groupadd 创建一个新的组

free 显示内存状态
free [-bkmgotV][-s<间隔秒数>]
-b,-k,-m,-g 以Byte,KB,MB,GB为单位显示内存使用情况
-h 以合适的单位显示内存使用情况
-s<间隔秒数> 持续观察内存使用状况
-t 以总和的形式查询内存的使用信息

8、系统设置

reset 和test是同一个命令,设定终端机的命令

clear 清楚屏幕

alias 设置指令的别名
alias 别名=指令
alias lx=ls

dircolors 用于设置ls指令在显示目录或文件时所用的色彩

aumix 用于设置音效装置

bind 用于显示或设置键盘按键与其他相关的功能

chroot 用于改变根目录

clock 用于调整RTC时间

at 只会执行一次计划任务,前提需确保atd服务是开启的
service atd start
chkconfig atd on
at 时间
-m 当计划执行结束后发送邮件给用户
-l 查看用户计划任务
-d 删除用户任务计划
-c 查看at计划任务具体内容
at 23:11
at> tar -cjf log.tar.bz2 /var/log
at> mv log.tar.bz2 /log_bak
at> 可以输入多条命令,输入完毕后按Ctrl+D快捷键结束,系统会提示编号为1的计划任务
at -l
at -c 1
at -d 1
at 4pm + 3 days 三天后的下午4点
at 12:00 2020-12-12

crontab 用来定期执行程序的命令,周期性地执行
crontab [-u user]{-l | -r | -e}
-u 指定用户
-l 列出目前的时程表
-r 删除目前的时程表
-e 编辑设定时程表

declare 用于声明shell变量

depmod 用于分析可载入模块的相依性

dmesg 用于显示开机信息 保存在/var/log/dmesg

enable 用于启动或关闭shell内建指令

eval 用于重新运算求出参数的内容

export 用于设置或显示环境变量
export [-fnp][变量名称]=[变量设置值]
-f 代表[变量名称]中围函数名称
-n 删除指定的变量
-p 列出所有shell赋予程序的环境变量

pwunconv 用于关闭用户的投影密码

grpconv 用于开启群组的投影密码

rpm 用于管理套件
参数
-a 查询所有套件
-q 使用查询模式,查询软件包是否安装
-i 安装选项
-v 显示指令执行过程
-h 套件安装时列出标记
-p 查询软件包的文件
-e 删除选项
-U 升级
-l 显示套件的文件列表
-f 查询属于哪个软件包
rpm -qf which telnet #查询telnet命令属于哪个软件包
rpm -qa | grep http* #查询是否安装某个软件, -a: 查询所有安装的软件包
rpm -qi package_name #获取一个已安装包的特殊信息
rpm -qg “System Environment/Daemons” #显示一个组件的rpm包
rpm -ql package_name #显示一个已经安装的rpm包提供的文件列表
rpm -qc package_name #显示一个已经安装的rpm包提供的配置文件列表
rpm -q package_name --whatrequires #显示与一个rpm包存在依赖关系的列表
rpm -ivh docker.rpm
rpm -ivh --nodeeps package.rpm #暗转给一个rpm包而忽略依赖关系警告
rpm -Uvh filename.rpm #升级软件
rpm -U package.rpm #更新一个rpm包但不改变其配置文件
rpm -F package.rpm #更新一个确定已经安装的rpm包
rpm -qi docker.rpm #显示软件安装信息
rpm -qpi filename.rpm #查询软件描述信息
rpm -qpl filename.rpm #列出软件文件信息

yum 软件升级器
yum -y install package_name #安装一个软件包
yum update package_name.rpm #更新当前系统中所有安装的rpm包
yum update package_name #更新一个rpm包
yum remove package_name #删除一个rpm包
yum list #列出当前系统中安装的所有包
yum repolist #统计当前系统有多少个软件包
yum search package_name #在rpm仓库中搜寻软件包
yum clean all

insmod 用于载入模块

kbdconfig 用于设置键盘类型

lilo 用于安装核心载入,开机管理程序

liloconfig 用于设置核心载入,开机管理程序

lsmod 用于显示已载入系统的模块

minfo 用于显示MS-DOS文件系统的各项参数

set 用于设置shell

modprobe 用于自动处理可载入模块

ntsysv 用于设置系统的各种服务

mouseconfig 用于设置鼠标相关参数

passwd 用来更改使用者的密码
passwd [-k][-l][-u][-d][-S][username]
-d 删除密码
-f 强迫用户下次登录时必须修改口令
-w 口令要到期提前警告的天数
-k 更新智能发送在过期之后
-l 停止使用账号
-S 显示密码信息
-u 启动已被停用的账户
passwd zhangsan
#一种无视密码策略的更改密码方法

echo 12345 | passwd --stdin oldsixl    #为用户oldsixl更改密码,12345 为更改的密码

pwconv 用于开启用户的投影密码

rdate 用于显示其他主机的日期和时间
rdate [-ps][主机或ip地址…]
-p 显示远端主机的日期和时间
-s 把从远端主机收到的日期和时间,回存到本机的系统时间

resize 用于设置终端机视窗的大小

rmmod 用于删除模块
lsmod #显示已安装的模块
rmmod -v pppoe #卸载模块pppoe
insmod -v pppoe > 1.log #安装模块

grpunconv 关闭群组的投影密码

modinfo 用于显示kernel模块的信息

time 量测特定指定执行时所需消耗的时间及系统资源等咨询
time date
time -v ps -aux

setup 设置公用程序,是一个启动图形设置系统的命令

sndconfig 用于设置声卡

setenv 用于显示或设置环境变量

setconsole 用于设置系统终端

timeconfig 用于设置区时

ulimit 用于控制shell程序的资源
ulimit [-aHS][-c][-d<数据节区大小>][-f<文件大小>][-m<内存大小>][-n<文件数目>][-p<缓冲区大小>][-s<堆叠大小>][-t<CPU时间>][-u<程序数目>][-v<虚拟内存大小>]
-a 显示目前资源限制的设定
-c<core文件上限> 设定core文件的最大值,单位为区块
-d<数据节去大小> 程序数据节区的最大值,单位为KB
-f<文件大小> shell所能建立的最大文件,单位为区块
-m<内存大小> 指定可使用内存的上限,单位为KB
-n<文件数目> 指定同一时间最多可开启的文件数
-p<缓冲区大小> 指定管道缓冲区的大小,单位为512字节
-u<程序数目> 用户最多可开启的程序数目
ulimit -a #显示系统资源的设置
ulimit -u 500 #设置单一用户程序数目上限

unset 用于删除变量或函数

chkconfig 用于检查,设置系统的各种服务

apmd 用于进阶电源管理服务程序

hwclock 用于显示与设定硬件时钟

mkkickstart 用于建立安装的组态文件

fbset 用于设置景框缓冲区

unalias 用于删除别名
unalias [-a][别名]
-a 删除全部的别名

SVGATextMode 用于加强文字模式的显示画面

gpasswd 用于将一个用户添加到组或从组中删除
gpasswd [可选项] 组名
-a 添加用户到组
-d 从组删除用户
-A 指定管理员
-M 指定组成员和-A的用途差不多
-r 删除密码
-R 限制用户登入组
gpasswd -a user group

9、备份压缩

ar 用于建立或修改备存文件,或是从备存文件中抽取文件

bunzip2 是 .bz2 文件的解压缩程序,bunzip2实际上是bzip2的符号链接,执行bunzip2与bzip2 -d的效果相同
bunzip2 [-fkLsvV][.bz2文件]
-f 解压缩时,若出现的文件与现有文件同名是,强制覆盖
-k 解压后保留压缩文件,预设会删除原来的压缩文件
-s 降低程序执行时,内存的使用量
-v 显示详细信息
-L 显示版本信息

bzip2 是 .bz2 文件的解压缩程序,若没有加上任何参数,bzip2压缩完后会产生.bz2的压缩文件,并删除原始的文件
bzip2 [-cdfhkLstvVz][–repetitive-best][–repetitive-fast][-压缩等级][要压缩的文件]
-c 将压缩与解压缩的结果送到标准输出
-d 执行解压缩
-f 解压缩时,若出现的文件与现有文件同名是,强制覆盖
-k 解压后保留压缩文件,预设会删除原来的压缩文件
-s 降低程序执行时,内存的使用量
-t 测试.bz2压缩文件的完整性
-v 显示详细信息
–repetitive-best 若文件中有重复出现的资料时,可利用此参数提高压缩效果
–repetitive-fast 若文件中有重复出现的资料时,可利用此参数提高压缩速度
压缩等级 压缩时的区块大小

bzip2recover 用来修复损坏的.bz2文件

gunzip 用于解压文件,用于解开被gzip压缩过的文件,事实上gunzip就是gzip的硬链接

unarj 用于解压缩.arj文件

cpio 用于备份文件

dump 可将目录或整个文件系统备份至指定的设备,或备份成一个大文件

uuencode 用于将uuencode编码后的档案还原

gzwxe 用于压缩执行文件

gzip 压缩文件。经过压缩后,其名称后面会多处".gz"的扩展名

lha 压缩或解压缩文件,".lzh"扩展名

restore 用来还原由dump操作所备份下来的文件或整个文件系统

tar 用于备份文件
-A 新增文件到已存在的备份文件
-c 建立新的备份文件
-C 指定解压到哪个目录
-f 指定备份文件
-m 还原文件时,不变更文件的更改时间
-p 用原来的文件权限还原文件
-t 列出备份文件的内容
-v 显示指令执行过程
-x 从备份文件中提取文件,解压
-z 通过gzip指令处理备份文件 .gz
-Z 通过compress指令处理备份文件
-j .bz2
-J .xz
tar -cf archive.tar foo bar # Create archive.tar from files foo and bar.
tar -tvf archive.tar # List all files in archive.tar verbosely.
tar -xf archive.tar # Extract all files from archive.tar.
tar --exclude=abc/1.txt -czvf abc.tar.gz abc #将文件abc压缩时,排除1.txt

uudecode 将uuencode编码后的档案还原

unzip 用于解压缩zip文件

zip 用于压缩文件 .zip

zipinfo 列出压缩文件信息

10、设备管理

setleds
loadkeys
rdev
dumpkeys
MAKEDEV
poweroff 关机

11、其他命令

bc 计算器

tail 查看文件内容
-f
-n 显示末尾n行
tail -f notes.log #动态查看日志,不断输出
tail -n +20 notes.log #显示从20行至文件末尾
tail -c 10 notes.log #显示文件的最后10个字符
tail -n -5 notes.log tail -5 notes.log tail -n -5 notes.log #3种效果一样

head 查看文件开头部分的内容
-c nK 显示文件前nKB的内容
-n 显示前n行的内容

xargs 给命令传递参数的一个过滤器,一般和管道一起使用
find . -type f -name “.jpg” -print | xargs tar -czvf images.tar.gz

ip 类似ifconfig,但比ifconfig功能强大,主要用于显示或设置网络设备

nohup 在系统后台不挂断地运行命令,退出终端不会影响程序的运行,默认会输出到当前目录下nohup.out,若当前目录的nohup.out不可写,则重定向到$HOME/nohup.out
nohup /root/runoob.sh > runoob.log 2>&1 & # 2>&1: 将标准错误2 重定向 到标准输出 &1,标准输出 &1再被重定向到runoob.log文件中
0 - stdin 标准输入
1 - stdout 标准输出
2 - stderr 标准错误输出
id tom >> user 2>> error #检查tom用户是否存在,存在则将tom相关信息记录到user文件中,否则记录至error文件中

killall 用于杀死一个进程,与kill不同会杀死指定名字的所有进程
pkill 用于杀死一个进程,类似killall命令

semanage
semanage fcontext -a -t httpd_sys_content_t /home/wwwroot #添加安全上下文,让目录里的文件能够被httpd服务访问到
semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/*
restorecon -Rv /home/wwwroot/ #使设置好的安全上下文立即生效

getsebool
getsebool -a | grep ftp

setsebool
setsebool -P ftpd_full_access=on # -P 永久生效

bash 快捷键
Ctrl+a 光标移动到行首
Ctrl+e 光标移动到行尾
Ctrl+k 删除光标至行位的字符
Ctrl+u 删除光标至行首的字符
Ctrl+c 终止进程
Ctrl+z 挂起进程(jobs命令查看挂起的进程)

sar

iftop

字符设置和文件格式转换
dos2unix filedos.txt fileunix.txt #将一个文本文件的格式从MSDOS转换成UNIX
unix2dos fileunix.txt filedos.txt #将一个文本文件的格式从UNIX转换成MSDOS
recode -l | more 显示所有允许的转换格式

lsof

setfacl -m u:user:rwx /opt

sbinbin目录有什么区别
bin存放所有的系统指令,可以被所有用户正常使用
sbin存放的命令只有root才可以使用,sbin是超级管理员指令,普通用户不能执行

ps -ef 打印所有进程
uid用户 PID PPID:父进程pid C:cpu使用率 STIME:进程开始时间 TTY:终端id TIME:进程运行时间 CMD
ps aux 打印所有进程
USER:进程拥有者 PID %CPU:占用的cpu使用率 %MEM:占用的内存使用率 VSZ:占用的虚拟内存大小 RSS:占用的驻留集大小或者实际内存的大小,不包含已交换出去的大小,单位kbytes STAT:进程状态(D不可中断、R正在运行,或在队列中的进程、S处于休眠状态、T停止或被追踪、Z僵尸进程、W进入内存交换,从内核2.6开始无效、X死掉的进程、<高优先级、N低优先级、s包含子进程、+位于后台的进程组、l多进程的)
ps -aux 打印用户名为"x"的用户所有进程,以及打印所有将有 -a 选项选择的进程。如果用户名x不存在,将会解释为 ps aux

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mr.L-OAM

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值