现在面试基本都会问一些Linux操作系统命令;基本要求是会用,知道使用命令,并不需要知道原理;
1、基本的增删改查;
ls 显示文件或目录
-l 列出文件详细信息l(list)
-a 列出当前目录下所有文件及目录,包括隐藏的a(all)
mkdir 创建目录
-p 创建目录,若无父目录,则创建p(parent)
cd 切换目录
touch 创建空文件
echo 创建带有内容的文件。
cat 查看文件内容
cp 拷贝
mv 移动或重命名
rm 删除文件
-r 递归删除,可删除子目录及文件
-f 强制删除
find 在文件系统中搜索某文件
wc 统计文本中行数、字数、字符数
grep 在文本文件中查找某个字符串
rmdir 删除空目录
tree 树形结构显示目录,需要安装tree包
pwd 显示当前目录
ln 创建链接文件
more、less 分页显示文本文件内容
head、tail 显示文件头、尾内容
ctrl+alt+F1 命令行全屏模式
2、网络端口线程命令;
who 显示在线登陆用户
whoami 显示当前操作用户
hostname 显示主机名
uname 显示系统信息
top 动态显示当前耗费资源最多进程信息
ps 显示瞬间进程状态 ps -aux
du 查看目录大小 du -h /home带有单位显示目录信息
df 查看磁盘大小 df -h 带有单位显示磁盘信息
ifconfig 查看网络情况
ping 测试网络连通
netstat 显示网络状态信息
clear 清屏
kill 杀死进程,可以先用ps 或 top命令查看进程的id,然后再用kill命令杀死进程。
3、vim的使用
vim三种模式:命令模式、插入模式、编辑模式。使用ESC或i或:来切换模式。
命令模式下:
:q 退出
:q! 强制退出
:wq 保存并退出
:set number 显示行号
:set nonumber 隐藏行号
/apache 在文档中查找apache 按n跳到下一个,shift+n上一个
yyp 复制光标所在行,并粘贴
h(左移一个字符←)、j(下一行↓)、k(上一行↑)、l(右移一个字符→)
4、查看日志相关操作;
1,查看两个时间之间的日志,并且显示关键字:sed -n '/2022-04-03 09:40:55.334/,/2022-04-03 10:20:24.812/p' spring.log | grep --color '发送消息请求体为'
-------时间点一定要在日志中存在,可用:grep --color '2022-04-03 09:40:55.334'看时间点是不是存在
2,查看日志中关键字:grep --color '定时任务01开始执行' spring.log
3,实时查看日志:tail -f spring.log
4,查看日志最后20行:tail -n 20 spring.log
5,查看日志最后20行并且搜索关键字:tail -n 20 spring.log | grep --color 'mis'
6,查看最后20行并且查找关键字(文字标红),上下扩展两行:tail -n 20 spring.log | grep 'mis' --color -a2
7,查看文件头10行: head -n 10 spring.log
8,查看日志除了最后10行的其他日志:head -n -10 spring.log
9,查看日志第5到第10行:sed -n '5,10p' spring.log
10,查看底部最新300行记录并且实时刷新:tail spring.log -n 300 -f
11,查询关键字,并且翻页:grep --color '发送消息成功' spring.log | more 空格键翻页
12,查询关键字,并且翻页:grep --color '发送消息成功' spring.log | less pagedown翻页
13,分页查看日志:cat -n spring.log | grep --color '发送消息成功' | more
14,循环实时查看最后100行记录:tail -fn 100 spring.log
15,循环实时查看最后100行记录,并且查找关键字:tail -fn 100 spring.log | grep --color 'INFO'
16,不解压查看压缩包中信息:gzip -dc spring.log.2018-01-11.gz | grep '消息' | more
17,查看java进程:ps -ef|grep java
18,查看Tomcat进程:ps -ef |grep tomcat
19,看URL能不能用:curl www.baidu.com
20,切换到三快:sudo -iu sankuai
21,使用netstat命令查询有多少台机器连接到9999端口:netstat -nat |grep 9999-c
22,数据库端口3306,使用netstat命令查看已经使用了多少个数据库连接:netstat -nat |grep 3306 -c
23,ps命令查看Java线程数:ps -eLf |grep java -c
24,查看所有有关Tomcat的进程:ps -ef |grep tomcat
25,高亮要查询的关键字: ps -ef |grep --color java
26,查看端口属于哪个程序:lsof -i :8080
27,查看所有的进程:ps aux,查看Java进程:ps aux|grep java
28,查找日志中关键行,并向后扩展10行: grep --color=always -A 10 "
20220404205050ghVXhvA9IItest01" spring.log
29,查找日志中关键行,并向前扩展几行: grep --color=always -B 10 "
20220404205050ghVXhvA9IItest01" spring.log
30,查找日志中关键行,并在关键行前后扩展10行: grep --color=always -10 "XXXXX" spring.log
5、文件权限;
格式:chmod [参数] 权限文件名
chmod可以使用八进制数来指定权限,无需再使用指定的权限和用户的字母来进行标识,通过读写执行等3个权限的数字来进行设置
r(读)的权限的数字为4
w(写)的权限的数字为2
x(执行)的权限数字为1
所以7表示的赋权的用户有读写执行权限,最大的权限,下面是对照表。
| #八进制值 | 权限 | 二进制值 | rwx |
| --------- | ---------- | -------- | ---- |
| 7 | 读+写+执行 | 111 | rwx |
| 6 | 读+写 | 110 | rw- |
| 5 | 读+执行 | 101 | r-x |
| 4 | 只读 | 100 | r– |
| 3 | 写+执行 | 011 | -wx |
| 2 | 只写 | 010 | -w- |
| 1 | 只执行 | 001 | –x |
| 0 | 无权限 | 000 | — |
首个字符不用管 1.第一组rwx,也就是2 3 4为user: 文件所有者(owner)文件属于谁, 即用户,
2.第二组r-x,也就是5 6 7为group: 用户组(group),用户的集合。 体现共享的特性。
3.所以的8 9 10就是others: 其他人(others),不属于用户组的集合。需要注意root也属于其他,但是root用户可以访问用户组的内容。
-rw------- (600) 只有拥有者有读写权限。
-rw-r--r-- (644) 只有拥有者有读写权限;而属组用户和其他用户只有读权限。
-rwx------ (700) 只有拥有者有读、写、执行权限。
-rwxr-xr-x (755) 拥有者有读、写、执行权限;而属组用户和其他用户只有读、执行权限。
-rwx--x--x (711) 拥有者有读、写、执行权限;而属组用户和其他用户只有执行权限。
-rw-rw-rw- (666) 所有用户都有文件读、写权限。
-rwxrwxrwx (777) 所有用户都有读、写、执行权限。
6、压缩与解压命令
1、.zip格式:zip是Windows中最常见的压缩格式,Linux也可以正确识别,zip命令所在目录为/usr/bin/zip,所有用户可以执行,用来压缩文件或目录 命令格式:
zip [选项] 压缩包名 源文件或源目录
选项:
-r:压缩目录
示例:
zip ana.zip ananda-ks.cfg
压缩多个文件:
zip test.zip abc abcd
zip对应的解压缩命令为unzip:命令所在目录为/usr/bin/unzip,所有用户可执行, 命令格式:
unzip [选项] 压缩包名
2、.gz格式:.gz格式和.bz2格式是Linux中最常见的压缩格式,使用gzip命令 命令格式:
gzip [选项] 压缩包名
-c, -stdout. -stdout: 将输出写到标准输出上,并保留原有文件。
-d, --decompress, --uncompress: 将被压缩的文件解压缩。 -r,-rcurivee递归地查找指定目录并压缩其中的所有文件或解压缩。索-t, --test: 测试,即检查压缩文件的完整性。
注意:使用gzip压缩文件后会将原文件删除,如果想保留原文件则可以使用-c选项将压缩过程产生的标准输出写入一个新的文件中,示例如下:>的作用是覆盖内容,>>的作用是追加内容
压缩目录下的每个文件:下述命令会将123这个目录下的每个文件分别进行压缩,而不是将整个123目录进行压缩,也就是说gzip命令不会打包压缩
gzip -r 123
解压缩也可以使用gunzip
