前言
linux shell 常见的面试问题,基本是先让你随便说一些,测试一下你掌握的广度,这时候你至少要说上十个才行,但是!不要说太难的,否则很容易掉进自己的坑里,相当于提醒了面试官去问你 : find ,vi编辑器这种会让面试官出一个极复杂的命令。但是之后 面试官仍然会出一些 非常复杂的命令,本小节复习,除了基础中常见的命令之外,还有常见的复杂命令。
基础命令
注意,每个linux命令都包含很多参数,我这里不像网上教程一样全写出来,我只会把常用的或者面试大概率遇到的参数写出来,以免参数太多大家记混。而且参数一般都是相同的意思和概念,大家可以极大的减轻记忆负担,比如 -R 在几乎所有命令中都代表递归的意思,-f 一般都是强制或忽略 -v 基本都是显示日志版本号等,几乎所有的参数都可加可不加。
echo 打印到命令行
echo "hello 测试开发干货"
chmod 修改权限
chmod +x 文件 :增加可执行权限 chmod 777 文件:增加所有人的读写执行权限 777 代表111 111 111 ,也就代表 rwx rwx rwx 全都生效 chmod ugo+r 文件 其中ugo 代表 user group others 也就是不同身份 +r 代表这些身份的人增加可读权限 chmod ug=rwx,o=x 文件
cat 查看日志
cat 参数 文件 > 新文件 -n 从1开始进行编号 -b 编号但不包括空行 -s 合并连续空行为一行 -e 在每行结尾显示$
chattr 改变文件属性
chattr 参数 +/-属性 文件 其中加减号代表增加或删除这项属性 属性: i 不需改动 c 压缩存放 u 防止意外删除 参数: -R 递归 -v 设置版本号 -V 显示执行过程
chgrp 修改所属组
chgrp 参数 群组 文件 -c 回报更改部分 -f 不显示错误信息 -r 递归
chown 修改所属人
chown 参数 用户 文件 -f 忽略错误
cmp 比较文件
cmp 参数 文件1 文件2
diff 详细的比较文件
diff 参数 文件1 文件2
file 查看文件类型
file 参数 文件 -v 显示版本信息 -c 详细显示过程
find 查找命令
find 路径 参数 值 find . -name "*.c" 查找所有后缀为c的当前目录下文件 find . -type f 查找目录和子目录下所有文件 find . -ctime -20 查找最近20天内更新过的文件 find . -type f -mitme +7 -ok rm {} \; 查找当前目录下更改时间在7天以前的普通文件删除,但要二次确认。 find . -type f -perm 777 -exec ls -l {} \; 查找当前目录下文件具有所有身份读写执行权限的文件。 find . -type f -size 0 -exec ls -l {} \;查找所有文件长度为0的文件,并打印完整路径。 可以看到find命令的应用非常花式,所以要重点学习。 -cmin n :在过去n分钟内被修改过的 -atime n :在过去n天内被读取过的 -size : 文件大小 -type c :文件c类型的文件 -name : 文件名称符合的 这里的c可以换成如下字母: d 目录 f 文件 exec 相当于执行下一个命令,多个命令分割
cut 截取显示
在其他命令结尾用|cut 参数 值 来决定显示多少 -b 以字节分割 -c 以字符分割
ln 连接
可以让你其他目录下直接调用该文件 ln 参数 文件 目录 -s 软连接
less 可翻页浏览文件
less 参数 文件 -f 强制 -N 显示行号 -i 忽略大小写 命令: b 向前翻页 d 向后翻页 空格 滚动一页 Q 退出
more 逐页阅读
more 参数 每页显示行数 文件 -num 行数 命令: 空格 向下滚动一屏 q 退出 ! 调用shell命令