一、 基础命令
man 命令帮助
SYNOPSIS 用法格式说明 •
[] 可选内容 •
<> 必选内容 •
a|b 二选一 •
{ } 分组 •
… 同一内容可出现多次
DESCRIPTION 详细说明
OPTIONS 选项说明
EXAMPLES 示例
FILES 相关文件
AUTHOR 作者
COPYRIGHT 版本信息
REPORTING BUGS bug信息
SEE ALSO 其它帮助参考
help 内部命令帮助
#whatis [command] 显示command的帮助用法
二、文件目录操作
ls 列出目录属性信息
-a 包含隐藏文件
-l 显示详细的信息
-R 目录递归打开文件看信息
-d 目录和符号链接信息
-1 文件分行显示
–S 按从大到小排序
–t 按mtime排序
–u 配合-t选项,显示并按atime从新到旧排序
–U 按目录存放顺序显示
–X 按文件后缀排序
- #ls /etc/*.conf
? 字符
cd 当前目录切换指定目录
cp 复制文件或目录
-i:覆盖前提示
-f 先删除后创建新文件
-p 保留一部分
-v 显示过程
-a 全部保留、原始内容作为备份
mkdir 创建目录
-p: 存在于不报错,且可自动创建所需的各目录
-v: 显示详细信息
-m MODE: 创建目录时直接指定权限
mv 移动或重命名
mv [OPTION]… -t DIRECTORY SOURCE…
-i: 交互式
-f: 强制
#pwd 显示当前绝对路径
#rename 重命名文件
touch 创建空文件 改变已有文件的时间及属性
touch [OPTION]… FILE…
-a 仅改变 atime和ctime
-m 仅改变 mtime和ctime
-t [[CC]YY]MMDDhhmm[.ss] 指定atime和mtime的时间戳
-c 如果文件不存在,则不予创建
tree 以树形结构显示目录内容
-d: 只显示目录
-L level:指定显示的层级数目
-P pattern: 只显示由指定pattern匹配到的路径
basename 显示文件名或目录名
chattr 改变文件扩展属性
#dirname 显示文件目录路径
lsattr 查看文件扩展属性
file 显示文件的类型
-b 列出文件辨识结果时,不显示文件名称
-f filelist 列出文件filelist中文件名的文件类型
-F 使用指定分隔符号替换输出文件名后默认的”:”分隔符
-L 查看对应软链接对应文件的文件类型
–help 显示命令在线帮助
rm 删除
-i: 交互式
-f: 强制删除
-r: 递归
–no-preserve-root
#ln 创建硬链接
例:#ln 旧文件自动创建新文件
rmdir 删除空目录
-p: 递归删除父空目录
-v: 显示详细信息
ifconfig;ip addr 网卡信息
lscpu cpu信息
#uname -a 内核信息/操作系统/cpu
free;cat /proc/meminfo 内存信息
lsblk 磁盘分区.
三、内部处理命令
cat 连接多个文件并且打印到屏幕输出定向指定文件中
cat [OPTION]… [FILE]…
-E: 显示行结束符$
-n: 对显示出的每一行进行编号
-A:显示所有控制符
-b:非空行编号
-s:压缩连续的空行成一行
tac tac是cat从尾看到头
more 分页显示文件内容
-d: 显示翻页及退出提示
less 一页一页显示文件内容
查看时有用的命令包括:
/文本 搜索 文本
n/N 跳到下一个 或 上一个匹配
head 显示文件内容的开头
-c #: 指定获取前#字节
-n #: 指定获取前#行
-#: 指定行数
例:#head -n10 /etc/passwd 显示前十行
例:#head -c10 /etc/passwd 显示前十个字节
tail 显示文件内容的尾部
-c #: 指定获取后#字节
-n #: 指定获取后#行
-#: -f: 跟踪显示文件fd新追加的内容,常用日志监控
相当于 --follow=descriptor
-F: 跟踪文件名,相当于—follow=name --retry
例:#tail -f /var/log/httpd/access-log 观察日志的变化
例:统计/var/log/httpd/access-log日志中访问IP地址数量、统计前十IP地址。
#cat /var/log/httpd/access_log |cut -d" " -f1|sort|uniq -c |sort -nr |head -n10
cut 过滤
-d DELIMITER: 指明分隔符,默认tab
-f FILEDS:
#: 第#个字段
#,#[,#]:离散的多个字段,例如1,3,6
#-#:连续的多个字段, 例如1-6
混合使用:1-3,7
-c 按字符切割 --output-delimiter=STRING指定输出分隔符
显示文件或STDIN数据的指定列
例:#cut -d: -f1 /etc/passwd
例:#cat /etc/passwd | cut -d: -f7
例:#cut -c2-5 /usr/share/dict/words
例:#who |cut -c1-9 取出1-9字节
例:#cut -d: -f1,2,7 /etc/passwd
例:#df |cut -c44-46
例:#df |tr -s” “ |cut -d” “ -f5 |tr -d %
例:#cut -d: -f1,3 --output -delimiter="-" /etc/passwd
例:#cut -d: -f1,3 /etc/passwd|sort -t: -k2 -nr 取出userUID大到小
split 分割文件为不同的小片段
-b 指定大小
-d 指定目录
paste 按行合并文件内容
paste [OPTION]… [FILE]…
-d 分隔符:指定分隔符,默认用TAB
-s : 所有行合成一行显示
paste f1 f2
paste -s f1 f2
sort 按文件内容排序
sort [options] file(s)
常用选项
-R 随机排序
-r 执行反方向(由上至下)整理
-n 执行按数字大小整理
-f 选项忽略(fold)字符串中的字符大小写
-u 选项(独特,unique)删除输出中的重复行
-t c 选项使用c做为字段界定符
-k X 选项按照使用c字符分隔的X列来整理能够使用多次
uniq 从输入中删除前后相接的重复的行
uniq [OPTION]… [FILE]…
-c: 显示每行重复出现的次数
-d: 仅显示重复过的行
-u: 仅显示不曾重复的行
连续且完全相同方为重复
wc 统计文件的行数 单词数或字节数
wc story.txt
39 237 1901 story.txt
行数 字数 字节数
常用选项 -l 只计数行数
-w 只计数单词总数
-c 只计数字节总数
-m 只计数字符总数
-L 显示文件中最长行的长度
iconv 转换文件的编码格式
dos2unix 将DOS格式转换UNIX格式
#diff 命令行可视文件比较工具常用文本
-u 额外信息
-b备份
例:#diff filename1.txt filename2.txt
5c5
< use_widgets = no
use_widgets = yes
注明第5行有区别(改变)
vimdiff 命令行可视化比较工具 用于文本
#rev 反向输出内容
grep 文本编辑器grep sed awk
alias grep=’grep --color=auto’ 定义颜色
例:#grep root /etc/passwd
例:#grep “$user” /etc/passwd
-v: 显示不被pattern匹配到的行
-i: 忽略字符大小写
-n:显示匹配的行号
-c: 统计匹配的行数
-o: 仅显示匹配到的字符串
-q: 静默模式,不输出任何信息
-A #: after, 后#行
-B #: before, 前#行
-C #:context, 前后各#行
-e:实现多个选项间的逻辑or关系
例:#grep –e ‘cat ’ -e ‘dog’ file
例:# grep -e root -e bash /etc/passwd
| 并关系
例:#grep root /etc/passwd| grep bash
-w:匹配整个单词
-E:使用ERE
-F:相当于fgrep,不支持正则表达式
字符匹配:
. 匹配任意单个字符
[] 匹配指定范围内的任意单个字符
[^] 匹配指定范围外的任意单个字符
[:alnum:] 字母和数字
[:alpha:] 代表任何英文大小写字符,亦即 A-Z, a-z
[:lower:] 小写字母
[:upper:] 大写字母
[:blank:] 空白字符(空格和制表符)
[:space:] 水平和垂直的空白字符(比[:blank:]包含的范围广)
[:cntrl:] 不可打印的控制字符(退格、删除、警铃…)
[:digit:] 十进制数字
[:xdigit:]十六进制数字
[:graph:] 可打印的非空白字符
[:print:] 可打印字符
[:punct:] 标点符号
匹配次数:
用在要指定次数的字符后面,用于指定前面的字 符要出现的次数
- 匹配前面的字符任意次,包括0次 贪婪模式:尽可能长的匹配
.* 任意长度的任意字符
? 匹配其前面的字符0或1次
+ 匹配其前面的字符至少1次
{n} 匹配前面的字符n次
{m,n} 匹配前面的字符至少m次,至多n次
{,n} 匹配前面的字符至多n次
{n,} 匹配前面的字符至少n次
位置锚定:定位出现的位置
^ 行首锚定,用于模式的最左侧
$ 行尾锚定,用于模式的最右侧
^PATTERN$ 用于模式匹配整行
^$ 空行
1$ 空白行
< 或 \b 词首锚定,用于单词模式的左侧
> 或 \b 词尾锚定;用于单词模式的右侧
<PATTERN> 匹配整个单词
分组:
() 将一个或多个字符捆绑在一起,当作一个整体进 行处理,如:(root)+
分组括号中的模式匹配到的内容会被正则表达式引擎记录于 内部的变量中,这些变量的命名方式为: \1, \2, \3, …
\1 表示从左侧起第一个左括号以及与之匹配右括号之间的 模式所匹配到的字符
示例: (string1+(string2))
\1 :string1+(string2)*
\2 :string2
后向引用:引用前面的分组括号中的模式所匹配字符,而非 模式本身
或者:| 示例:a|b: a或b C|cat: C或cat (C|c)at:Cat或cat
#egrep 扩展正则表达式
egrep = grep -E
egrep [OPTIONS] PATTERN [FILE…]
扩展正则表达式的元字符:
字符匹配:
. 任意单个字符
[] 指定范围的字符
[^] 不在指定范围的字符
次数匹配: - 匹配前面字符任意次
?: 0或1次 +:1次或多次
{m}:匹配m次
{m,n}:至少m,至多n次
位置锚定:
^ :行首
$ :行尾
<, \b :语首
>, \b :语尾
分组:
( )
后向引用:\1, \2, …
或者: a|b: a或b
C|cat: C或cat
(C|c)at:Cat或cat
#sed 文本编辑器
sed [option]… ‘script’ inputfile…
常用选项:
-n:不输出模式空间内容到屏幕,即不自动打印
-e: 多点编辑
-f:/PATH/SCRIPT_FILE: 从指定文件中读取编辑脚本
-r: 支持使用扩展正则表达式
-i.bak: 备份文件并原处编辑
script: ‘地址命令’
地址定界:
(1)不给地址:对全文进行处理
(2)单地址:
#: 指定的行,$:最后一行
/pattern/:被此处模式所能够匹配到的每一行
(3)地址范围: #,# #,+# /pat1/,/pat2/ #,/pat1/
(4) ~:步进 1~2 奇数行 2~2 偶数行
编辑命令:
d: 删除模式空间匹配的行,并立即启用下一轮循环
p:打印当前模式空间内容,追加到默认输出之后
a []text:在指定行后面追加文本 支持使用\n实现多行追加
i []text:在行前面插入文本
c []text:替换行为单行或多行文本
w /path/somefile: 保存模式匹配的行至指定文件
r /path/somefile:读取指定文件的文本至模式空间中
匹配到的行后
=: 为模式空间中的行打印行号
!:模式空间中匹配行取反处理
s///:查找替换,支持使用其它分隔符,s@@@,s###
例: #sed ‘s/bash/jiangxiaoxiao/’ /etc/passwd 将/bash替换/jiangxiaoxiao
#sed ‘s/root/jiangxiaoxiao/g’ /etc/passwd 全局替换
正则#sed -r ‘s/(bash)/\1love/g’ /etc/passwd 在bash后面追加love
#sed -r “s/(root)/jiangxiaoxiao\1/g” /etc/passwd 全局root前面追加
#sed -r ‘s/(.*)/\1 jiangxiaoxiao/’ /etc/passwd 全局在尾部加上
sed -r ‘s/(.*)/jiangxiaoxiao\1/’ /etc/passwd全局在首部加上
#ifconfig |sed -r “s@.inet(.)net.*@\1@”|head -n2|tail -n1
seq 1 10 |sed ‘N;s/\n//’
#seq 1 10 |xargs -n2
替换标记:
g: 行内全局替换
p: 显示替换成功的行
w /PATH/TO/SOMEFILE:将替换成功的行保存至文件中
示例
#sed ‘2p’ /etc/passwd
#sed –n ‘2p’ /etc/passwd
#sed –n ‘1,4p’ /etc/passwd
#sed –n ‘/root/p’ /etc/passwd
#sed –n ‘2,/root/p’ /etc/passwd 从2行开始
#sed -n ‘/^KaTeX parse error: Unexpected character: '' at position 18: …’ file 显示空行行号 ̲ #sed –n –e ‘/^/p’ –e ‘/^KaTeX parse error: Unexpected character: '' at position 11: /=’ file ̲ #sed ‘/root/…/d’ file
#sed ‘1,10d’ file
#nl /etc/passwd | sed ‘2,5d’
#nl /etc/passwd | sed ‘2a tea’
#sed ‘s/test/mytest/g’ example
#sed –n ‘s/root/&superman/p’ /etc/passwd 单词后
#sed –n ‘s/root/superman&/p’ /etc/passwd 单词前
#sed -e ‘s/dog/cat/’ -e ‘s/hi/lo/’ pets
#sed –i.bak ‘s/dog/cat/g’ pets
#ifconfig ens33 |sed -n ‘2p’ 取IP这行
高级编辑命令
P:打印模式空间开端至\n内容,并追加到默认输出之前
h: 把模式空间中的内容覆盖至保持空间中
H:把模式空间中的内容追加至保持空间中
g: 从保持空间取出数据覆盖至模式空间
G:从保持空间取出内容追加至模式空间
x: 把模式空间中的内容与保持空间中的内容进行互换
n: 读取匹配到的行的下一行覆盖至模式空间
N:读取匹配到的行的下一行追加至模式空间
d: 删除模式空间中的行
D:如果模式空间包含换行符,则删除直到第一个换行符的模 式空间中的文本,并不会读取新的输入行,而使用合成的模式 空间重新启动循环。如果模式空间不包含换行符,则会像发出 d命令那样启动正常的新循环
示例
sed -n ‘n;p’ FILE
sed ‘1!G;h;KaTeX parse error: Unexpected character: '' at position 10: !d' FILE ̲ sed 'N;D‘ FIL…!N;KaTeX parse error: Unexpected character: '' at position 10: !D' FILE ̲ sed '!d’ FILE
sed ‘G’ FILE
sed ‘g’ FILE
sed ‘/^KaTeX parse error: Unexpected character: '' at position 12: /d;G’ FILE ̲ sed 'n;d' FILE…p’ FILE
join 按两个文件的相同字字段合并
tr 替换或删除字符
-c –C --complement:取字符集的补集
-d --delete:删除所有属于第一字符集的字符
-s --squeeze-repeats:把连续重复的字符以单独一个字符表示
-t --truncate-set1:将第一个字符集对应字符转化为第二字符集
vi/vim 命令编辑
-o 水平分割
-O 垂直
Ctrl +w切换
显示行号 :set nu 取消 :set nonu
自动缩进 :set ai 取消 :set noai
语法亮度 syntax on off
看不见的符号 :set list
四、解压压缩命令
#tar 打包压缩
-c创建
-f文件名
-v过程
-p保有原有属性
-x解压缩
-j 压缩bzip2 .bz2
-J 压缩.xz
-T 过滤
-z 压缩x
-C指定目录
#tar -zcvf filname.tar.gz file 压缩gzip
#tar -jcvf filename.tar.bz2 file 压缩bzip2
#tar -Jcvf filename.tar.xz file 压缩xz
例:#tar -xjf httpd-2.4.38.tar.bz2 -C /data/ 解压指定在/data
#tar -xjf filename.tar.bz2 解压 bzip2
#tar -xJf filename.tar.xz 解压 xz
#tar -xzf filename.tar.gz 解压gzip
#tar -xvf filename.tar.gz
#unzip 解压文件
#gzip 压缩工具
gzip [OPTION]… FILE …
-d: 解压缩,相当于gunzip
-c: 将压缩或解压缩的结果输出至标准输出
-#:1-9,指定压缩比,值越大压缩比越大
zcat:不显式解压缩的前提下查看文本文件内容
#zip 压缩工具
打包压缩
#zip –r /testdir/sysconfig /etc/sysconfig/
解包解压缩 #unzip sysconfig.zip
#cat /var/log/messages | zip messages - unzip -p message > message
#zip2 压缩工具
bzip2 [OPTION]… FILE …
-k: keep, 保留原文件
-d:解压缩
-#:1-9,压缩比,默认为9
bzcat:不显式解压缩的前提下查看文本文件内容
例:bzcat flie.bz2 直接查看文件
#xz 压缩工具
xz [OPTION]… FILE …
-k: keep, 保留原文件
-d:解压缩
-#:1-9,压缩比,默认为6
xzcat: 不显式解压缩的前提下查看文本文件内容
例:xzcat file.xz 直接查看内容
五、显示命令
#uname 显示操作系统
hostname 显示当前系统主机名
dmesg 显示开机信息 诊断故障
uptime 显示系统运行时间 负载
stat 显示文件 系统状态
三个时间戳:
access time:访问时间,atime,读取文件内容
modify time: 修改时间, mtime,改变文件内容(数据)
change time: 改变时间, ctime,元数据发生改变
du 计算磁盘空间大小
df 查看文件系统磁盘使用
例:#df |tr -s " " % |cut -d% -f 5 |sort -nr |head -n1 取disk利率最大的一个
例:#df -m |grep “^/dev/sd”|grep -o “[0-9]+”|sort -nr|head -n1 取disk内存最大的一个
top 实时显示系统资源
#free 系统内存
date 系统时间
cal 日历时间
#cal -y 整年显示 #cal 2019
六、搜索文件命令
#which 查找二进制环境变量PATH路径查找
#cpio 复制文件从或到归档
cpio命令是通过重定向的方式将文件进行打包备份,还原恢复 的工具,它可以解压以“.cpio”或者“.tar”结尾的文件
cpio [选项] > 文件名或者设备名
cpio [选项] < 文件名或者设备名
选项
-o 将文件拷贝打包成文件或者将文件输出到设备上
-i 解包,将打包文件解压或将设备上的备份还原到系统
-t 预览,查看文件内容或者输出到设备上的文件内容
-v 显示打包过程中的文件名称。
-d 解包生成目录,在cpio还原时,自动的建立目录
-c 一种较新的存储方式
示例
将etc目录备份: find ./etc -print |cpio -ov >etc.cpio
内容预览 cpio –tv < etc.cpio
解包文件 cpio –idv < etc.cpio
find 磁盘中查找文件或目录
根据文件类型查找:
-type TYPE:
• f: 普通文件
• d: 目录文件
• l: 符号链接文件
• s:套接字文件
• b: 块设备文件
• c: 字符设备文件
• p: 管道文件
组合条件:
与:-a
或:-o
非:-not, !
德·摩根定律: (非 A) 或 (非 B) = 非(A 且 B)
(非 A) 且 (非 B) = 非(A 或 B)
示例: !A -a !B = !(A -o B)
!A -o !B = !(A -a B)
find示例
find -name snow.png
find -iname snow.png
find / -name “.txt”
find /var –name “log”
find -user joe -group joe
find -user joe -not -group joe
find -user joe -o -user jane
find -not ( -user joe -o -user jane )
find / -user joe -o -uid 500
找出/tmp目录下,属主不是root,且文件名不以f开头的文件
find /tmp ( -not -user root -a -not -name 'f’ ) -ls
find /tmp -not ( -user root -o -name ‘f*’ ) –ls
排除目录
例: 查找/etc/下,除/etc/sane.d目录的其它所有.conf后缀的文件
#find /etc -path ‘/etc/sane.d’ -a -prune -o -name “.conf”
例:查找/etc/下,除/etc/sane.d和/etc/fonts两个目录的其它所 有.conf后缀的文件
#find /etc (–path ‘/etc/sane.d’ –o –path ’/etc/fonts’ ) -a -prune –o -name “.conf”
例:#find /etc -maxdepth 2 -name passwd
例:#find /etc/ -maxdepth 3 -mindepth 2 -name passwd
例:#find / -size +100M 查找100M的根文件
find查找条件
根据文件大小来查找:
-size [+|-]#UNIT
常用单位:k, M, G,c(byte)
#UNIT: (#-1, #]
如:6k 表示(5k,6k]
-#UNIT:[0,#-1]
如:-6k 表示[0,5k]
+#UNIT:(#,∞)
如:+6k 表示(6k,∞)
whereis 查找二进制环境变量PATH路径查找
locate 从数据库(/var/lib/mlocate/mlocate.db)查找 使用updatedb 更新库
有用的选项 s
-i 不区分大小写的搜索
-n N 只列举前N个匹配项目
-r 使用正则表达式
示例:
搜索名称或路径中带有“conf”的文件
#locate conf
使用Regex来搜索以“.conf”结尾的文件
例:#locate -r ‘.confKaTeX parse error: Expected 'EOF', got '#' at position 5: ’ 例:#̲locate -r “^/e…” 以head以tail
七、用户管理命令
/etc/passwd 用户UID ID
/etc/shadow user 和passsword及相关属性
/etc/gshadow 组password及相关属性
/etc/group 组的相关属性
/etc/shells 查看shell内型
例:修改shell内型 #chsh -s /bin/nologin
修改加密算法:md5 sha1 sha256 sha384 sha512 要切换到当前用户:
/etc/login.defs y用户权限
/etc/default/useradd 查看组的信息
例:#authconfig --passalgo=sha256 --update
#getent passswd 查看用户信息
useradd 添加用户
-u 指定UID
-o 配合-u 选项,不检查UID的唯一性
-g GID:指明用户所属基本组,可为组名,
-c “COMMENT”:用户的注释信息
-d HOME_DIR: 以指定的路径(不存在)为家目录
-s SHELL: 指明用户的默认shell程序 可用列表在/etc/shells文件中 -G GROUP1[,GROUP2,…]:为用户指明附加组,
-N 不创建私用组做主组,使用users组做主组
-r: 自动创建系统用户 CentOS 6: ID<500,CentOS 7: ID<1000 -m
-M 不创建家目录,用于非系统用户
usermod 修改系统已经存在用户属性
-u UID: 新UID
-g GID: 新主组
-G GROUP1[,GROUP2,…[,GROUPN]]]:新附加组,原来的 附加组将会被覆盖;若保留原有,则要同时使用-a选项
-s SHELL:新的默认SHELL
-c ‘COMMENT’:新的注释信息
-d HOME: 新家目录不会自动创建;若要创建新家目录并移 动原家数据,同时使用-m选项
-l login_name: 新的名字;
-L: lock指定用户,在/etc/shadow 密码栏的增加 !
-U: unlock指定用户,将 /etc/shadow 密码栏的 ! 拿掉
-e YYYY-MM-DD: 指明用户账号过期日期
-f INACTIVE: 设定非活动期限
#sudo userdel -rf “user” 强制删除
userdel 删除用户
-r 删除用户家目录
groupadd 添加用户组
-g GID: 指明GID号;[GID_MIN, GID_MAX]
-r: 创建系统组
CentOS 6: ID<500
CentOS 7: ID<1000
#groupmod 组属性修改
-n group_name: 新名字
-g GID: 新的GID
#grouopdel 组删除
groupdel GROUP
#gpasswd组密码
gpasswd [OPTION] GROUP
-a user 将user添加至指定组中
-d user 从指定组中移除用户user
-A user1,user2,… 设置有管理权限的用户列表
newgrp命令:临时切换主组 如果用户本不属于此组,则需要组密码
passwd 修改密码
-l:锁定指定用户
-u:解锁指定用户
-e:强制用户下次登录修改密码
-n mindays: 指定最短使用期限
-x maxdays:最大使用期限
-w warndays:提前多少天开始警告
-i inactivedays:非活动期限 --stdin:从标准输入接收用户密码
echo “PASSWORD” | passwd --stdin USERNAME
#chfs 修改个人信息
#chsh 修改shell内型
例:修改shell内型 #chsh -s /bin/nologin
chage 修改用户密码有效期
-d LAST_DAY
-E --expiredate EXPIRE_DATE
-I --inactive INACTIVE
-m --mindays MIN_DAYS
-M --maxdays MAX_DAYS
-W --warndays WARN_DAYS
–l 显示密码策略
示例: chage -d 0 tom 下一次登录强制重设密码
chage -m 0 –M 42 –W 14 –I 7 tom
chage -E 2016-09-10 tom
id 查看用户相关信息
-u: 显示UID
-g: 显示GID -G: 显示用户所属的组的ID
-n: 显示名称,需配合ugG使用
su 切换用户身份
visudo 编辑、etc/sudoers 文件的专属命令
八、基础网络操作命令
#telnet 使用TELNET协议远程登录
ssh 使用SSH加密协议远程登录
scp 用于不同主机之间的复制文件
例:#scp filename user@ip:目录
wget 命令行下载文件
ping 测试主机之间网络的连通
route 设置 Linux 系统的路由表
ifconfig 查看 配置 启用或禁用网络接口命令
ifup 启动网卡
ifdown 关闭网卡
netstat 网络状态
ss 网络状态
ss -ntl 查看端口状态
#nmap 网络扫描命令
lsof 列举系统打开文件
mail 发送接收邮件
例: #mail -s “hello” root
例: #mail -s “hello” <<END 内容 >END
Mail 地址: /var/spool/mail
mutt 邮箱管理命令
nslookup 交换式查看互联网DNS服务器
dig 查找DNS解析过程
host 查找DNS的命令
traceroute 追踪数据传输路由跟踪
tcpdump 抓包工具
十、磁盘文件系统命令
#mount 挂载文件系统
umount 卸载文件系统
dd 转换或复制文件
dumpe2fs 导出ext2/3/4文件系统
dump ext2/3/4文件备份工具
fdisk 磁盘分区 限制2TB以下
parted 磁盘分区没有限制
mkfs 格式化创建Linux文件系统
fsck 检查并修复Linux文件系统
partprobe 更新内核硬盘分区信息
e2fsck 检测ext2/3/4文件系统
mkswap 创建Linux 交换区
swapon 启用交换区
swapoff 关闭交换区
sync 将内存缓冲区的数据写入磁盘
resize2fs 调整ext2/3/4文件系统大小
十一、系统权限及用户授权相关命令
chmod 设置文件或目录权限
+x 执行权限exeute
+r 可读read
+w 可写write
#chmod --reference=原文件 新文件 将原有的权限指定到新的文本里
chown 设置文件的所有者
-R: 递归
#chgrp 设置文件的属组信息
-R: 递归
umask 显示或设置权限掩码
查看umask范围 /etc/bashrc
十二、系统用户登录信息命令
whoami who am i 显示当前用户名
who 显示当前系统用户名
w 显示已连接登录用户列表 用户执行指令
last 显示登入系统的用户
lastlog 显示系统中所有用户最近一次登录
users 显示当前登录所有用户列表
finger 查找显示用户信息
#tty 登录者信息
#netstat -nt 连接主机数量
十三、内置密令
#echo 变量 指定输出字符
选项:
-E (默认)不支持 \ 解释功能
-n 不自动换行
-e 启用 \ 字符的解释功能
\a 发出警告声
\b 退格键
\c 最后不加上换行符号
\n 换行且光标移至行首
\r 回车,即光标移至行首,但不换行
\t 插入tab \ 插入\字符
\0nnn 插入nnn(八进制)所代表的ASCII字符
例:生成随机数字 #echo $RANDOM # echo $[RANDOM%100+1]
1.echo 具有给输出的字符加颜色的功能,格式如下:
格式: echo -e “\033[字背景颜色;字体颜色;ANSI控制码m字符串\033[0m”
-e选项是让echo能够识别转义字符,否则不能显示颜色,先上个格式相关的例子
例1:
echo -e “\033[41;36m something here \033[0m”
或者:echo -e “\033[36;41m something here \033[0m”
其中41的位置代表底色为红色, 36的位置是代表字的颜色为深绿色(在底色为红色下看不出来),41和36的位置交换也没有关系。
例2:
或者:echo -e “\033[41;36;1m something here \033[0m”
或者:echo -e “\033[36;41;1m something here \033[0m”
该格式加了“1m”参数,表示“设置高亮度”,从图中可以看出亮度不同,例1和例2格式的结尾都有“0m”,表示“关闭所有属性”,
如果不设置0m,那么接下来的输出都会延续上个输出属性。
字颜色:30—–37
echo -e “\033[30m 黑色字 \033[0m”
echo -e “\033[31m 红色字 \033[0m”
echo -e “\033[32m 绿色字 \033[0m”
echo -e “\033[33m 黄色字 \033[0m”
echo -e “\033[34m 蓝色字 \033[0m”
echo -e “\033[35m 紫色字 \033[0m”
echo -e “\033[36m 天蓝字 \033[0m”
echo -e “\033[37m 白色字 \033[0m”
字背景颜色范围:40—–47
echo -e “\033[40;37m 黑底白字 \033[0m”
echo -e “\033[41;37m 红底白字 \033[0m”
echo -e “\033[42;37m 绿底白字 \033[0m”
echo -e “\033[43;37m 黄底白字 \033[0m”
echo -e “\033[44;37m 蓝底白字 \033[0m”
echo -e “\033[45;37m 紫底白字 \033[0m”
echo -e “\033[46;37m 天蓝底白字 \033[0m”
echo -e “\033[47;30m 白底黑字 \033[0m”
\033[1m 设置高亮度
\033[4m 下划线
\033[5m 闪烁
\033[7m 反显
\033[8m 消隐
\033[30m – \33[37m 设置前景色
\033[40m – \33[47m 设置背景色
\033[nA 光标上移n行
\033[nB 光标下移n行
\033[nC 光标右移n行
\033[nD 光标左移n行
\033[y;xH设置光标位置
\033[2J 清屏
\033[K 清除从光标到行尾的内容
\033[s 保存光标位置
\033[u 恢复光标位置
\033[?25l 隐藏光标
\033[?25h 显示光标
例子:
#!/bin/bash
#定义颜色的变量
RED_COLOR=’\E[1;31m’ #红
GREEN_COLOR=’\E[1;32m’ #绿
YELOW_COLOR=’\E[1;33m’ #黄
BLUE_COLOR=’\E[1;34m’ #蓝
PINK=’\E[1;35m’ #粉红
RES=’\E[0m’
#需要使用echo -e
echo -e “
R
E
D
C
O
L
O
R
=
=
=
=
=
=
r
e
d
c
o
l
o
r
=
=
=
=
=
=
{RED_COLOR}======red color======
REDCOLOR======redcolor======{RES}”
echo -e “
Y
E
L
O
W
C
O
L
O
R
=
=
=
=
=
=
y
e
l
o
w
c
o
l
o
r
=
=
=
=
=
=
{YELOW_COLOR}======yelow color======
YELOWCOLOR======yelowcolor======{RES}”
echo -e “
B
L
U
E
C
O
L
O
R
=
=
=
=
=
=
g
r
e
e
n
c
o
l
o
r
=
=
=
=
=
=
{BLUE_COLOR}======green color======
BLUECOLOR======greencolor======{RES}”
echo -e “
G
R
E
E
N
C
O
L
O
R
=
=
=
=
=
=
g
r
e
e
n
c
o
l
o
r
=
=
=
=
=
=
{GREEN_COLOR}======green color======
GREENCOLOR======greencolor======{RES}”
echo -e “
P
I
N
K
=
=
=
=
=
=
p
i
n
k
c
o
l
o
r
=
=
=
=
=
=
{PINK}======pink color======
PINK======pinkcolor======{RES}”
echo “#######################################”
#直接把echo -e放到变量里面,使用的时候直接输出变量即可
SETCOLOR_SUCCESS=“echo -en \033[1;32m”
SETCOLOR_FAILURE=“echo -en \033[1;31m”
SETCOLOR_WARNING=“echo -en \033[1;33m”
SETCOLOR_NORMAL=“echo -en \033[0;39m”
echo ----oldboy trainning----- && $SETCOLOR_SUCCESS
echo ----oldboy trainning----- && $SETCOLOR_FAILURE
echo ----oldboy trainning----- && $SETCOLOR_WARNING
echo ----oldboy trainning----- && $SETCOLOR_NORMAL
printf 将结果格式化输出标准输出
rpm 管理RPM包
-i
-v具体显示过程
-h 安装进度
-e 卸载
-q 查看
-U F 升级
-l 内容
yum 自动化简单化管理yum
Yum配置文件/etc/yum.conf.d vim bash.repo
/var/log/yum.log日志文件
yum repolist all 列出所有仓库启动或者禁用
yum list 查看
yum remove 卸载
yum install 安装
yum update 升级
yum relist 程序名 重新安装
rpm -ql autofs 查看
du -sh 查看缓存
$releasever 版本
$arch CPU
$basearch 基础
Y
U
M
0
−
YUM0-
YUM0−YUM9 自定义
CentOS镜像:
https://www.centos.org/download/
http://mirrors.aliyun.com
http://mirrors.sohu.com
http://mirrors.163.com
watch 周期形执行给定命令 并输出全屏方式显示
alias 设置系统别名
存放路径: .bashrc
unalias 取消系统别名
date 查看设置系统时间
#date 月号时分年.秒 110815452019.55
clock -s 硬件时钟同步
clock -w 系统时钟同步
显示#date +%Y-%m-%d-%H-%M-%S 年月日时分钟
#date +%s 开发到现在时间 #date -d @秒 转换时间
clear 清屏
history 查看命令执行记录
-c: 清空命令历史
-d offset: 删除历史中指定的第offset个命令 n: 显示最近的n条历史
-a: 追加本次会话新执行的命令历史列表至历史文件
-r: 读历史文件附加到历史列表
-w: 保存历史列表到指定的历史文件
-n: 读历史文件中未读过的行到历史列表
-p: 展开历史参数成多行,但不存在历史列表中
-s: 展开历史参数成一行,附加在历史列表后
eject 弹出光驱
time 计算机时间
nc 功能强大网络工具
xargs 将标准输入转换成命令参数
例:#echo f{1…520 } |xargs -n100 touch
例:#echo f{1…520 } |xargs -n100 rm -rf
exec 调用并执行命令
export 设置显示环境变量
unset 删除变量或函数
type 判断是内/外命令
内部cmd路径/bin/bash
外部cmd路径/bin/sbin /usr/bin /usr/sbin
#help 查看*禁用内部命令
enable -n cmd 禁用
enable cmd 启用
bc 计算器
十四、系统监控与性能监视命令
#chkconfig 管理linux系统开机启动项
vmstat 虚拟内存统计
mpstat 显示各个可用CPU状态统计
sar 全面获取系统信息
ipcs 用于报告Linux进程 共享内存
strace 用于诊断 调试用户跟踪空间 进程 内核交互
#ipcrm 用来删除一个更多消息列表 共享内存标识
ltrace 命令会跟踪库函数调用 显示被按个调用
十五、关机 重启 注销
shuntdown 关机
-r 重启
-h 关机
-c 取消
halt 关机
poweroff 关闭电源
logout 退出当前登录的shell
exit 退出当前登录的shell
Ctrl+d 退出当前登录shell 的快捷键
reboot 重启
-f 强制 -p 切断
十六、进程管理相关命令
bg 将一个在后台暂停的命令 ,变成继续执行(在后台执行)
fg 将后台中的命令调到前台运行
jobs 查看当前有多少在后台运行的命令
kill 终止命令
killall;pkill 通过进程名终止进程
#crontab 定时任务命令
ps 显示进程的快照
pstree 树形显示进程
-p 查看进程
nice/renice 调整程序运行优先级
nohup 忽略程序运行优先级
pgrep 查找匹配条件的进程
runlevel 查看系统当前运行级别
init 切换运行级别
service 启动 停止重新启动和关闭系统服务 还可以显示所有系统服务当前
Bash的配置文件
全局配置:
/etc/profile
/etc/profile.d/*.sh
/etc/bashrc
个人配置:
~/.bash_profile
~/.bashrc
bash
脚本调试
检测脚本中的语法错误 bash -n /path/to/some_script
调试执行 bash -x /path/to/some_script
算术运算
bash中的算术运算:help let
+, -, *, /, %取模(取余), **(乘方)
实现算术运算:
(1)let var=算术表达式
(2)var=
[
算
术
表
达
式
]
(
3
)
v
a
r
=
[算术表达式] (3)var=
[算术表达式](3)var=((算术表达式))
(4)var=KaTeX parse error: Unexpected character: '' at position 76: … ‘算术表达式’ | bc ̲ 乘法符号有些场景中需要转义,…RANDOM(0-32767)
例:#echo
[
[
[RANDOM%50] :0-49之间随机数
例: #x=5 #y=5 #let z=x+y #let z=(
x
+
x+
x+y) #echo $z
例:#let x++ xn+1 echo KaTeX parse error: Expected 'EOF', got '#' at position 5: x 例:#̲x=5 #y=5 sum=[x+y] #echo KaTeX parse error: Expected 'EOF', got '#' at position 10: sum 求和 例:#̲let result=100%…[100%3] #echo KaTeX parse error: Expected 'EOF', got '#' at position 13: result 取余 例:#̲expr 3 \* 2 乘 #…[RANDOM%7+31] #echo KaTeX parse error: Expected 'EOF', got '#' at position 7: COLOR #̲COLOR=[RANDOM%7+31];echo -e “\e[1;${COLOR}m color \e[0m”
赋值
增强型赋值: +=, -=, *=, /=, %=
let varOPERvalue
例如:let count+=3
自加3后自赋值
自增,自减:
let var+=1
let var++
let var-=1
let var–
逻辑运算
&&与 cmd1 && cmd2 cmd1false cmd2不执行,cmd1 true cmd2执行
||或 cmd1 || cmd2 cmd1 ture cmd2不执行,cmd1 false cmd2执行
true, false 1, 0
与:
1 与 1 = 1 true
1 与 0 = 0 false
0 与 1 = 0 false
0 与 0 = 0 false
或:
1 或 1 = 1 true
1 或 0 = 1 true
0 或 1 = 1 true
0 或 0 = 0 true
非:! ! 1 = 0 ! 0 = 1
例:#a=2 #b=4 #let c=a^b #echo $c
数值测试
-v VAR
变量VAR是否设置
数值测试:
-gt 是否大于
-ge 是否大于等于
-eq 是否等于
-ne 是否不等于
-lt 是否小于
-le 是否小于等于
字符串测试:
== 是否等于
ascii码是否大于ascii码
< 是否小于
!= 是否不等于
=~ 左侧字符串是否能够被右侧的PATTERN所匹配
注意: 此表达式一般用于[[ ]]中;扩展的正则表达式
-z "STRING“ 字符串是否为空,空为真,不空为假
-n "STRING“ 字符串是否不空,不空为真,空为假
注意:用于字符串比较时的用到的操作数都应该使用引号
文件判断
#test [expr] 判断
例:#str1=aaaa #str2=bbbb #test $str1 = $str2 比较
[ -n “acs” ] 非空
[ “acbs” ] 空
例:#str1=aaa;str2=bbbb;[ $str1 = $str2 ]&& echo ture || echo false
例:#str1=12;str2=13;[ $str1 -eq $str2 ] && echo ture || echo false
例:#str1=12;str2=13;[ $str1 -lt $str2 ] && echo ture || echo false
例;#m=20 判断超过20就提示
#m=11;[ KaTeX parse error: Expected 'EOF', got '&' at position 12: m -ge 20 ] &̲& echo "this is…HOSTNAME” -o $HOSTNAME "==\ “localhost.localdomain” ] && hostname jiangxiaoxiao.com
[ -f /bin/cat -a -x /bin/cat ] && cat /etc/fstab
Read命令来接受输入
使用read来把输入值分配给一个或多个shell变量
-p 指定要显示的提示
-s 静默输入,一般用于密码
-n N 指定输入的字符长度N
-d ‘字符’ 输入结束符
-t N TIMEOUT为N秒
read 从标准输入中读取值,给每个单词分配一个变量 所有剩余单词都被分配给最后一个变量
read -p “Enter a filename: “ FILE
Bash快捷键
Ctrl + l 清屏,相当于clear命令
Ctrl + o 执行当前命令,并重新显示本命令
Ctrl + s 阻止屏幕输出,锁定
Ctrl + q 允许屏幕输出
Ctrl + c 终止命令
Ctrl + z 挂起命令
Ctrl + a 光标移到命令行首,相当于Home
Ctrl + e 光标移到命令行尾,相当于End
Ctrl + f 光标向右移动一个字符
Ctrl + b 光标向左移动一个字符
Alt + f 光标向右移动一个单词尾
Alt + b 光标向左移动一个单词首
Ctrl + xx 光标在命令行首和光标之间移动
Ctrl + u 从光标处删除至命令行首
Ctrl + k 从光标处删除至命令行尾
Alt + r 删除当前整行
Ctrl + w 从光标处向左删除至单词首
Alt + d 从光标处向右删除至单词尾
Ctrl + d 删除光标处的一个字符
Ctrl + h 删除光标前的一个字符
Ctrl + y 将删除的字符粘贴至光标后
Alt + c 从光标处开始向右更改为首字母大写的单词
Alt + u 从光标处开始,将右边一个单词更改为大写
Alt + l 从光标处开始,将右边一个单词更改为小写
Ctrl + t 交换光标处和之前的字符位置
Alt + t 交换光标处和之前的单词位置
Alt + N 提示输入指定字符后,重复显示该字符N次 注意:
Alt组合快捷键经常和其它软件冲突
第三方应用官方文档
http://www.nginx.org
http://tomcat.apache.org
http://httpd.apache.org s
http://www.python.org
通过发行版官方的文档光盘或网站可以获得
安装指南、部署指南、虚拟化指南等
红帽知识库和官方在线文档
http://kbase.redhat.com
http://www.redhat.com/docs
http://access.redhat.com
[:space:] ↩︎