第二波命令正向我方来袭 :开机启动过程、PATH、过滤一级目录、cd的参数、ls -lrt、命令切割日志
1.1 linux开机启动过程
1.1.1 开机自检(BIOS)-- MBR引导-- GRUB菜单--加载内核(kernel)--运行INIT进程--读取/etc/inittab配置文件--执行/etc/rc.sysinit脚本(初始化脚本,如设置ip,hostname)--执行/etc/rc.d/rc(根据运行级别开机自启的软件)脚本--启动/sbin/mingetty进程(显示登录界面)
1.2 什么是PATH环境变量,它有什么作用?
1.2.1 查看PATH环境变量
[root@georgekai ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
1.2.2 PATH作用:
1)环境变量
2)存放的是命令的位置
1.2.3 执行一个命令的过程?
1)ls或mkdir
2)系统会去PATH里面查找命令是否存在
3)存在就运行
4)不存在就报错:command not found或no sush file or directory
1.3 如何过滤出/oldboy目录下的第一层目录?
方法一:[root@georgekai oldboy]# tree -dL 1
.
├── ext
├── test
├── xiaodong
├── xiaofan
└── xingfujie
注:1. -d 目录 -L 相当于--level,显示最多几层目录
方法二:[root@georgekai oldboy]# find -maxdepth 1 -type d ! -name "."
注:1. maxdepth 最深
2. ! 取反的意思
方法三:[root@georgekai oldboy]# ls -l |grep "^d"
drwxr-xr-x. 3 root root 4096 Dec 12 10:35 ext
drwxr-xr-x. 2 root root 4096 Dec 12 10:35 test
注:找出以d开头的行 , ^号只有三剑客才能使用,正则表达式 以.....开头的行
方法四:[root@georgekai oldboy]# ls -l | awk '$2>1'
注:$2 表示第二行
方法五:[root@georgekai oldboy]# ls -F |grep "/"
ext/
test/
注: -F 给不同的文件加上不同的标记(尾巴)
1.4 cd命令及其选项的使用
注:cd 属于内部命令,可用man cd或者help cd查看帮助手册
1.4.1 cd -
[root@georgekai oldboy]# cd -
注:快速的回到上一次所在的位置
1.4.2 cd .
[root@georgekai /]# cd .
注:表示当前目录
1.4.3 cd ..
[root@georgekai /]# cd ..
注: 返回上一级目录
1.4.4 cd ~
[root@georgekai /]# cd ~
[root@georgekai /]# cd
注:进入当前用户的宿主目录,和cd一个作用
1.5 查看帮助手册:
1)help cd查看内部命令
2)ls --help查看外部命令
3)man cd查看完整帮助
1.6 ls命令如何按照时间顺序显示
1.6.1 ls显示的时候按照时间顺序
注:默认为a-z显示
[root@georgekai oldboy]# ls -lt
注:-t 按照文件的修改时间显示 (最新的文件在最上面)
1.6.2 ls 按时间的逆序显示
[root@georgekai oldboy]# ls -lrt
注:-r 逆序显示内容(包括时间、字母),最新的文件在最下面
1.6.3 ls 按照时间的年/月/日/时/分/显示
[root@georgekai oldboy]# ls -l --time-style=long-iso
-rw-r--r--. 1 root root 0 2017-12-12 12:00 123.txt
1.7 通过命令对日志来进行切割
注:还可以通过软件对日志进行监控,监控磁盘空间的大小等
1.7.1 修改系统时间
[root@georgekai oldboy]# date -s "2017-12-19 11:01:00"
1.7.2 nginx/apache服务的访问日志按天记录在服务器本地目录/app/logs/下,最要求保留最近7天的访问日志,请问如何解决?(先用ls -l代替rm)
1)显示第7天的日志(7)
[root@georgekai logs]# find -type f -mtime 7
2)显示最近7天的日志(-7)
[root@georgekai logs]# find -type f -mtime -7 |xargs ls -l
3)显示7天之前的日志(+7)
[root@georgekai logs]# find -type f -mtime +7 |xargs ls -l
1.7.3 找出/aap/logs下面以.log结尾的并且修改时间是7天之前的文件并删除(先用ls -l代替)
创建运行环境:
mkdir -p /app/logscd /app/logsfor time in {01..20};do date -s "201705$time"; touch access_www_$(date +%F).log ;donedate -s "20170520"
解决方法:
方法一:[root@georgekai logs]# find -type f -mtime +7 -exec ls -l {} \;
方法二:[root@georgekai logs]# find -type f -mtime +7 |xargs ls -l
方法三:[root@georgekai logs]# ls -l $(find -type f -mtime +7)
1.7.4 调试系统服务是,希望通过实时查看/vat/log/secure系统日志的更新,如何做?
[root@georgekai logs]# tail -f /var/log/secure
注:tail -f 显示文件结尾实时更新
1.7.5 查找/oldboy 下所有以log结尾的大于1M的文件复制到/tmp下。
方法一:[root@georgekai /]# cp $(find /oldboy -type f -size +1024k -name "*.log") /tmp/
方法二:[root@georgekai /]# find /oldboy -type f -size +1024k -name "*.log" -exec cp {} /tmp/ \;
方法三:[root@georgekai /]# find /oldboy -type f -size +1024k -name "*.log"|xargs cp -t /tmp/
注:cp -t 反向复制,把要复制的文件都放在了最后面(正常情况在前面)
1.7.6 把2个或多个文件大小合并在一起
[root@georgekai logs]# cat /etc/services /etc/services > /123.log
注:cat 全称是concatenate ,合并联系在一起的意思
小伙伴们可以关注我的微信公众号:linux运维菜鸟之旅,更新比51cto慢一些,不过要方便许多
关注“中国电信天津网厅”公众号,首次绑定可免费领2G流量,为你的学习提供流量!