CentOS基础命令

一、 基础命令

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- YUM0YUM9 自定义

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


  1. [:space:] ↩︎

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值