以centos7为操作系统进行展示
附录:
通过man+命令可以查看某个命令的语法(帮助)
[root@ggbond 桌面]# man find # 查看find参数有哪些并且如何使用
之后按键盘的q键退出说明书;英文输入法下
ls命令解析
查看工作目录下的内容
参数使用
[root@localhost ~]# ls -a # 列出指定文件夹下的文件
ls -l # 使用长格式显示当前文件或者目录的详细属性
[root@ggbond ~]# ls -l
ls -d # 显示目录的属性并非是目录下的内容
[root@ggbond ~]# ls -ld /var/log/
-R # 列出一个目录下的所有子目录文件
[root@ggbond 桌面]# ls -R /root/桌面/ggbond
-h # 显示出带单位的文件的大小
[root@ggbond ~]# ls -lh
查看文件路径
pwd # 查看当前目录的绝对路径
[root@ggbond 桌面]# pwd
cd命令解析
改变当前工作目录,当不指定某个目录时。将被带到主目录
参数使用
cd # 进入主目录
[root@ggbond 桌面]# cd
[root@ggbond ~]# pwd # 查看当前路径
cd ~ # 进入主目录
[root@ggbond 桌面]# cd ~
[root@ggbond ~]# pwd
cd / #进入根目录
[root@ggbond 桌面]# cd /
[root@ggbond /]# pwd 查看当前位置
cd ..返回上一级目录
[root@ggbond 桌面]# cd .. #返回上一级目录
cd - # 返回前一个工作目录
[root@ggbond ~]# cd -
cat命令解析
查看文件的内容,一口气将文件内容全部列出
参数使用
cat # 查看文本内容
[root@ggbond 桌面]# cat passwd.txt
[root@ggbond 桌面]# cat passwd.txt | more # cat与more配合通过管道符也可以进行分页查看
[root@ggbond 桌面]# cat >> 77.txt # 即时输入不用进文本中就可以写入内容(Ctrl+d结束写入)
打开77.txt文本文件 ;我们看到刚才的已经写入进去了
-b # 列出行号;仅针对非空白行显示行号,空白行不标行号
[root@ggbond 桌面]# cat -b ggbond1
-n # 列出行号;同时将空白行也标上行号
[root@ggbond 桌面]# cat -n ggbond1
tac命令详解
不常用
tac与cat命令相反,从最后一行开始显示(即为倒序显示文本内容)
参数使用
[root@ggbond 桌面]# tac 77.txt 从最后一行开始反向显示文本内容
nl命令
计算文件中行号,将输出的文件内容自动的加上行号
参数使用
[root@ggbond 桌面]# nl 77.txt 通过列出行号查看文本内容
-ba #不论是否为空行都会加上行号
[root@ggbond 桌面]# nl -ba 77.txt
-bt # 空行不列出行号 (默认值)
[root@ggbond 桌面]# nl -bt 77.txt
more命令
分页查看文件内容
参数使用
空格键(Space):向下翻一页
回车键(Enter):向下翻一行
b键:往前查看一页,此命令只对文件有用,对管道无用
q键:退出
[root@ggbond 桌面]# more passwd.txt
less命令
类似于more命令,但是less命令可以随意浏览文件而且他在另一个进程中显示文本内容
参数使用
空格键:向下翻一页
Pagedown:向下翻动一页
Pageup:向上翻动一页
/:向前搜索————定位匹配的文本
n:向前查找下一个匹配的文本
N:向后查找前一个匹配的文本
?:向上搜索字符串功能————向后搜索
n:向后查找下一个匹配的文本
N:向前查找前一个匹配的文本
q:离开less这个程序
[root@ggbond 桌面]# less passwd.txt # 之后再另一个进程中显示
head命令
用于查看文件的开头部分的内容,默认显示10行内容
参数使用
[root@ggbond 桌面]# head 77.txt # 默认显示77.txt文件10行内容
-n +正数 # 前面三行
[root@ggbond 桌面]# head -n +3 77.txt
-n +负号 # 后面跟负号表示不显示后三行内容亲
[root@ggbond 桌面]# head -n -3 77.txt
tail命令
用于查看文件的结尾部分的内容,也是默认显示10行内容
参数使用
[root@ggbond 桌面]# tail 77.txt # 默认显示后10行
tail -n 后面跟数字也可以指定几行
[root@ggbond 桌面]# tail -n 3 77.txt # 显示后三行
-f # 实时查看被添加到一个文件中的内容
[root@ggbond ~]# ping -n baidu.com >> /root/桌面/baidu.txt # 在一个标签页中输入命令并且将输出的内容定向到某个文本中
-f # 实时查看被添加到一个文件中的内容
[root@ggbond 桌面]# tail -f baidu.txt # 之后再另一个标签页中用tail命令进行实时查看
grep命令
在指定文本文件中匹配字符串,输出匹配字符串所在行的全部内容
参数使用
-n # 抓取文本中的内容并且显示行号
[root@ggbond 桌面]# grep -n GGbond 77.txt # 抓取文本中GGbond字段并且显示行号
-E # 用来扩展选项为正则表达式
[root@ggbond 桌面]# grep -En "^d" 77.txt # 通过正则表达式来抓取文本中以d开头的内容
[root@ggbond 桌面]# grep -En "d$" 77.txt # 抓取以d结尾的内容
-v # 对匹配的结果进行反选
[root@ggbond 桌面]# grep -vn "^d" 77.txt #抓取除了以d开头的所有内容(即所谓的反选)
locate命令
用于查找符合条件的文件
参数使用
locate+选项+要查找的文件(选项后输入的内容都被当做文件名处理,与路径无关亲!)
-i # 忽略大小写
[root@ggbond 桌面]# locate -i aa # 查找带有aa字符的所有文件
-r # 使用基本正则表达式进行匹配
[root@ggbond 桌面]# locate -r ggbond # 匹配ggbond相关的文件
如果创建完文本之后没有查找到我们可以通过updatedb来进行更新
find命令
在指定目录下查找文件
参数使用
find 路径 选项 要查找的文件
-name # 通过文件名查找文件
[root@ggbond 桌面]# find / -name ggbond # 查找文件名为ggbond的文件
[root@ggbond ~]# find / -name ??? # 查找文件名长度为三个字符的文件
[root@ggbond ~]# find / -user ggbond # 通过用户名查找文件
[root@ggbond ~]# find . -name "[a-z]*[4-9].log" # 在当前目录查找文件名以小写字母开头最后是4-9以log后缀结尾的文件
Linux系统三种时间戳
要按指定时间戳搜索文件,我们要知道Linux中三种不同的时间戳
访问时间戳 (atime) :最后一次读取文件的时间。
修改时间戳 (mtime) :文件内容最后一次被修改的时间。
更改时间戳 (ctime) :上次更改文件元数据的时间(如,所有权、位置、文件类型和权限设置)
-mtime n # n为数字在n天之前(一天之内)被更改动过的内容的文件
[root@ggbond ~]# find /root -mtime 0 # 查找从现在开始到24小时前被更改过内容的文件
-mtime +n # 列出在n天之前(不含n天本身)被更动过内容的文件
[root@ggbond ~]# find /root -mtime +1 # 查找大于等于2天前被更动过内容的文件
-mtime -n # 列出在n天之内(含n天本身)被更动过内容的文件
[root@ggbond ~]# find /root -mtime -2 # 查找小于等于2天内被更动过内容的文件
-newer file # file为一个存在的文件;列出比file还要新的文档名
[root@ggbond ~]# find -newer /root/桌面/77.txt # 列出比77.txt文件还要新的文件
-exec # 参数后面可以跟额外的命令
[root@ggbond ~]# find /root/桌面/ -name 77.txt -exec ls -hl {} \; 查找文件名为77的文件并且以长格式列出
{} :表示由find找到的内容,find找到内容之后将其放入到{}中;
-exec ls -hl {} \ : 表示find的额外动作从-exec开始到斜杠\结束;额外动作是ls-hl 列出详细信息并且以单位形式显示大小
; : 因为在bash环境下是有特殊意义的;所以利用反斜杠来进行转义
tr命令
进行文本字符替换
参数使用
[root@ggbond 桌面]# cat 77.txt | tr [a-z] [A-Z] # 将77文本中的小写字母替换成大写字母
wc命令
统计指定文本的行数,字节数,字数
参数使用
-l # 只显示行数
[root@ggbond 桌面]# wc -l 77.txt # 只显示77文本内的行数
-w # 只显示单词数
[root@ggbond 桌面]# wc -w 77.txt # 只显示77文本中的单词数
-c # 只显示字节数
[root@ggbond 桌面]# wc -c 77.txt # 只显示77文本中的字节数
另外不带参数时显示顺序从左到右
行数 单词数 字节数 文件名
[root@ggbond 桌面]# wc 77.txt
cut命令
按“列”提取文本字符
参数使用
-f # 指定要查看的区域
-d # 自定义分割符
[root@ggbond 桌面]# cut -d : -f 2-4 /etc/passwd
[root@ggbond 桌面]# cut -d : -f 2,4 /etc/passwd # 单独提取出某几个列用逗号隔开
mkdir命令
创建目录
参数使用
[root@ggbond 桌面]# mkdir aaa # 创建名为aaa的目录
-p # 递归创建文件
[root@ggbond 桌面]# mkdir aaa/bbb/ccc -p # 在aaa目录中创建一个bbb之后在bbb中再创建一个ccc文件夹
touch命令
创建一个新的空文本文件;也可以用此命令修改文件时间
参数使用
[root@ggbond 桌面]# touch ggbond1 # 创建一个名为ggbond1的文本文件
-a:修改atime(最后一次读取文件的时间)
• -m:修改mtime(最后一次修改文件内容的时间)
• -t:指定时间 如:202101010601
[root@ggbond 桌面]# touch -mt 202211131212 ggbond1 # 修改他的mtime;改变ggbond1文本的修改文件时间 ;时间书写格式是“年月日时分”
[root@ggbond 桌面]# touch -m ggbond1 # 单独不指定任何时间的话 他会显示当前最新的时间
[root@ggbond 桌面]# ll --time=atime ggbond1 # 查看atime时间
[root@ggbond 桌面]# touch -at 201812121111 ggbond1 # 修改atime时间
CP命令
复制文件或目录,目录不能直接复制需要加-r参数
参数使用
注:在Centos中cp命令设置了别名;-f参数会被忽略;可以在命令行中添加反斜杠\来忽略别名设置;例如: \cp -rf test ../test
[root@ggbond 桌面]# cp ggbond1 ggbond2 # 复制ggbond1 文本并且命名为ggbond2
-r #复制目录
root@ggbond 桌面]# cp -r aaa/ AA # 将aaa目录下的子目录一起都复制到AA下面
-p # 连同文件的属性(权限、用户、时间)一起复制过去
[root@ggbond 桌面]# cp -p /var/log/wtmp wtmp # 连同属性一块复制了
mv命令
移动或重命名目录与文件
用法与cp差不多;一点不同的是移动之后,源文件没了到了新路径
如果移动的源文件和目的文件路径一致;则可以实现改名的操作
参数使用
-b:若需覆盖文件,则覆盖前先行备份
-f:如果目标文件已经存在,不会询问而直接覆盖;
rm命令
删除一个文件或者目录
参数使用
-r:递归删除目录
[root@ggbond 桌面]# rm -r aaa
-f #强制删除(无提示)
[root@ggbond 桌面]# rm -rf AA # 无提示直接删除目录
VIM编辑器
vi是 Linux操作系统中最通用的文本编辑器,VIM 编辑器是从 vi 发展出来的一个性能更强大的文本编辑
器。可以主动的以字体颜色辨别语法的正确性,方便程序设计,vim 与vi 编辑器完全兼容。
工作模式
vim 编辑器有 3 种基本工作模式,分别是命令模式、文本输入模式和末行模式
1、命令模式
该模式是进入 vi 编辑器后的默认模式。在这个模式中可以使用上下左右按键来移动光标,可以使用删除字符或删除整行来处理文件内容,也可使用复制、粘贴来处理文件数据。
2、编辑模式
在命令行模式中按下i、a或o即可进入编辑模式,在该模式下,用户输入的字符都会被保存起来,并将其显示在屏幕上。在文本输入过程中,若想回到命令模式下,按下Esc键即可。
3、末行模式在命令模式下,用户按:键即可进入末行模式下,此时会在显示窗口的最后一行(通常也是屏幕的最后一行)显示一个:作为末行模式的说明符,等待用户输入命令
工作模式切换
如果要从命令模式转换到编辑模式,可以输入命令a、i或者o
如果需要从编辑模式返回命令模式,按下 Esc 键即可或者 ctrl+【 退出编辑模式
在命令模式下输入 : 即可切换到末行模式,然后输入命令。
命令模式下的操作语法
h jkl 四个键控制方向类似于键盘右下角小箭头
yy复制 5yy 复制五行
p 粘贴
dd 删除光标所在行
x 光标所在字符删除
X(大写) 删除当前光标前一个字符
r 修改光标所在位置字符
gg 跳到第一行
G跳到最后一行
u 撤销
ctrl+r 反撤销 当时撤销多了
ctrl+【 退出编辑模式或者Esc
o 当前光标下一行
:noh 取消高亮
/ 搜索
n向下搜索
N向上搜索
:set nu 显示行号
:set nonu 关闭行号
命令行进入编辑模式
i 当前光标前 I(大写i)光标所在行最前
a 当前光标后 A光标所在行最后
o 当前光标的下一行 O当前光标的上一行
Esc 退出编辑模式
末行模式操作语法
按 : 进入命令模式
w 保存
q 退出
wq 或 x 保存退出
q!不保存强制退出
wq!强制保存并退出,管理员才有权限
:set nu 显示行号
:set nonu 关闭行号
:noh 取消搜索高亮
文本打包与压缩
打包:将一大堆文件或目录什么的变成一个总的文件
压缩:将一个大的文件通过一些压缩算法变成一个小文件
为什么要区分这两个概念呢?其实这源于Linux中的很多压缩程序只能针对一个文件进行压缩,这样当你想要压缩一大堆文件时,你就得先借助另外的工具将这一大堆文件先打成一个包,然后再用压缩程序进行压缩。
常见压缩文件扩展名
*.zip zip 程序压缩的文件;
*.gz gzip 程序压缩的文件;
*.bz2 bzip2 程序压缩的文件
*.tar tar 程序打包的数据,并没有压缩过;
*.tar.gz tar 程序打包的文件,并且经过 gzip 的压缩
*.tar.bz2 tar 程序打包的文件,并且经过 bzip2 的压缩
zip命令
[root@ggbond 桌面]# zip -r ggbond1.zip ./ggbond # 将ggbond内容压缩为ggbond1.zip文件
[root@ggbond 桌面]# unzip ggbond1.zip #解压缩 解压当前文件到本目录下
gzip命令
使用 gzip 进行压缩时,原本的文件会被压缩成为 .gz 的名字,源文件就不存在了,需要特别注意
参数使用
-d :解压缩
-v :可以显示出原文件/压缩文件的压缩比等信息gzip -v file 压缩file并重命名为file.gz(原文件会清除)
gzip -dv file.gz 将file.gz解压缩为file(原文件也会清除)
bzip2命令
-d :解压缩
-v :可以显示出原文件/压缩文件的压缩比等信息
-k :保留源文件
bzip2 -v file 压缩file并重命名为file.bz2(原文件会清除)
bzip2 -dv file.bz2 将file.bz2解压缩为file(原文件也会清除)
tar命令
-c:建立压缩档案
-x:解包
-t:查看内容
-f:指定文件
-v;显示执行过程
-z:使用gzip压缩或者解压
-j:使用bzip2压缩或者解压
参数使用
tar -cvf file.tar files 创建包含files的tar文件
tar -xvf files.tar 从files.tar中提取文件
tar -czvf file.tar.gz files 使用Gzip压缩创建tar文件
tar -xzvf file.tar.gz 使用Gzip提取tar文件下图打包目录范例;(打包并未压缩)其他同理