一大波命令(2)
1.如何过滤出已知当前目录下oldboy中的所有一级目录
(提示:不包含oldboy目录下面目录的子目录及隐藏目录,即只能是第一级目录)?
cd ~
mkdir oldboy -p
cd oldboy/
mkdir ext/oldboy test xiaodong xiaofan xingfujie -p
touch jeacen oldboy wodi.gz yingsui.gz
LANG=en
方法一:利用tree命令
tree -Ld 1 /root/oldboy
方法二:利用find命令
find /root/oldboy -maxdepth 1 -type d
说明:-maxdepth参数最好放在所有参数最前面
方法三:利用三剑客命令
1)grep
ls -l /root/oldboy|grep "^d" 或 ls -pl /root/oldboy|grep "/$"
说明:"^d"表示以d开头的,"/$"表示以 / 结尾的,-p参数会给目录末尾加上标识符 /
2)sed
ls -l /root/oldboy|sed -n '/^d/p' 或 ls -pl /root/oldboy|sed -n '/\/$/p'
3)awk
ls -l /root/oldboy|awk '/^d/' 或 ls -pl /root/oldboy|awk '/\/$/'
方法四:通过硬链接信息
ls -l /root/oldboy|awk '$2>1' 或 ls -l /root/oldboy|awk '$2!=1'
方法五:
cd oldboy
ls -ld */
2.如何进行目录之间快速切换
cd - 还原到切换目录以前所在的路径
cd . 切换到当前所在目录
cd .. 切换到上一层目录
cd ~/cd 切换到当前登录用户的家目录
3. 一个目录中有很多文件(ls查-看时好多屏),想最快速度查看到最近更新的文件。如何看?
ls -lt /etc/
ls -ltr /etc/
说明:利用-t参数,可以按照时间信息排序显示文件内容(由新到旧排序)
利用-rt参数,可以按照时间信息反向排序
4. 已知nginx服务的访问日志按天记录在服务器本地目录/app/logs下,由于磁盘空间紧张,现在要求只能保留最近7天访问日志!
创建模拟环境:
mkdir /app/logs -p
第一个里程:修改时间
data -s "20170824"
第二个里程:按天创建出相应文件
for time in {01..20};do time -s "2017-08-$time";touch /app/logs/access_log. "2017-08-$time";done
-mtime 按天找寻数据信息
找寻几天以前的 +x
找寻几天以内的 -x
找寻第几天前的 x
方法一:
find /app/logs -type f -mtime +7 | xargs rm
方法二:
find /app/logs -type f -mtime +7 delete
方法三:
find /app/logs -type f -mtime +7 -exec rm {} \;
方法四:
\rm $(find /app/logs -type f -mtime +7)
05. 调试系统服务时,希望能实时查看系统日志/var/log/messages的更新,如何做?
tail -f /var/log/messages
06. 查找/oldboy下所有以log结尾的大于1M的文件复制到/tmp目录
方法一:find /oldboy -type f -name "*.log" -size +1M |xargs cp -t /tmp
方法二:find /oldboy -type f -name "*.log" -size +1M |xargs -i cp {} /tmp
方法三:find /oldboy -type f -name "*.log" -size +1M |xargs -I {} cp {} /tmp
07.打印配置文件nginx.conf内容的行号及内容,该如何做?
方法一:利用vim编辑
vim nginx.conf
在命令模式下输入 :set nu
方法二:cat
cat -n nginx.conf
方法三:grep
grep -n '.' nginx.conf
方法四:sed
sed '=' nginx.conf|xargs -n2
方法五:awk
awk '{print NR,$1}' nginx.conf
08.如何查看配置系统运行级别
系统运行级别:
0 关机级别
1 单用户级别
2 多用户级别(没有网络)
3 多用户级别
4 未使用
5 x11 图形化界面级别
6 重启级别
临时修改:
init 4
永久修改:
利用vim修改配置文件/etc/inittap
id:3:initdefault: ---3代表当前运行级别
查看当前系统运行级别:runlevel
09. 装完系统后,希望让网络文件共享服务NFS(iptables),仅在3级别上开机自启动,该如何做?
关闭所有级别的开机自启动:chkconfig iptables off
查看iptables的开机自启动状态:chkconfig | grep "ipt" 或 chkconfig --list iptables
设置仅在3级别上开机自启动:chkconfig --level 3 iptables on
10.如何设置中文字符信息显示
临时设置:export LANG="zh_CN.UTF-8"
永久设置
修改配置文件:sed -i 's#zh_CN.UTF-8#en_US.UTF-8#g' /etc/sysconfig/i18n
加载配置文件:source /etc/sysconfig/i18n
11.如何详细查看文件的行数信息
方法一:cat -n line.txt|tail -1 |awk '{print $1}'
方法二:cat line.txt | wc -l
12.如何进行系统数据 压缩 打包/etc/目录为linux系统的默认的配置文件及服务启动命令的目录
a.请用tar打包/etc整个目录(打包及压缩)。
tar zcvf /tmp/etc.tar.gz /etc
z --- 表示压缩数据的方式 gzip
c ---创建需要压缩的数据包 create
v ---详细显示压缩过程(可以不用设置)verbose
f ---指定生成压缩文件路径信息
检查压缩包数据内容的方法
tar tf /tmp/etc.tar.gz
t ---检查压缩包中的数据信息
b.请用tar打包/etc整个目录(打包及压缩,但需要排除/etc/services文件)。
tar zcvf /tmp/etc.tar.gz /etc --exclude=/etc/services
--exclude ---排除指定文件或目录信息
c.请把a点命令的压缩包,解压到/tmp指定目录下(最好只用tar命令实现)。
绝对路径:tar zxf /tmp/etc.tar.gz -C /tmp
相对路径:tar zxf /tmp/etc.tar.gz
x --- 解压提取数据信息 extract
C --- 解压到相应目录 change
13.进行文件字符信息过滤
/test.txt文件中有"I am xiang,myqq is 289234123" 取出字符串 xiang 和 289234123
方法一:sed 's#I am ##g' /test.txt | sed 's#,myqq is##g'
方法二:awk -F '[ ,]' '{print $3,$6}' /test.txt
-F '[ ,]' --- 指定列的分隔符信息,可以指定多个
$3 --- 第三列
方法三:sed 's#,# #g' /test.txt | cut -d " " -f3,6
cut --- 切割一行字符串信息
-d --- 指定用什么字符进行切割,只能指定一个 delimiter
14.过滤出/etc/services 文件包含3306或1521两数字所在的行的内容。
方法一:grep -E "3306|1521" /etc/services
egrep "3306|1521" /etc/services
方法二:sed -n '/3306\|1521/p' /etc/services
sed -rn '/3306|1521/p' /etc/services
方法三:awk '/3306|1521/' /etc/services