首页 > 代码库 > Linux命令【第二篇】
Linux命令【第二篇】
1、如何过滤出已知当前目录下oldboy中的所有一级目录(提示:不包含oldboy目录下面目录的子目录及隐藏目录,即只能是一级目录)。
^:以什么开头,例如^olboy表示以oldboy开头。
ls:-F给不同的文件类型加标识。
方法一:
- [root@oldboy66 tmp]# find ./oldboy -maxdepth 1 -type d ! -name "oldboy"
方法二:
- [root@oldboy66 tmp]# tree ./oldboy -Ld 1
方法三:
- [root@oldboy66 tmp]# ls ./oldboy -lF|awk ‘/^d/‘
方法四:
- [root@oldboy66 tmp]# ls ./oldboy -lF|sed -n ‘/^d/p‘
2、已知apache服务的访问日志按天记录在服务器本地目录/app/logs,现在要求只能保留最近7天访问日志。
- [root@oldboy66 tmp]# find /oldboy/test/ -type f -name "access*.log" -mtime +7|xargs rm -f
- 或
- [root@oldboy66 tmp]# find /oldboy/test/ -type f -name "access*.log" -mtime +7 -exec rm -f {} \;
3、跟踪一个文件结尾的变化
tail -f 文件名
tailf 文件名
tail –F 文件名
4、打印配置文件nginx.conf内容的行号及内容
cat -n 文件名
grep -n "匹配内容" 文件名(对匹配的结果显示行号)
nl 文件名
awk ‘{print NR " " $0}‘ 文件名
sed ‘=‘ 文件名
less -N 文件名
vi 文件名,然后执行:set nu,:set noun取消行号。
5、装完系统后,希望让网络文件共享服务NFS,仅在3级别上开机自启动。
chkconfig --level 35 sshd on
chkconfig --list sshd
chkconfig管理脚本的要求:
1、执行/etc/init.d/oldboy restart格式正常服务
2、脚本里开头增加如下内容:
#chkconfig: 35 56 24
#description: oldboy linux test
特别注意:
/etc/init.d/oldboy start让程序当前运行,chkconfig是管理是否开机自启动,两者没有联系。
6、linux系统运行级别一般为0—6,请分别写出每个级别的含义。
0:关机模式
1:单用户模式
2:无NFS的多用户模式
3:文本模式(完整的多用户模式)
4:未使用
5:图形模式
6:重启模式
7、如何优化linux系统。
1、不用root,添加普通用户,通过sudo授权管理。
2、更改默认的远程连接SSH服务端口及禁止root用户远程连接。
3、定时自动更新服务器时间。
4、配置yum更新源,从国内更新源下载安装rpm包。
5、关闭selinux及iptables(工作场景如果有wan ip一般要打开)。
6、调整文件描述符的数量,进程及文件的打开都会消耗文件描述符。
7、定时自动清理/var/spool/clientmquene/目录垃圾文件,防止inodes消耗完。
8、精简开机自启动服务(sshd、crond、network、rsyslog、sysstat)。
9、linux内核参数优化/etc/sysctl.conf,执行sysctl -p生效。
10、更改字符集,支持中文,建议用英文字符集。
11、锁定关键系统文件。
chattr +i /etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/inittab
处理后把chattr,lsattr改名。
12、清空/etc/issue,去除系统及内核版本登录前的屏幕显示。
13、清楚无用的默认系统账户或组。
8、/etc/目录为linux系统的默认的配置文件及服务启动命令的目录,1、用tar打包/etc整个目录;2、用tar打包/etc整个目录,但需要排除/etc/services文件;3、把a中的压缩包解压到/tmp指定目录下。
tar zcvf [路径]/筐 [路径]一堆苹果
1:
tar zcvf /tmp/etc.20161207.tar.gz /etc
-z:--gzip,--ungzip,调用gzip来压缩归档文件,与-x联用时调用
-c:--create,建立新的归档文件
-v:--verbose,处理过程中输出相关信息
-f:--file,对普通文件打包
tar tf etc.20161207.tar.gz查看包里的内容
-t:--list,查看压缩包的内容列表
-f:--file,对普通文件
2:
tar zcvf etc.20161207.tar.gz --exclude=/etc/services ./etc
将需要排除的文件名写入文本,读取文本进行排除:
tar zcvfX etc.20161207.tar.gz 排除文件名 ./etc
--exclude:排除不需要处理的文件或目录
-X:--exclude-from,指定文件列表的形式排除不需要处理的文件或目录
3:
tar xf etc.20161207.tar.gz(解压到前面目录)
tar xf etc.20161207.tar.gz -C /tmp(解压到/tmp目录)
-x:--extract,--get,从归档文件中解出文件
-C:--directory DIR,指定目录进行操作,如解压到指定目录
-p:保持文件属性
-P:用绝对路径打包
拓展:
find /oldboy/ -type f|xagrs tar zcvf oldboy.tar.gz
tar zcvf oldboy.tar.gz `find /oldboy -type f`
9、echo "I am oldboy myqq is 49000448" >>oldboy.txt文件中过滤出oldboy和49000448字符串,以及在I am oldboy,myqq is 49000448过滤出。
I am oldboy myqq is 49000448过滤:
awk -F " " ‘{print $3 " " $NF}‘ oldboy.txt
cut -d " " -f3,6 oldboy.txt
cut -c 6-11,20- oldboy.txt
I am oldboy,myqq is 49000448过滤:
sed ‘s#,# #g‘ oldboy.txt|cut -d " " -f3,6
awk -F "[, ]" ‘{print $3 " " $6}‘ oldboy.txt
10、查看一个文件有多少行
wc -l 文件名
wc -l /etc/services
cat -n /etc/services|tail -1
11、过滤出/etc/services文件包含3306或1521两数字的行的内容
grep -E "3306|1521" /etc/services
egrep "3306|1521" /etc/services
Linux命令【第二篇】