测试常用的linux命令
命令(〃>皿<)
1.ls
Linux ls(英文全拼:list files)命令用于显示指定工作目录下之内容(列出目前工作目录所含之文件及子目录)。
语法
ls [-alrtAFR] [name…]
参数 :
-a 显示所有文件及目录 (. 开头的隐藏文件也会列出)
-l 除文件名称外,亦将文件型态、权限、拥有者、文件大小等资讯详细列出
-r 将文件以相反次序显示(原定依英文字母次序)
-t 将文件依建立时间之先后次序列出
-A 同 -a ,但不列出 “.” (目前目录) 及 “…” (父目录)
-F 在列出的文件名称后加一符号;例如可执行档则加 “*”, 目录则加 “/”
-R 若目录下有文件,则以下之文件亦皆依序列出
常用选项:
- 查看所有文件及其权限
ls - l
- 查看所有目录及文件,包括隐藏文件
ls -a
- 查看文件创建的时间之先后次序列出
ls -r
- 将目录象文件一样显示,而不是显示其下的文件。
ls -d
- 列出目录下的所有文件的详细信息,包括以 . 开头的隐含文件
ls -al
- 列出当前路径下的所有子目录
ls -r
2.pwd
常用来查询当前所处的位置
pwd
3.cd
Linux cd(英文全拼:change directory)命令用于切换当前工作目录。
其中 dirName 表示法可为绝对路径或相对路径。若目录名称省略,则变换至使用者的 home 目录 (也就是刚 login 时所在的目录)。
另外,~ 也表示为 home 目录 的意思, . 则是表示目前所在的目录, … 则表示目前目录位置的上一层目录。
- 跳转到根目录
cd /
- 跳转到usr/bin目录
cd /usr/bin
- 回到上一级目录
cd ..
- 返回最近访问目录
cd -
4.cat
cat(英文全拼:concatenate)命令用于连接文件并打印到标准输出设备上。
使用权限
所有使用者
语法格式
cat [-AbeEnstTuv] [--help] [--version] fileName
参数说明:
-n 或 --number:由 1 开始对所有输出的行数编号。
-b 或 --number-nonblank:和 -n 相似,只不过对于空白行不编号。
-s 或 --squeeze-blank:当遇到有连续两行以上的空白行,就代换为一行的空白行。
-v 或 --show-nonprinting:使用 ^ 和 M- 符号,除了 LFD 和 TAB 之外。
-E 或 --show-ends : 在每行结束处显示 $。
-T 或 --show-tabs: 将 TAB 字符显示为 ^I。
-A, --show-all:等价于 -vET。
-e:等价于"-vE"选项;
-t:等价于"-vT"选项;
- 查看文件并标记行数(空行也标记)
cat -n file_demo.txt
- 查看文件并标记内容(不记录空行数据)
cat -b file_demo.txt
5.grep
grep 命令用于查找文件里符合条件的字符串
grep 指令用于查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样式,预设 grep 指令会把含有范本样式的那一列显示出来。若不指定任何文件名称,或是所给予的文件名为 -,则 grep 指令会从标准输入设备读取数据。
-o 表示只打印匹配的数据
-E 表示支持使用扩展正则表达式
-i 表示不区分大小写
- 查找文件中是否有符合的字符串
[root@VM-4-11-centos /]# grep 测试一下 /tmp/file_demo.txt
- 在当前文件夹下查找是否有符合字符串的文件
[root@VM-4-11-centos tmp]# grep 测试 *
- 查找文件夹中文件是否包含某个字符串
以递归的方式查找符合条件的文件。例如,查找指定目录/tmp 及其子目录(如果存在子目录的话)下所有文件中包含字符串"测试"的文件,并打印出该字符串所在行的内容,使用的命令为
[root@VM-4-11-centos /]# grep -r 测试 /tmp/
- 不区分大小写查询
[root@VM-4-11-centos tmp]# grep -i CESHI *
- 只打印匹配到的数据
[root@VM-4-11-centos tmp]# grep -o -i CESHI *
- 正则表达式匹配查询
正则表达式分为两类,第一类称为基本表达式,基本表达式包括了典型的正则标识符。
^表示开头; $表示结尾; []表示任意匹配项;*表示0个或多个; .表示任意字符。
第二类是扩展表达式,它在基础表达式的基础上做了一些扩展,支持了更高级的语法和更复杂的条件。
?表示非贪婪匹配;> +表示一个或多个; () 表示分组; {} 表示一个范围的约束; | 表示匹配多个表达式中的任何一个。
- 我要查询 csehi,以及ssss
[root@VM-4-11-centos tmp]# grep -E "(ceshi|ssss)" file_demo.txt
- 如果不想带-e搜索, 使用\转义然后查询,可以达到一样的效果
[root@VM-4-11-centos tmp]# grep "\(ceshi\|ssss\)" file_demo.txt
- 任意匹配[]中的字符
[root@VM-4-11-centos tmp]# grep "[ceshi].." file_demo.txt
进阶查询,grep结合管道命令查询日志
- Grep多条件(and)与 查询
使用管道符连接多个grep命令就可以得到多个条件同时满足才能查询出来的结果
语法:
grep 'pattern1' filename | grep 'pattern2'
查询ceshi 或者 sss 是否在 file_demo ,只有两个条件都满足才会返回信息
[root@VM-4-11-centos /]# grep "ceshi" /tmp/file_demo.txt | grep "sss" /tmp/file_demo.txt
不存在则查询不到
- Grep的OR,多条件的或查询
语法一:
使用转义字符将管道符转为’或’符号。
grep 'pattern1\|pattern2' filename
查询ceshi或者baidu是否存在file_demo.txt中
[root@VM-4-11-centos tmp]# grep "ceshi\|baidu" file_demo.txt
查询ceshi或者645是否存在file_demo.txt中,因为645不存在,所以只查出来了ceshi相关的
[root@VM-4-11-centos tmp]# grep "ceshi\|645" file_demo.txt
语法二:
使用正则表达式选项。
grep -E 'pattern1|pattern2' filename
使用正则查询
[root@VM-4-11-centos tmp]# grep -E "ceshi|645" file_demo.txt
语法三:
与语法二相同
egrep 'pattern1|pattern2' filename
使用正则查询
[root@VM-4-11-centos tmp]# egrep "ceshi|645" file_demo.txt
- Grep的NOT,非查询(不满足当前条件的所有内容行)
语法
grep -v 'pattern'
先查看一下源数据
查询除了测试一下所有之外的数据
[root@VM-4-11-centos tmp]# grep -v "测试一下" file_demo.txt
6.find
Linux find 命令用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则 find 命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。
- 查询当前文件夹下符合条件数据文件
[root@VM-4-11-centos tmp]# find . -name "*.log"
- 全局查询python3文件
[root@VM-4-11-centos tmp]# find / -name python3
- 忽略大小写查询
[root@VM-4-11-centos /]# find / -iname PYTHON3
7.vi/vim
i 切换到输入模式,以输入字符。 x 删除当前光标所在处的字符。 : 切换到底线命令模式,以在最底一行输入命令
- 在命令模式下按下【i】就进入了输入模式。在输入模式中,可以使用以下按键:
字符按键以及Shift组合 输入字符
ENTER 回车键
换行 BACK SPACE
退格键,删除光标前一个字符
DEL,删除键,删除光标后一个字符
方向键,在文本中移动光标
HOME/END,移动光标到行首/行尾
Page Up/Page Down,上/下翻页
Insert,切换光标为输入/替换模式
光标将变成竖线/下划线 ESC,退出输入模式,切换到命令模式
- 退出vi编辑器
:w 将编辑的数据写入硬盘档案中(常用)
:w! 若文件属性为『只读』时,强制写入该档案。不过,到底能不能写入,还是跟档案权限有关
:q 离开 vi (常用)
:q! 若曾修改过档案,又不想储存,使用 ! 为强制离开不储存档案。 注意一下啊,那个惊叹号 (!) 在 vi
当中,常常具有『强制』的意思~
:wq 储存后离开,若为 :wq! 则为强制储存后离开 (常用) ZZ 这是大写的 Z
喔!如果修改过,保存当前文件,然后退出!效果等同于(保存并退出) ZQ 不保存,强制退出。效果等同于 :q!
当然vi也可以创建文件
- 新建文件 ./ 在当前目录创建
[root@VM-4-11-centos tmp]# vi ./file_demo.txt
- 进入编辑模式 按键盘[i]
- 保存内容并退出文件
先按住esc
再按住shift+:
在输入 wq
8.tar
Linux tar(英文全拼:tape archive )命令用于备份文件。
tar 是用来建立,还原备份文件的工具程序,它可以加入,解开备份文件内的文件。
语法
tar [-cxtzjvf] 文件与目录
参数:
-c :建立一个压缩文件的参数指令(create 的意思);
-x :解开一个压缩文件的参数指令!
-t :查看 tarfile 里面的文件!
-z :是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩?
-j :是否同时具有 bzip2 的属性?亦即是否需要用 bzip2 压缩?
-v :压缩的过程中显示文件!这个常用,但不建议用在背景执行过程!
-f :使用档名,请留意,在 f 之后要立即接档名喔!不要再加参数!
-C : 解压到指定目录
- 解压python文件
[root@VM-4-11-centos tmp]# tar -zxvf Python-3.8.6.tgz
- 压缩文件
我们先将刚才解压的文件cp一份,然后在进行压缩
[root@VM-4-11-centos tmp]# cp -r Python-3.8.6/ py3
[root@VM-4-11-centos tmp]# tar -zcvf py3.tgz py3/
9.zip
Linux zip 命令用于压缩文件。
zip 是个使用广泛的压缩程序,压缩后的文件后缀名为 .zip。
-A 调整可执行的自动解压缩文件。
-b<工作目录> 指定暂时存放文件的目录。
-c 替每个被压缩的文件加上注释。
-d 从压缩文件内删除指定的文件。
-D 压缩文件内不建立目录名称。
-f 更新现有的文件。
-F 尝试修复已损坏的压缩文件。
-g 将文件压缩后附加在既有的压缩文件之后,而非另行建立新的压缩文件。
-h 在线帮助。
-i<范本样式> 只压缩符合条件的文件。
-j 只保存文件名称及其内容,而不存放任何目录名称。
-J 删除压缩文件前面不必要的数据。
-k 使用MS-DOS兼容格式的文件名称。
-l 压缩文件时,把LF字符置换成LF+CR字符。
-ll 压缩文件时,把LF+CR字符置换成LF字符。
-L 显示版权信息。
-m 将文件压缩并加入压缩文件后,删除原始文件,即把文件移到压缩文件中。
-n<字尾字符串> 不压缩具有特定字尾字符串的文件。
-o 以压缩文件内拥有最新更改时间的文件为准,将压缩文件的更改时间设成和该文件相同。
-q 不显示指令执行过程。
-r 递归处理,将指定目录下的所有文件和子目录一并处理。
-S 包含系统和隐藏文件。
-t<日期时间> 把压缩文件的日期设成指定的日期。
-T 检查备份文件内的每个文件是否正确无误。
-u 与 -f 参数类似,但是除了更新现有的文件外,也会将压缩文件中的其他文件解压缩到目录中。
-v 显示指令执行过程或显示版本信息。
-V 保存VMS操作系统的文件属性。
-w 在文件名称里假如版本编号,本参数仅在VMS操作系统下有效。
-x<范本样式> 压缩时排除符合条件的文件。
-X 不保存额外的文件属性。
-y 直接保存符号连接,而非该连接所指向的文件,本参数仅在UNIX之类的系统下有效。
-z 替压缩文件加上注释。
-$ 保存第一个被压缩文件所在磁盘的卷册名称。
-<压缩效率> 压缩效率是一个介于1-9的数值。
10.unzip
Linux unzip命令用于解压缩zip文件
-c 将解压缩的结果显示到屏幕上,并对字符做适当的转换。
-f 更新现有的文件。
-l 显示压缩文件内所包含的文件。
-p 与-c参数类似,会将解压缩的结果显示到屏幕上,但不会执行任何的转换。
-t 检查压缩文件是否正确。
-u 与-f参数类似,但是除了更新现有的文件外,也会将压缩文件中的其他文件解压缩到目录中。
-v 执行是时显示详细的信息。
-z 仅显示压缩文件的备注文字。
-a 对文本文件进行必要的字符转换。
-b 不要对文本文件进行字符转换。
-C 压缩文件中的文件名称区分大小写。
-j 不处理压缩文件中原有的目录路径。
-L 将压缩文件中的全部文件名改为小写。
-M 将输出结果送到more程序处理。
-n 解压缩时不要覆盖原有的文件。
-o 不必先询问用户,unzip执行后覆盖原有文件。
-P<密码> 使用zip的密码选项。
-q 执行时不显示任何信息。
-s 将文件名中的空白字符转换为底线字符。
-V 保留VMS的文件版本信息。
-X 解压缩时同时回存文件原来的UID/GID。 [.zip文件] 指定.zip压缩文件。 [文件] 指定要处理.zip压缩文件中的哪些文件。
-d<目录> 指定文件解压缩后所要存储的目录。
-x<文件> 指定不要处理.zip压缩文件中的哪些文件。
-Z unzip -Z等于执行zipinfo指令。
- zip打包
[root@VM-4-11-centos tmp]# zip -q file_demo file_demo.txt
- unzip解压
[root@VM-4-11-centos file]# unzip file.zip
- 查看压缩文件中包含的文件
[root@VM-4-11-centos file]# unzip -l file.zip
- 查看压缩文件目录信息,但是不解压该文件
[root@VM-4-11-centos file]# unzip -v file.zip
11.tail
tail 命令可用于查看文件的内容,有一个常用的参数 -f 常用于查阅正在改变的日志文件。
tail -f filename 会把 filename 文件里的最尾部的内容显示在屏幕上,并且不断刷新,只要 filename 更新就可以看到最新的文件内容。
语法
tail [参数] [文件]
-f 循环读取
-q 不显示处理信息
-v 显示详细的处理信息
-c<数目> 显示的字节数
-n<行数> 显示文件的尾部 n 行内容
–pid=PID 与-f合用,表示在进程ID,PID死掉之后结束
-q, --quiet, --silent 从不输出给出文件名的首部
-s, --sleep-interval=S 与-f合用,表示在每次反复的间隔休眠S秒
- 查看最后三条日志
[root@VM-4-11-centos /]# tail -n 3 /tmp/file_demo.txt
- 查看500行实时日志
[root@VM-4-11-centos /]# tail -500f /tmp/file_demo.txt
12.docker日志查看
语法
docker logs 容器名
docker logs jenkins
13.top
Linux top命令用于实时显示 process 的动态。
使用权限:所有使用者
语法
top [-] [d delay] [q] [c] [S] [s] [i] [n] [b]
参数说明:
-d : 改变显示的更新速度,或是在交谈式指令列( interactive command)按 s
-q : 没有任何延迟的显示速度,如果使用者是有 superuser 的权限,则 top 将会以最高的优先序执行
-c : 切换显示模式,共有两种模式,一是只显示执行档的名称,另一种是显示完整的路径与名称
-S : 累积模式,会将己完成或消失的子进程 ( dead child process ) 的 CPU time 累积起来
-s : 安全模式,将交谈式指令取消, 避免潜在的危机
-i : 不显示任何闲置 (idle) 或无用 (zombie) 的进程
-n : 更新的次数,完成后将会退出 top
-b : 批次档模式,搭配 “n” 参数一起使用,可以用来将 top 的结果输出到档案内
- 显示实时进程信息
top
- 显示进程完整信息
top -c
- 显示指定进程信息
top -p 20677
14.查看主机名
hostname
15.查看本机ip
ifconfig
16.查看内存
free
- 声明
部分资料来源于以下:
https://blog.csdn.net/stalin_/article/details/81450633
https://www.runoob.com/linux/linux-command-manual.html