1.pwd(显示当前所在目录的全过程)
pwd :以绝对路径方式显示当前路径
2.cd 路径(改变当前路径)
cd .. :进入上一级目录
cd ~ : 回到当前账户的属主目录cd /usr/sbin :当前路径跳转到根目录下的usr目录下的sbin目录
3.ls(显示目录下的内容)
ls :查看当前目录下的文件信息
ls -l:显示完整属性信息
ls -a:显示所以文件和目录,包含隐藏文件和目录
ls -t:根据时间排序
ls -d:查看目录自身信息,不是目录中文件信息
ls -A:同上,但不显示.和..
ls -l -t -als anaconda-ks.cfg :查看该文件的信息
ls *.txt :查看当前目录下的所有.txt文件的信息
ls /usr :查看根目录下usr目录下的所有文件信息
ls -d /usr :查看根目录下的usr目录自身的信息
ls -alt / /root/a.txt :以长列表格式显示根目录下的所有文件和根目录下的root目录下的a.txt文件的信息,包括了隐藏文件的信息,按修改事件倒序排列
4.mkdir(创建目录)
mkdir bbb /bbb :在当前目录下和根目录下分别创建一个bbb目录
mkdir -p ./ccc/ddd :创建当前目录下的ccc目录下的ddd目录,如果父目录不存在则连父目录一同创建
mkdir -p:用于创建多级目录,当创建的目录的父目录不存在时,同时建立父目录
5.rmdir(删除目录)
- rmdir -p:用于删除整个路径链上所有目录
- rmdir /aa ./bb :删除根目录下的aa空目录和当前目录下的bb空目录,如果目录非空,或者不是目录而是普通文件,则报错
- rmdir -p /aa/bb :删除根目录下的aa目录下的bb空目录,如果删除bb后aa也成为空目录,则aa也删除。删除到不再是空目录的父目录则报错停止。
6.cat(查看文件内容命令)
cat 文件名
cat -n:连行号一起显示在屏幕上
cat -b:同上,但空行不显示cat a.txt :查看当前目录下的a.txt文件中的内容
cat -n a.txt /aa/b.txt:查看当前目录下的a.txt文件和根目录下的aa目录下的b.txt文件中的内容,带行号显示(行号连续,不区分2个文件)
cat -b a.txt /aa/b.txt:查看当前目录下的a.txt文件和根目录下的aa目录下的b.txt文件中的内容,非空行带行号显示(行号连续,不区分2个文件),空行无行号
7.cp(copy拷贝,复制文件)
- cp [选项] 源 目录/文件名
- cp -r :递归处理,将指定目录下的文件与子目录一并处理
- cp -f :强制复制,不提醒
- cp -u:如果源计划比较新,或者没有目标文件,才进行复制,用于备份
- cp user.txt connect.log :拷贝当前目录下的user.txt文件,粘贴到当前目录下重命名为connect.log文件
- cp /user.txt :拷贝当前目录下的user.txt文件,粘贴到当前目录下
- cp *.txt /abc :拷贝当前目录下所有的.txt文件,粘贴到根目录下的abc目录中
- cp -r /abc/ /aaa :如果根目录下有aaa目录,则拷贝根目录下的abc目录到根目录下的aaa目录中;如果根目录下没有aaa目录,则拷贝根目录下的abc目录到根目录下另存为aaa目录
- /usr/bin/cp -f *.txt .. :拷贝当前目录下的所有.txt文件,拷贝到上级目录中,强制覆盖不提醒。
- cp *.txt /abc -v :-v选项解释拷贝了哪些文件
8.mv(移动文件或目录)
- mv -f:粘贴时强制覆盖
- mv /user.txt /user.log :对根目录下的user.txt文件重命名为user.log文件
- mv *.txt /abc :移动当前目录下的所有*.txt文件到根目录下的abc目录中
- mv -f *.txt .. :移动当前目录下的所有*.txt文件到上级目录中,强制覆盖不提醒
- mv *.txt /abc -v :移动当前目录下的所有*.txt文件到根目录下的abc目录中,描述移动了哪些文件
9.vi(文件编辑工具)
一般模式 按i或R进入 编辑模式
编辑模式 按Esc进入 一般模式
一般模式 按:进入 命令行模式
- vi a.txt :编辑当前目录下的a.txt文件,如果a.txt文件存在则编辑,如果不存在,则保存退出时创建该文件
执行后,进入该文件编辑的一般模式。一般模式中可以显示文件内容、修改文件,但不能输入新的文字,按i或a可以从一般模式转入编辑模式。在编辑模式中专门进行输入文字。从编辑模式按esc键退回一般模式,然后按:冒号转入命令行模式。在命令行模式中输入
:w,表示保存不退出编辑
:wq,表示保存并退出
:q,当内容未修改时可以直接退出
:q!,当内容修改后强制退出不保存
w 其他文件名,表示另存为其他文件
- 一般模式下有各种快捷键操作 —— 移动光标系列:$表示移动光标到行尾,0表示移动到行首,G表示移动到文件末尾,H表示移动到屏幕第一行,数字n回车表示向下移n行,数字n空格表示光标在本行向后移动n字符,……
删除:x表示向前删除当前光标所在字符,dd表示删除光标所在整行,数字ndd表示删除从光标开始向下n行
复制:yy表示复制当前整行,数字nyy表示复制从光标开始向下n行,p在当前行的下一行粘贴,P在当前行的上一行粘贴
替换::起点行,终点行/s/原字符/替换字符/g,表示从第起点行到第终点行之间将所有原字符替换为替换字符,:%s/原字符/替换字符/g表示全文替换
查询:/搜索关键字,表示从光标行向下搜索,?搜索关键字,表示从光标行向上搜索
10.touch 创建文件
touch a.txt /root/Desktop :触摸当前目录下的a.txt文件和根目录下的root目录下的Desktop目录,如果不存在则创建,如果存在则修改访问时间和修改时间。
11.more(分页查看)
- more +2 从第2行开始显示
- more -2 指定每页显示2行
more a.txt :分页显示当前目录下的a.txt文件内容。和cat相比,cat必须全部显示文件内容后才停止,more可以一页一页的显示,按f键向下翻一页,按q键退出查看。
more -15 a.txt:分页显示当前目录下的a.txt文件内容,每页显示15行
more +15 a.txt:分页显示当前目录下的a.txt文件内容,从第15行开始显示,前14行不显示
12.less(分页查看 可以上翻)
- less -N 显示每行的行号
- more的用法less都能使用,增加最主要的就是可以自由的向前向后移动
13.(|)管道命令
- 第一个命令 | 第二个命令 | 第N个命令
- 管道符,用于连接2个命令 —— 命令1 | 命令2 ,作用是将前一个命令的标准输出连接到后一个命令的标准输入上,使得后一个命令以标准输入为参数时就无需再提供文件参数。要求后一个命令必须支持以标准输入为参数。前一个命令执行后正常输出结果就是标准输出。
- ifconfig | grep -i 'inet 172.30' :在执行ifconfig的输出结果中搜索包含有不区分大小写的inet 172.30的行
14.head(查看文件头部内容)
- head -2 显示头部2行(默认值是10行)
head a.txt :显示当前目录下的a.txt文件的前10行内容
head -n 20 a.txt /b.txt :显示当前目录下的a.txt文件和根目录下的b.txt文件的前20行内容
15.tail(查看文件尾部内容)
- tail -2 显示尾部2行(默认值是10行)
tail a.txt :显示当前目录下的a.txt文件的最后10行内容
tail -n 20 a.txt /b.txt :显示当前目录下的a.txt文件和根目录下的b.txt文件的最后20行内容
tail -F a.log :动态刷新显示当前目录下的a.log文件的最新内容,不停止
16.find(查找文件或目录)
- find -iname 忽略大小写
- find -name 指定文件名
- 测试test
-amin 数字,表示搜索的是访问时间在什么分钟之前的文件
-atime 数字,表示搜索的是访问时间在多少天之前的文件
-name 匹配条件,表示搜索的是文件名满足匹配条件的文件
-size 数字单位,表示搜索的是文件大小为多少文件
-type 文件类型,表示搜索的是指定文件类型的文件
-readable或-writable或-executable,表示搜索的是当前用户具有读、写、执行权限的文件
-context 匹配条件,表示搜索的是文件内容中包含指定内容的文件
- 运算符operator
find -name "*.txt" -type f
find -name "*.txt" -a -type f
find -name "*.txt" -and -type f
3种写法效果相同,都表示-name "*.txt"和-type f的条件都满足时文件才被找到。
find -name "*.txt" , -type f
find -name "*.txt" -o -type f
find -name "*.txt" -or -type f
3种写法效果相同,都表示-name "*.txt"和-type f的条件任满足其一时文件就被找到。
find中-a和-o有优先级,-a优先于-o,所以如果需要-o优先计算,则必须使用(),但要注意\( \),而且左右2个括号前后都要留空格
find -name "*.txt" -a \( -size -10k -o -size +1M \),表示搜索的是当前目录下的所有文件大小要么小于10k要么大于1M的所有.txt文件
如果去掉括号,搜索的是要么是小于10k都.txt文件,要么是所有大于1M的任何文件
find / -name "D*" -a ! -type d,表示在根目录下搜索所有文件名以大写D打头的非目录的文件
17.grep查找文件内容
- grep -in 忽略大小写,且显示对应行号
- grep -A 2 找到搜索行+下面2行
- grep -B 2 找到搜索行+上面2行
- grep -C 2 找到搜索行+上下2行
- grep abc ../a.txt :从当前目录的上级目录下的a.txt中搜索包含abc文字的所有行
- grep -i abc ../a.txt :从当前目录的上级目录下的a.txt中搜索包含abc文字的所有行,不区分abc的大小写
- grep -n abc ../a.txt :从当前目录的商机目录下的a.txt中搜索包含abc文字的所有行,带行号显示
- grep -v abc ../a.txt :从当前目录的上级目录下的a.txt中搜索不包含abc文字的所有行
- grep -E ',(1[3-8][0-9]{9}|(021-?)?[3568][0-9]{7})$' user.txt :在当前目录下的user.txt文件中搜索逗号后是手机号码或者上海固话号码、且后面没有其他内容的行
正则表达式,regular expression
unix操作系统设计的一种文字编码规则,可以达到字符串模糊匹配的作用,实现非常精准的模糊匹配。一个正则表达式中可以包含以下字符:
1.普通字符。所有英文、中文和少部分符号,都是普通字符,在正则表达式中起到精确匹配的作用。所有转义字符都是普通字符,比如\.就表示小数点自身,比如\t表示缩进符、制表符,比如\n表示换行符,比如\\表示符号\。
2.模糊匹配一个其他字符的特殊字符:
2.1.小数点,可以模糊匹配一个其他任意字符
2.2.范围[],比如[abc]表示可以匹配a或b或c中一个字符。[0-9a-zA-Z]表示一个数字或英文
2.3.范围外[^],比如[^abc]表示可以匹配除abc之外的一个任意字符
3.表示关联字符重复次数的特殊字符:
3.1.如.*或[0-9]*或a*中的*星号,表示关联字符可以重复0、1或多次。
3.2.如.+或[0-9]+或a+中的+加号,表示关联字符可以重复1或多次,至少1次。
3.3.如.?或[0-9]?或a?中的?问号,表示关联字符可以重复0或1次,最多1次。
3.4.如a{3,6}中的{3,6},表示关联字符可以重复3到6次。
3.5.如a{3,}中的{3,},表示关联字符可以重复至少3次。
3.6.如a{,6}中的{,6},表示关联字符可以重复最多6次。
3.7.如[0-9]{6}中的{6},表示关联字符必须重复6次。
4.表示关联字符位置的特殊字符:
4.1.如^a中的^,表示整行文字必须a打头
4.1.如t$中的$,表示整行文字必须t结尾
5.表示分组和捕获的特殊字符。将多个字符合为一个整体,当做一个字符看待,以便于该整体被当做关联字符看待。
5.1.分组和捕获,都使用()
6.表示逻辑或,使用|,必须在()内使用,如(ab|cd)表示ab或cd
18.tar(打包文件或目录)
- tar -czvf 打包并压缩
- tar -xzvf 解压压缩包文件
- tar -cfv aa.tar lib common :将当前目录下的lib和common打成一个包aa.tar。-c表示创建包,-f表示打包的内容是文件,-v表示解释哪些文件被打包
- tar -zcfv aa.tar.gz lib common :将当前目录下的lib和common打成一个压缩包aa.tar.gz,使用的是gzip压缩方式。-z这个选项必须是第一个选项。
- tar -jcfv aa.tar.bz2 lib common :将当前目录下的lib和common打成一个压缩包aa.tar.bz2,使用的是bzip2压缩方式。-j这个选项必须是第一个选项。
- tar -xfv aa.tar :将当前目录下的aa.tar包解开
- tar -zxfv aa.tar.gz :将当前目录下的aa.tar.gz压缩包解开,使用的是gzip方式解压缩
- tar -jxfv aa.tar.bz2 :将当前目录下的aa.tar.bz2压缩包解开,使用的是bzip2方式解压缩
19.chmod(改变文件或目录的权限)
- r 可读 w 可写 x 可执行
- u 拥有者 g 所属群组 o 其他人 a 全体成员
- + 追加 - 剥夺 = 赋予
- chomd o=rwx /home/51testing/d1/
- chomd o=--- /home/51testing/d1/
- chomd o=wx /home/51testing/d1/
- chmod -R 模式,模块 文件
- 字母式模式:用户字母、运算符、权限字母
用户字母:u表示作者, g表示组用户,o表示其他用户,a表示ugo所有人
运算符:+表示增加权限,-表示去掉权限,=表示改为权限
权限字母:rwx
模式1:u+x,go-w表示作者增加执行权限,以及组用户和其他用户去掉写权限。
模式2:a=rwx表示所有人都拥有读写执行权限
模式3:go=r,表示将组用户和其他用户权限改为只读,没有写和执行权限
- 数字式模式:3位8进制数字
第一位表示作者权限,第二位表示组用户权限,第三位表示其他用户权限。
1位8进制可以转换为3位2进制,这3位2进制的第一位表示读权限有或没有,1表示有,0表示没有;第二位表示写权限有没有,第三位表示执行权限有没有。
数字式模式只能将权限改为什么,不能增加什么、或减少什么chmod 764 a.txt
chmod u+x,g+w a.txt
chmod u=rwx,g=rw a.txt将当前目录下的-rw-r--r--显示的a.txt文件权限改为作者读写执行、组用户读写权限和其他用户只读。改为rwxrw-r--,用数字式表示111110100,转8进制764;用字母增加表示作者增加执行权限,组用户增加写权限,用字母改表示作者改为读写执行,组用户改为读写。
- chmod -R 777 /abc/ :修改根目录下的abc目录的权限为所有人都拥有读写执行权限。
20.rm (删除文件)
rm a.txt :删除当前目录下的a.txt文件,删前询问是否要删除。输入y则删除,输入n则不删除
rm -f a.txt /ab/b.txt :强制删除当前目录下的a.txt和根目录下的ab目录下的b.txt文件,删除不提醒
rm -rf ab a.txt :强制删除当前目录下的ab目录和a.txt文件,删除不提醒
rm -rfv a* :强制删除当前目录下的所有以a打头的目录和文件,删除不提醒,并显示删除了哪些文件和目录
21.alias 设置别名
alias lt='ls -l -t' :建立别名lt,表示ls -l -t的命令执行方式
22.which 查询命令来源
which cd :查看cd这个命令的来源,从结果看cd是一个外部命令,路径是/usr/bin下的cd可执行程序
23.whereis 查找命令和源代码
whereis cd :查找cd命令和源代码
24.zip和unzip
- zip -r abc.zip ./abc/ :在当前目录下将当前目录下的abc目录和目录中的所有内容打成一个压缩包abc.zip。其中-r选项表示打压缩包时包含目录中的所有内容
- unzip -d ../Downloads/ abc.zip :对当前目录下的abc.zip压缩包文件进行解压缩,解压缩到上级目录下的Downloads目录中
25.chown
chown root a.txt :修改当前目录下的a.txt的作者为root用户
chown :root a.txt :修改当前目录下的a.txt的群组为root组
chown root:51testing a.txt :修改当前目录下的a.txt的作者为root用户,群组改为51testing组
chown -R root /abc/ :修改根目录下的abc目录的作者为root用户
26.ifconfig 查看所有网卡的ip地址()
ifconfig ens33 :查看所有网卡的ip地址
27.ping (查询网站连通)
ping -c 5 www.baidu.com :连续5次测试www.baidu.com这个地址能否连通
28.ps
ps -ef :列出所有进程,显示所有信息(比aux多显示父进程PPID号),包含有PID号、PPID号
ps -aux :查看所有进程,显示所有信息(比-ef多显示cpu,内存等资源使用)
ps -ef | grep http | grep -v grep :常用此方法,查看http进程
29.kill 杀死 / 停止进程
kill 1234 :终止进程编号为1234的进程
kill -9 1234 5678 :立即杀掉1234和5678进程
30.top (查看所有进程的实时动态更新的信息)
top 1234 :查看进程编号为1234进程的实时动态更新的信息
31.vmstat (查看系统资源使用情况,包括cpu,内存,io等)
32.free(查看内存使用情况)
33.df(查看各磁盘使用情况)
34.systemctl(查看所有服务)
- systemctl start 服务名 :启动指定服务
- systemctl stop 服务名 :停止指定服务
- systemctl restart 服务名 :重启指定服务
- systemctl status 服务名 -l :查看指定服务的信息,-l选项可以查看更多信息
35.rpm(管理本地rpm包)
- rpm -ivh :安装指定rpm包文件 。
- rpm -qa :显示该主机已安装的指定rpm包。注意:包名和安装包文件名不同。
- rpm -qa | grep 包名查询条件 :查找包
- rpm -e --nodeps 完整包名 :将该包软件卸载
- -i 安装指定rpm包
- -v 显示安装细节
- -h 显示安装进度
- -a 查询所有rpm包
- -q 使用询问模式
- -e 卸载已安装的rpm包
36.yum(在线联网安装)
- yum -选项命令包
- yum -y 直接安装
- yum -o 下载并重命名
- yum -p 下载到指定的目标路径
- yum install 包名 :安装该软件。必须联网
- yum remove 包名 :卸载该软件
- yum list :查看有哪些软件
37.firewall (防火墙,是Cent OS默认的)
- 其他设置:
- SELinux 增强型工作模式
- getenforce 查询Cent OS当前模式
- setenforce 更改工作模式
1)0 :换为宽容模式,临时关闭内核防火墙,不用重启
2)1 :换为强制模式