Linux基础——第二关

通过案例来总结技术点。

1、如果过滤出已知当前目录下lw中的所欲一级目录(提示:不包含lw目录下面的子目录及隐藏目录,即只能是一级目录)?
解答:
    分析过程:完成此题,首先要想如何区分目录和文件。
        1、根据颜色区分文件
        2、ls -l结果中以d开头的是目录
        3、通过给目录加标识,然后通过过滤标识,过滤出目录
        4、通过find直接查找指定类型的文件
    命令    ls -lF|grep /$    #F参数:给目录结尾加上'/',方便区分
           ls -ld
           ls -l | grep ^d
           find . -type d -maxdepth 1 ! -name "\.*"
           tree -Ld 1    #L显示深度,d表示显示目录
           ls -l|awk "/^d/"
           ls -l|sed -n "/^d/p"
2、一个目录中有很多文件(ls 查看时好多屏),想最快速度查看到最近更新的文件,如何看?
解答: ls -lrt /etc    #这个命令执行后最新的文件会在最下面
      -r:--reverse,当排序时,翻转排序
      -t:--time,按照修改时间排序
      -l:--list,使用一个长的列表格式

      **让过滤的内容显示颜色**
      grep www --color=auto test.txt
3、在配置Apache时执行了./configure --prefix=/application/apache2.2.17来编译Apache。在make install完成后,希望用户的访问路径更简单,需要给/application/apache2.2.17目录做一个软链接/application/apache,使得内部开发或管理人员通过/application/apache就可以访问到apache的安装目录/application/apache2.2.17下的内容,请你给出实现的命令。
解答:ln -s /application/apache2.2.17 /application/apache
4、已知Apache服务的访问日志按天记录在服务器本地目录/app/logs下,由于磁盘空间紧张,现在要求只能保留最近7天访问日志,请问如何解决?
解答:
    创建测试数据脚本:
    for n in `seq 6`
    do
      date -s "12/2$n/17"
      touch access_www_`(date +%F)`.log
    done
    date -s "12/26/17"
    方法一:安装cronolog日志轮询软件,并在apache中配置如下形式按周轮询访问日志。
    CustomLog "cronolog /app/logs/access_www_%w.log" combined
    方法二:使用find的方式删除
    (1)和xargs搭配用法
    find /app/logs/ -type f -mtime +7 | xargs rm -f
    (2)和exec搭配用法
    find /app/logs/ -type f -mtime +7 -exec rm -f {} \;
5、调试系统服务时,希望能实时查看系统日志/var/log/messages的更新,如何做?
解答:tail -f /var/log/message
6、打印配置文件nginx.conf内容的行号及内容,该如何做?
解答:nginx和apache是不同的网页服务软件,是同类。
    (1) nl nginx.conf
    (2) cat -n nginx.conf
    (3) less -N nginx.conf
    (4) vi文件,然后执行:set nu
    (5) grep -n . nginx.conf
7、装完系统后,希望让网络文件共享服务NFS,仅在3级别上开机自启动,该如何做?
解答:
    方法一:全部关掉然后开启需要的级别的服务
    chkconfig nfs off
    chkconfig --list nfs
    chkconfig --level 3 nfs on
8、/etc目录为linux系统的默认配置文件及服务启动命令的目录
    a.请用tar打包/etc整个目录(打包及压缩)
    b.请用tar打包/etc整个目录(打包及压缩,但排除/etc/services文件)
    c.请把a点命令的压缩包,解压到/tmp指定目录下(最好只用tar命令实现)
解答:
    a. tar zcvf etc.tar.gz /etc
    b. 
        (1) tar zcvf etc.tar.gz --exclude=/etc/services /etc
        (2) tar zcvfX etc.tar.gz /etc/services /etc
    c. tar zxvf etc.tar.gz -C /tmp/

**生产场景案例**
如何把一个外层目录下所有包含mybaby的目录(可能目录的子目录的子目录还有mybaby目录)都打包出来。
要求:解压打包后的目录结构不能改变
解答:tar -czvf mybaby.tar.gz `find . -type d -name mybaby`

9、执行echo "hello,everyone,yeah,hi,man,mapper,good" > test.txt后,打印出"yeah mapper"。
解答:
    (1) awk '{print $3" "$6}' test.txt
    (2) cut -d "" -f3,6 test.txt
    (3) cut -c 16-19,28-33 test.txt
10、如何查看/etc/services文件有多少行?
解答:
    (1) wc -l 直接查看文件行数
    (2) cat -n /etc/services | tail -1
    (3) awk '{print NR}' /etc/services
    (4) sed -n "$=" /etc/services | tail -1
    (5) grep -n $ /etc/services | tail -1

[命令总结]

tar     打包命令
    -z:--gzip,--ungzip.调用gzip来压缩归档文件,与-x联用时调用ungzip完成解压缩。
    -c:--create.建立新的归档文件。
    -v:--verbose.处理过程中输出相关信息。
    -f:--file.对普通文件操作。
    -x:--extract.从归档文件中解出文件。
    -j:--bzip2.用GNU的bzip2压缩文件或解压。
    -C:--directory DIR.指定目录进行操作,如解压到指定目录。
    --exclude PATTERN:排除不需要处理的文件或目录。
    -X,--exclude-from FILE:指定文件列表的形式排除不需要处理的文件或目录。
cut     切分命令
    -d:指定分隔符
    -f:数字选列
    -c:按字符切割
tr      替换命令
    命令示例:tr "," ""    #将逗号替换为空
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值