day 21 第三关练习题 -权限

复习:

sed  替换  后向引用

awk  取列 

通过三剑客进行过滤

 

grep/egrep

sed       

            sed  -n '10p'          oldboy.txt

            sed  -n '/oldboy/p'    oldboy.txt

awk       

            awk      'NR==10'      oldboy.txt

扫描二维码关注公众号,回复: 2584096 查看本文章

            awk      '/oldboy/'    oldboy.txt       

1.1  使用awk取出网卡配置文件中的ip          

[root@oldboyedu50-lnb ~]# awk '/IPADDR/'  /etc/sysconfig/network-scripts/ifcfg-eth0

IPADDR=10.0.0.200

[root@oldboyedu50-lnb ~]# awk -F= '/IPADDR/{print $2}'  /etc/sysconfig/network-scripts/ifcfg-eth0

10.0.0.200

#'条件{动作}'

#NR==2

#NR>=10

#/oldboy/

 

1.2 #取出网卡中的DNS

 

[root@zs ~]# awk -F= '/DNS/{print $2}' /etc/sysconfig/network-scripts/ifcfg-eth0

223.5.5.5

223.6.6.6

blob.png

1.3 显示  

1.3.1  --_周几

date  +%F_%w    

显示一年前:

[root@oldboyedu50-lnb ~]# date -d '-1year'

Sun Jul 23 16:44:04 CST 2017

显示一天前:

[root@oldboyedu50-lnb ~]# date -d '-1day'

Sun Jul 22 16:44:12 CST 2018

-s<字符串>:根据字符串来设置日期与时间

字符串前后必须加上双引号;

[root@oldboyedu50-lnb ~]# date -s "20180521 12:12:12"

Mon May 21 12:12:12 CST 2018

1.3.2 #自动同步时间

[root@oldboyedu50-lnb ~]# date

Mon May 21 12:13:23 CST 2018

[root@oldboyedu50-lnb ~]# ntpdate ntp1.aliyun.com

 6 Aug 09:01:17 ntpdate[1849]: step time server 120.25.115.20 offset 6641251.972418 sec

[root@oldboyedu50-lnb ~]# date

Mon Aug  6 09:01:22 CST 2018

[root@oldboyedu50-lnb ~]# date

Mon Aug  6 09:01:41 CST 2018

[root@oldboyedu50-lnb ~]# ntpdate ntp1.aliyun.com

6 Aug 09:01:43 ntpdate[1868]: adjust time server 120.25.115.20 offset -0.000203 sec

 

ntp1.aliyun.com  #时间服务器  校对时间

 

 

1.4 打包压缩 /etc/目录  压缩到/tmp,每天创建的压缩包名字要不同(增加时间)

[root@oldboyedu50-lnb ~]# #tar zcf  /tmp/etc.tar.gz   /etc/   创建压缩包

[root@oldboyedu50-lnb ~]# #tar zcf  /tmp/etc-2018-06-06.tar.gz   /etc/  在名称后加入时间

[root@oldboyedu50-lnb ~]# date +%F    date +%F是年月日

2018-08-06

[root@oldboyedu50-lnb ~]# tar zcf  /tmp/etc-$(date +%F).tar.gz   /etc/   在名称后加入时间,使用$( )优先执行显示时间

tar: Removing leading `/' from member names

[root@oldboyedu50-lnb ~]# ll  /tmp/etc-2018-08-06.tar.gz   查看

-rw-r--r-- 1 root root 9734087 Aug  6 09:19 /tmp/etc-2018-08-06.tar.gz

[root@oldboyedu50-lnb ~]# tar tf /tmp/etc-2018-08-06.tar.gz    查看压缩包

[root@oldboy ~]# tar zcf /tmp/"date +%F_%H".tar.gz /etc

tar: Removing leading `/' from member names

 

1.5  查找当前目录下所有文件,并把文件中的www.etiantian.org字符串替换成www.oldboyedu.com

 假设你在/oldboy

 find /oldboy -type f   

1.5.1 #方法1

 find /oldboy -type f   |xargs sed 's#www.etiantian.org#www.oldboyedu.com#g'

1.5.2 #方法2

 sed 's#www.etiantian.org#www.oldboyedu.com#g' `find /oldboy -type f `

 sed 's#www.etiantian.org#www.oldboyedu.com#g' $(find /oldboy -type f )

#方法3

find /oldboy -type f   -exec  sed 's#www.etiantian.org#www.oldboyedu.com#g'   {}   \;

1.6  问题:请问在一个命令上加什么参数可以实现下面命令的内容在同一行输出。

  echo "oldboy";echo "oldboy"

1.6.1 echo –n不显示结尾的回车 

[root@oldboyedu50-lnb ~]# echo  'oldboy'

oldboy

[root@oldboyedu50-lnb ~]# echo -n  'oldboy'

oldboy[root@oldboyedu50-lnb ~]#

[root@oldboyedu50-lnb ~]# echo -n "oldboy"; echo "oldboy"

oldboyoldboy

1.6.2   echo -e:激活转义字符。

使用-e选项时,若字符串中出现以下字符,则特别加以处理,而不会将它当成一般文字输出:

\a 发出警告声;

\b 删除前一个字符;

\c 最后不加上换行符号;

\f 换行但光标仍旧停留在原来的位置;

\n 换行且光标移至行首;

\r 光标移至行首,但不换行;

\t 插入tab;

\v 与\f相同;

\\ 插入\字符;

\nnn 插入nnn(八进制)所代表的ASCII字符;

 

 [root@oldboyedu50-lnb ~]# echo   'oldboy\nold\n\nlidao'   尝试使用\n来给结果换行  (单引号)

oldboy\nold\n\nlidao

 [root@oldboyedu50-lnb ~]# echo   "oldboy\nold\n\nlidao"   尝试使用\n来给结果回车分行  (双引号)

oldboy\nold\n\nlidao

 [root@oldboyedu50-lnb ~]# echo -e "oldboy\nold\n\nlidao"   给echo添加参数-e 使\n生效

oldboy

old

lidao

 

1.7 当从root用户切到普通用户oldboy时,执行ifconfig会提示。command not found

输入命令时候提示 command not found

模拟环境 

export PATH=

 

PATH环境变量问题

PATH 路径 环境变量 存放的是 命令路径

 

1.7.1 如何修改PATH

1.      临时 

 

[root@oldboyedu50-lnb ~]# export查看已经存在的环境变量PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:~/bin

[root@oldboyedu50-lnb ~]# echo $PATH  查看当前环境变量

/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

 

2.      永久

 

[root@oldboyedu50-lnb ~]# tail -1 /etc/profile   显示/etc/profile的最后一行

#export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:~/bin

[root@oldboyedu50-lnb ~]# source /etc/profile    生效

 

3.      检查

 

[root@oldboyedu50-lnb ~]# echo $PATH  查看当前环境变量

1.8   请描述下列路径的内容是做什么的?

 

/var/log/messages   系统日志

/var/log/secure     用户登陆信息日志

/etc/fstab          开机自动挂载

/etc/hosts          解析主机名(域名)

/etc/rc.local        开机自启动

/etc/profile         别名 环境变量

/var/spool/cron/root 定时任务的配置文件

1.9 #修改主机名

1.9.1 临时

1.9.2 永久

/etc/sysconfig/network

1.9.3 解析

[root@oldboyedu50-lnb ~]# cat /etc/hosts

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4

::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

10.0.0.200  oldboyedu50-lnb

 

[root@oldboyedu50-lnb ~]# ping `hostname`

PING oldboyedu50-lnb (10.0.0.200) 56(84) bytes of data.

64 bytes from oldboyedu50-lnb (10.0.0.200): icmp_seq=1 ttl=64 time=0.021 ms

64 bytes from oldboyedu50-lnb (10.0.0.200): icmp_seq=2 ttl=64 time=0.021 ms

 

 

 

1.10 如何快速查到ifconfig的全路径,请给出命令。

 

 

which

[root@oldboyedu50-lnb ~]# find  / -type f -name "ifconfig"

/sbin/ifconfig

[root@oldboyedu50-lnb ~]# which ifconfig

/sbin/ifconfig

[root@oldboyedu50-lnb ~]# which rm

alias rm='echo rm bny'

    /bin/echo

[root@oldboyedu50-lnb ~]# \which rm

/bin/rm

 

whereis 显示命令相关的内容

[root@oldboyedu50-lnb ~]# whereis  grep awk

grep: /bin/grep /usr/share/man/man1p/grep.1p.gz /usr/share/man/man1/grep.1.gz

awk: /bin/awk /usr/bin/awk /usr/libexec/awk /usr/share/awk /usr/share/man/man1p/awk.1p.gz /usr/share/man/man1/awk.1.gz

locate  根据名字查找位置

根据清单进行查找 

updatedb   更新locate所用的表格(清单)

    占用磁盘IO 读写

 

1.11 【用户管理】请给出查看当前哪些用户在线的linux命令。

w

[root@oldboyedu50-lnb ~]# w

 10:41:59 up  2:07,  2 users,  load average: 0.04, 0.02, 0.00

USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT

root     pts/0    10.0.0.1         23Jul18  0.00s  0.28s  0.00s w

root     pts/1    10.0.0.1         09:56   29:20   0.00s  0.00s -bash

[root@oldboyedu50-lnb ~]# w |awk 'NR==1{print $(NF-6)}'

2

[root@oldboyedu50-lnb ~]# #先乘除后加减有括号先算括号里面的

 

1.12  请给出正确的关机和重起服务器的命令。

重启 

reboot

      

shutdown  -r  10

shutdown  -r  0/now  立即重启

shutdown  -c  取消当前的重启或关机

 

init 6 

 

关机

halt

shutdown  -h  10

shutdown  -h  0/now  立即关机

 

poweroff

init 0

 

 

 

 

1.13   请写出下面linux命令行快捷键的功能?

 

Ctrl + a  把光标移动到行首

Ctrl + e  把光标移动到行尾

Ctrl + c  取消 cancel

Ctrl + d  退出当前用户

Ctrl + l  清屏

Ctrl + u  把光标所在位置到行首的内容删除(剪切)

Ctrl + k  把光标所在位置到行尾的内容删除(剪切)

ctrl + y  粘贴

    

练习:

#命令行输入oldboyedu

#然后让光标移动到行首 加上注释符号和I am studying

#然后让光标移动到行尾,加上 linux.site:www.oldboyedu.com;

#剪切,这一行内容。

#粘贴3次。

ctrl+s     锁屏   linux锁屏)

ctrl+q/c   解锁  

 

Ctrl + r   找出最近一次使用过的 包含xxxx的命令  替你执行

history |grep awk

第2章 Linux权限

rwx

文件或目录rwx含义

permission denied 权限拒绝

通过控制权限保护网站安全

特殊与隐藏权限

blob.png

2.1 linux如何知道我对某个文件或目录有什么权限?

 

[root@oldboyedu50-lnb ~]# su - oldboy

[oldboy@oldboyedu50-lnb ~]$ ll /etc/hosts

-rw-r--r-- 1 root root 186 Aug  6 10:24 /etc/hosts

2.2 #如何快速判断 你对某个文件拥有什么权限

2.2.1   看看你是谁?

#whoami oldboy

 

2.3   你与这个文件什么关系 : 主人  家人  陌生人

2.3.1 #是否是家人

[oldboy@oldboyedu50-lnb ~]$ id oldboy

uid=500(oldboy) gid=500(oldboy) groups=500(oldboy)

#oldboy用户 文件是 陌生人关系

 

2.4   确认权限  陌生人权限  看最后三位

#oldboy对他的权限

r   4

w   2

x   1 

-   0 

 

[root@oldboyedu50-lnb ~]# echo {r,-}{w,-}{x,-}

rwx rw- r-x r-- -wx -w- --x ---

 

rw-r--r--   

420400400

6  4  4 

 

练习:

755        rwxr-xr-x

640        rw-r-----

744        rwxr--r--

600        rw-------

 

第3章 修改权限  change mode   chmod

3.1 直接通过数字形式修改权限

[root@oldboyedu50-lnb /oldboy]# chmod 666 test.txt

[root@oldboyedu50-lnb /oldboy]# ll test.txt

-rw-rw-rw- 1 root root 23 Jul 20 01:13 test.txt

[root@oldboyedu50-lnb /oldboy]# chmod 777 test.txt

[root@oldboyedu50-lnb /oldboy]# ll test.txt

-rwxrwxrwx 1 root root 23 Jul 20 01:13 test.txt

 

3.2 通过字母 形式修改

 

rw-     rw-           rw- 

主人    家人         陌生人

所有者  所属用户组   其他人

user     group         other

u         g           o      

 

[root@oldboyedu50-lnb /oldboy]# chmod u=r  test.txt

[root@oldboyedu50-lnb /oldboy]# ll test.txt

-r--rwxrwx 1 root root 23 Jul 20 01:13 test.txt

#=    >

#+    增加

#-   

 

3.3 #给文件快速增加执行权限

[root@oldboyedu50-lnb /oldboy]# chmod ugo+x test.txt

[root@oldboyedu50-lnb /oldboy]# ll test.txt

-rwxr-xr-x 1 root root 23 Jul 20 01:13 test.txt

 

 

[root@oldboyedu50-lnb /oldboy]# chmod +x test.txt

[root@oldboyedu50-lnb /oldboy]# ll test.txt

-rwxr-xr-x 1 root root 23 Jul 20 01:13 test.txt

chmod ugo+x

chmod a+x

chmod +x

 

 

 

3.4 #给文件快速取消执行权限

[root@oldboyedu50-lnb /oldboy]# chmod a-x test.txt

[root@oldboyedu50-lnb /oldboy]# ll test.txt

-rw-r--r-- 1 root root 23 Jul 2001:13 test.txt

 

 

第4章 chown change owner 修改文件的所有者

[root@oldboyedu50-lnb /oldboy]# chown oldboy.oldboy  test.txt  修改属主和属组为oldboy

[root@oldboyedu50-lnb /oldboy]# ll test.txt

-rwxr-xr-x 1 oldboy oldboy 23 Jul 20 01:13 test.txt

 [root@oldboyedu50-lnb /oldboy]# chown root  test.txt      修改属主为root

[root@oldboyedu50-lnb /oldboy]# ll test.txt

-rwxr-xr-x 1 root oldboy 23 Jul 20 01:13 test.txt

[root@oldboyedu50-lnb /oldboy]# chown .root  test.txt      修改属组为root

[root@oldboyedu50-lnb /oldboy]# ll test.txt

-rwxr-xr-x 1 root root 23 Jul 20 01:13 test.txt

 

 

 

 

 

总结:

1.三剑客过滤  指哪打哪

2.显示日期 打包压缩并添加上日期

3.find+sed  遇到故障排查流程

4.快捷键  关机重启

5.如何修改PATH

6.linux如何知道我对某个文件或目录有什么权限?

7.修改权限与所有者


猜你喜欢

转载自blog.51cto.com/13859679/2155388