1. 查看PATH环境变量:echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
PATH是环境变量,用于存放命令的位置
执行一个命令的过程
如执行ls或mkdir,系统会在PATH所定义的路径里面查找命令是否存在,如存在就运行,不存在就报错:command not found或no sush file or directory。
2. 如何过滤出/data目录下的第一层目录
方法一:[root@centos data]# tree -dL 1
.
├── ext
├── test
├── xiaodong
├── xiaofan
└── xingfujie
-d目录; -L相当于--level,显示最多几层目录
方法二:find -maxdepth 1 -type d ! -name "."
maxdepth 最深; ! 取反的意思
方法三: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开头的行,^号只有三剑客才能使用,正则表达式以.....开头的行
方法四:ls -l | awk '$2>1'
$2 表示第二行
方法五:ls -F |grep "/"
ext/
test/
-F 给不同的文件加上不同的标记(尾巴)
- 回到上一次所在的位置
. 表示当前目录
.. 返回上一级目录
~ 当前用户的家目录
3. 查看帮助:
1)help cd 查看内部命令
2)ls --help 查看外部命令
3)man cd 查看完整帮助
4. ls命令
ls命令默认按照a-z顺序显示
-t 按照文件的修改时间显示 (最新的文件在最上面)
-r 逆序显示内容(包括时间、字母)
ls -lt 按照时间顺序
ls -lrt 按时间的逆序显示,最新的文件在最下面
ls 按照时间的年/月/日/时/分/格式显示
ls -l --time-style=long-iso
-rw-r--r--. 1 root root 0 2017-12-12 12:00 123.txt
5. 通过命令对日志来进行切割
还可以通过软件对日志进行监控,监控磁盘空间的大小等
修改系统时间date -s "2017-12-19 11:01:00"
nginx/apache服务的访问日志按天记录在服务器本地目录/app/logs/下,最要求保留最近7天的访问日志,请问如何解决?(先用ls -l代替rm)
1)查找过去第7天的日志(7) find -type f -mtime 7
2)查找并显示最近7天的日志(-7) find -type f -mtime -7 |xargs ls -l
3)显示7天之前的日志(+7) find -type f -mtime +7 |xargs ls -l
找出/aap/logs下面以.log结尾的并且修改时间是7天之前的文件并删除(先用ls -l代替)
创建运行环境:
mkdir -p /app/logs
cd /app/logs
for time in {01..20};do date -s "201705$time"; touch access_www_$(date +%F).log ;done
date -s "20170520"
解决方法:
方法一:find -type f -mtime +7 -exec ls -l {} \;
方法二:find -type f -mtime +7 |xargs ls -l
方法三:ls -l $(find -type f -mtime +7)
调试系统服务时,希望通过实时查看/vat/log/secure系统日志的更新,如何做?
tail -f /var/log/secure
tail -f 显示文件结尾实时更新
查找/test下所有以log结尾的大于1M的文件复制到/tmp下。
方法一:cp $(find /test -type f -size +1024k -name "*.log") /tmp/
方法二:find /test -type f -size +1024k -name "*.log" -exec cp {} /tmp/ \;
方法三:find /test -type f -size +1024k -name "*.log"|xargs cp -t /tmp/
注:cp -t 反向复制,把要复制的文件都放在了最后面(正常情况在前面)
把2个或多个文件大小合并在一起
cat /etc/services /etc/services > /123.log
注:cat全称是concatenate,合并在一起