【Linux题目】第五关

1. 如何取得/etiantian文件的权限对应的数字内容,如-rw-r-r 为644,要求使用命令取得644或0644这样的数字。

解答:

方法1:用sed获取stat filename里的属性值
[root@oldboy oldboy]# stat oldboy.txt|sed -nr '4s#.*([0-9]{4}).*#\1#gp' 
0644

方法2: 获取到权限值,用tr替换rwx-
注意,替换的顺序,-rwx,会把-r认为是参数,出错。
[root@oldboy oldboy]# ls -l oldboy.txt|cut -c2-10|tr "-rwx" "0421"
tr: invalid option -- 'r'
Try `tr --help' for more information.
[root@oldboy oldboy]# ls -l oldboy.txt|cut -c2-10|tr "rwx-" "4210"
420400400
[root@oldboy oldboy]# ls -l oldboy.txt|cut -c2-10|tr "rwx-" "4210"|awk -F "" '{print $1+$2+$3,$4+$5+$6,$7+$8+$9}' 
6 4 4

方法3:
[root@oldboy oldboy]# stat oldboy.txt|awk -F "[(/)]" 'NR==4 {print $2}'  
0644

方法4: 用stat filename的自带参数
[root@oldboy oldboy]# stat oldboy.txt -c %a
644

stat的--format参数(-c参数)

-c --format=FORMAT
        use  the  specified FORMAT instead of the default; output a newline after each use of
        FORMAT
The valid format sequences for files (without --file-system):
   %a     Access rights in octal

   %A     Access rights in human readable form

   %b     Number of blocks allocated (see %B)

   %B     The size in bytes of each block reported by %b

   %C     SELinux security context string
...

 

2. Linux下通过mkdir命令创建一个新目录/oldboy/ett,它的硬链接数是多少,为什么?如果在/oldboy/ett下面再创建一个目录test,再问/oldboy/ett的硬链接数是多少?

解答:

在目录目录只有/oldboy/ett的情况下:

  • /oldboy目录和本身"."互为硬链接,所以是2个
  • /oldboy目录和/ett目录下的".."互为硬链接,所以加上1个
  • 总计/oldboy的硬链接数为3 
  • /oldboy/ett本身和ett下面的'.'本身互为硬链接,下面没有目录
  • 所以/oldboy/ett有2个硬链接 
  • 在新增/oldboy/ett/test目录后
  • test目录下的".."与/oldboy/ett互为硬链接,所以/oldboy/ett的硬链接数加1
  • /oldboy目录下,没有新增的第一层字目录,所以硬链接数不增加,还是3
[root@oldboy /]# mkdir /oldboy/ett -p
[root@oldboy /]# ls -ld /oldboy/ett
drwxr-xr-x 2 root root 4096 Sep  5 22:17 /oldboy/ett
# 包含本身和'.' 互为硬链接目录

[root@oldboy /]# mkdir /oldboy/ett/test
[root@oldboy /]# ls -ld /oldboy/ett
drwxr-xr-x 3 root root 4096 Sep  5 22:17 /oldboy/ett
# 包含本身和'.' 互为硬链接,还有一个'..'
[root@oldboy /]# ls -alid /oldboy/ett/ /oldboy/ett/.      
275739 drwxr-xr-x 3 root root 4096 Sep  5 22:17 /oldboy/ett/
275739 drwxr-xr-x 3 root root 4096 Sep  5 22:17 /oldboy/ett/.

[root@oldboy /]# ls -ld /oldboy/ett/test
drwxr-xr-x 2 root root 4096 Sep  5 22:17 /oldboy/ett/test
[root@oldboy /]# ls -alid /oldboy/ett/test/. /oldboy/ett/test
275740 drwxr-xr-x 2 root root 4096 Sep  5 22:17 /oldboy/ett/test
275740 drwxr-xr-x 2 root root 4096 Sep  5 22:17 /oldboy/ett/test/.
[root@oldboy /]# ls -alid /oldboy/ett/ /oldboy/ett/. /oldboy/ett/test/..
275739 drwxr-xr-x 3 root root 4096 Sep  5 22:17 /oldboy/ett/
275739 drwxr-xr-x 3 root root 4096 Sep  5 22:17 /oldboy/ett/.
275739 drwxr-xr-x 3 root root 4096 Sep  5 22:17 /oldboy/ett/test/..

 

3. 请执行命令取出linux中eth0的IP地址

解答:

[root@oldboy /]# ifconfig eth3|sed -nr '2s#^.*dr:([0-9.]+)  B.*$#\1#gp'  
192.168.0.109

[root@oldboy /]# ifconfig eth3|grep 'inet'|awk -F "[: ]+" '{print $4}'
192.168.0.109

[root@oldboy /]# ifconfig eth3|grep 'inet'|cut -d ":" -f 2|cut -d " " -f1
192.168.0.109

[root@oldboy /]# ifconfig eth3|awk -F "[: ]+" 'NR==2{print $4}'            
192.168.0.109

 

4. 请给出默认情况eth0网卡配置文件的路径和客户端DNS的路径

解答:

网卡配置文件:/etc/sysconfig/network-scripts/ifcfg-eth0

DNS配置文件:/etc/resolv.cnf

[root@oldboy test]# cat /etc/resolv.conf 
; generated by /sbin/dhclient-script
nameserver 192.168.1.1
nameserver 192.168.0.1

修改IP,DNS等服务器网络配置,可以直接使用以上配置文件,可以不用setup命令。

如果配置DNS,ifcfg-eth0 优先于resolv.conf

 

5. 企业案例:查找当前目录下所有文件,并把文件中的www.etiantian.org 字符串替换成www.oldboy.me

解答:

  • find / -type f |xargs sed -i 's#www.etiantian.org#www.oldboy.me#g'
  • find / -type f -exec sed -i 's#www.etiantian.org#www.oldboy.me#g' {} \;
  • sed 's/www.etiantian.org/www.oldboy.me/g' $(find . -type f)

 

6. 如何赋予oldboy.txt文件-rw-r--r-x权限

解答:

  • chmod 641 oldboy.txt
  • chmod u=rw,g=r,o=rx oldboy.txt

 

7. 执行下面命令时发现提示需要输入密码,请问提示需要输入的密码是哪个用户的密码 sudo su - oldboy

解答:

输入当前用户密码,oldboy的密码

 

8. 请问在一个命令上加什么参数可以实现下面命令的内容在同一行输出  echo 'oldboy';echo 'oldboy'

解答:echo -n 参数

[root@oldboy /]# echo 'oldboy';echo 'oldboy'
oldboy
oldboy
[root@oldboy /]# echo 'oldboy' -n ;echo 'oldboy' 
oldboy -n
oldboy
[root@oldboy /]# echo -n 'oldboy';echo 'oldboy'   # -n参数 
oldboyoldboy

 

9. 请给出如下格式的date命令,日期显示为11-02-26,星期六显示为数字6

解答:

 

上一篇:JWT的一个demo


下一篇:2021-09-05