linux面试题

若如初见. 提交于 2020-10-09 07:10:08

1、删除一个目录下的所有文件,但保留一个指定文件


比如环境如下:要保留sos.txt 其他全部删除

wKiom1nnDDqiRTUgAABTaUKiSWI659.png


wKiom1nnDImhc7QTAAEIJwVi6Vk404.png

通过!取反操作


wKiom1nnDQyj7YUnAABiI3QxSmI730.png

以上两种方式


grep查找    -v显示没有匹配到的内容   以下两种也可以

wKiom1nnDxOyKG8GAAHlI2HSx28805.png

wKioL1nnDF7BCBtMAAFAexCLl3w176.png


脚本中删除文件或目录时,生产环境的使用方法一般为:

find . -type f -name “*.log” -mtime +15 | xargs rm -f

删除当前目录下以.log结尾的文件,且修改时间在15天以上的


find . -type d -name “*.heihei” -mtime +30 | xargs rm -rf

删除当前目录下以.heihei结尾的目录,且修改时间在30天以上的  


2、已知/tmp目录下存在了no1.txt文件,如何执行命令才能把/test/no1.txt拷贝到/tmp下覆盖掉

/tmp/test.txt,而让Linux系统不提示是否覆盖(root权根下)

两种方法

(1)、\cp 作用是使用命令自身的意义    

像cp是有命令别名的,实际系统中是cp -i

(2)、取消其命令别名

(3)、使用命令的全路径来执行

wKiom1nnFvSjJFE2AAFGB4bIX-0135.png

wKioL1nnFJ6yYB6vAAB_fwmmVWA090.png

不过这里的取消命令别名只是当前生效


怎么设置别名,下图 这里也是当前生效

wKioL1nnFD_jQKqTAAAmoyhp3QA184.png


如何全局有效,编辑/etc/profile文件,在最后加上

wKiom1nnGADRotRWAABcSAMg0bc475.png


再重读下文件(#source /etc/profile),配置生效。


而只想对当前用户有效定义在~/.bashrc文件中。


3、只查看ett.txt文件(100行)内第20到第30行的内容(企业常见问题)

第20行到第30行,一共是11行

以下四种方式:

wKiom1nnHm-zPXyDAABbpd_vVnc324.png

wKioL1nnG7mzuHXTAABY7Z7SR1c422.png

sed -n '20,30'p a.txt也可以

-n 取消默认输出    

p 打印

wKiom1nnHm-iKp7rAABfO37TWQE337.png

NR 行号

wKiom1nnH6jg_7aBAACu_jenry8575.png

wKioL1nnHPLCDritAABVLE_iQDU351.png

-B 除显示匹配的,并显示该行之前的N before

-A 除显示匹配的,并显示该行之后的N after

-C 除显示匹配的,并显示该行之前后各的N


4、查找pq目录,以其子目录中,以.txt结尾的文件中,把oldboy替换为gogo

wKioL1nnIOaC753IAAEdpHGjbwU026.png

wKiom1nnI-vRM0nPAABdkaqxn-M050.png

先找到以.txt结尾的目录


wKioL1nnIOexuFa7AAHhU1DEHmg389.png

然后用sed替换,并显示到标准输出界面,确认是否正确,无误再-i,替换原文件内容


ps:-g参数  globle全局的  没有的话,只替换该文件匹配到的第一个内容


也可这样写

a3c132c18afdc6d13d6e0841f2e9d0cc.png 


80c11a9717a33cd582647d74218fc5e1.png

-o 或者


9e667c6dcd300a4631f6274c4acd7bdd.png

-s 指定分隔符  默认是回车  这里是空格


!!重新执行上一条命令

!m 最近使用m开头的命令  !c  !i    !s  等等

!数字

e0a9318c10ad1a8838bf58c134fdc0b8.png


cd -  返回当前目录上一次的目录


ctrl+d 退出当前登录 再按回车就行

类似exit  logout


ctrl+l 清屏     类似clear

 

复制粘贴  ctrl+shift+c   ctrl+shift+v


ctrl+a 跳到命令开头    ctrl+e 跳到命令结尾


ABCDEFGHIJK

ctrl+u  当前光标前的删除

EFGHIJK

ctrl+k  当前光标及后面的删除


ctrl+r 搜索

(reverse-i-search)`cat': cat /etc/issue


fecd9cf409b964c475626bd31dad1616.png

132d5151edb1b355f2a17a3c74311a65.png

查看操作系统、查看内核版本


d32dbcc1bad23d601f0fb94fce447dc7.png

11d9835b1868423d88f9e80b1467b562.png

tree  -a 全部 包括隐藏  -L num 向下显示几层  -d 显示目录

 -i 不显示树枝    -f 显示全路径  

-dfiL 连用

7c5b350c3899dcd2fde502a359df0de2.png


6f1891f1d42a79b7431ee9bf17a7d825.png


a74749298e2b7e0f60f02a5b7b4225cf.png

575636941659d3f09bf82b305b248cea.png

方法二

d04792e764c1353e74d08031d33b24bb.png


708fb0d7d6fb8c9e258b6cb1ee0d1fd0.png

5、在/etc/profile或者 /etc/bashrc   里面定义

echo alias rm='echo do not use it' >> /etc/profile


6#find /tmp-type f ! -name "passwd" | xargs rm -f



7、

bac221119611125f62a964eb4730c2ee.png


fc2ccbc8d9e1b233f4da339451caa330.png

8、

8e3a398b4600e2c49f82b153b33e831f.png


9、

9c3681535dd39b1d917138a708486533.png

1528cda8a8fc6f318ae210a4ba390ad0.png

显示的就是文件里面的内容

这就是xargs的作用


f9affeaebca4ac4dd2743115a0d06755.png

c1ee795b9557c554b45dc93aad468bf3.png

417ccaa01b35fba04371a5735c1195df.png


bd7061eb4f158f744dcfd40c7455ffe5.png

10、

70e052af3591503df32ecdc643f80b03.png


下面两条为删除作用(没考虑文件大小)

find /test -type f -name "*.txt" -mtime +7 -exec rm -f {} \;

find /test -type f -name "*.txt" -mtime +7 | xargs rm -f


date -s "2017/10/01 00:04"修改时间


11cat/etc/inittab

自己看


12

cache 是为了弥补高速设备和低速设备的鸿沟而引入的中间层,最终起到加快访问速度的作用。


buffer 的主要目的进行流量×××,把突发的大数量较小规模的 I/O 整理成平稳的小数量较大规模的I/O,以减少响应次数(比如从网上下电影,你不能下一点点数据就写一下硬盘,而是积攒一定量的数据以后一整块一起写,不然硬盘都要被你玩坏了)。


f45dc4623c749236e24043b05493ea3e.png

怎么显示行号

还能用vim 命令行模式 set nu

#awk '{print NR,$0}'gogogo.txt 这样也行

5f2faae9db38ac06b0d330cc7cac35db.png


但是上面用grep的方式不能把空行也显示行号

8518b11ab72e32621d820bc6bc57f216.png

grep这样才能把空行的行号显示出来


Linux系统中查看中文乱码,如何解决?

9bf27329d5f42f34524216bee226fd93.png

79361e044117c1580087a3512f5fa992.png


查看文件多少行  专门看行号的

wc -l 显示文件行数

wc -L 显示一个文件中的最长行的长度


添加20个用户,给随机5位密码

blob.png


blob.png


查看/var/log下有多少文件

#tree -L 1 /var/log/ | cut -d " " -f3

43

blob.png

blob.png


查看端口

blob.png

blob.png

blob.png


显示一个文件的前三行:

blob.png


将/tmp/d1目录下大于100K的文件,转移到/tmp/d2

blob.png

blob.png

blob.png

-t 反转 源和目标反转  目标tmp放前面 就可以了



将监控脚本“/usr/local/nginx/libexe/m.sh”放入crontab内,使每10分钟执行一次。

blob.png


每天00分将/var/log/nginx目录下7天前以前大于等于800k的日志文件移动到/tmp/date/201712xx(以前一天的日期命名)目录中。

模拟环境:

blob.png

blob.png

写法一:

blob.png

写法二:

blob.png


blob.png

*/1 是每分钟,而不是60/1


每星期一下午550/data目录下的所有目录和文件归档并压缩为文件:201712120600.backup.tar.gz

blob.png

这个可行

下面这个不行,不知道为什么。

blob.png



找出系统内大于50K,小于100K的文件,并删除它们。

blob.png

blob.png

blob.png

blob.png

sed命令实现直接将文件B.txt中的abc换成def

blob.png

修改源文件得加-i


blob.png

格式要对

blob.png

blob.png


列出某目录下,各个子目录占用空间的大小

blob.png


在目录/tmp下找到10个以abc开头的文件,并把这些文件的第一行保存到文件new

blob.png

blob.png

想到一个排序的问题,与本题无关


blob.png

blob.png

blob.png


root密码忘记

方法一:

blob.png

blob.png

b,重启

blob.png

修改密码


方法二:

blob.png

blob.png

blob.png

blob.png

删除密码

重新登录,创建密码

blob.png


方法三:

就是chroot /mnt/sysimage/

passwd root 修改





易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!