学习记录001-007-阶段习题小结

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了学习记录001-007-阶段习题小结相关的知识,希望对你有一定的参考价值。

一、第1段

1.显示目录下第一级目录
ls -l |grep ^d 或者颜色区分
[^ ee] //非ee的字符
ls -F //在目录下显示目录后加上/ ls -F |grep / 或者/$ 以什么什么结尾 p 也有这个功能
find . -type d //可以查看子目录,有二级目录
tree -Ld 1 也可以
find -maxdepth level
ls -ld */
ls -l |awk ‘/^d/‘
ls -l|sed -n ‘/^d/p‘


2.假如当前目录是/data 你用命令 cd /tmp 之后想返回/data目录你怎么处理?
cd - //- 可以用命令env |grep -i old env 显示当前用户的环境变量 一切换就找路径去了
cd /root/data


3. 怎么查看刚刚创建的文件,找出来
ls -lrt /etc //直接看到刚刚创建的文件 lrt 非常重要 r reverse order while sorting
当排序时,倒过来排序
grep 3306 /etc/services --color=auto //显示结果有颜色


4. 已知apache服务的访问日志记录在服务器本地目录/app/logs下,由于磁盘紧张,现在只要求保留最近7天的访问日志,请问如何解决?
法一:
find ./ -type f -name "*.log" -mtime +7 |xargs rm -f
法二:
find ./ -type f -name "*.log" -mtime +7 -exec rm -f {} \; //{}表示前面find的内容,这个命令多了,会出问题,因为是一起删除 find 多喝mtime连用
法三:
CustomLog"|/usr/local/sbin/cronolog /app/logs/access_www_%w.log" combined
过7天自动覆盖
/app/logs/access_www_0.log //礼拜天
/app/logs/access_www_1.log //礼拜一
数据创建脚本
for n in `seq 14`
do
date -s "04/0$n/16"
touch access_www_`(data+%F)`.log
done
date -s "04/14/16"


5.调试系统服务时候、,希望能实时查看系统日志/var/log/messages的更新,如何做?
比如一个程序:for n in `seq 10000`;do echo 1111 >>/var/log/messages;usleep 500;done


6.打印配置文件nginx.conf的内容和行号,你该怎么做?
nl nginx.conf
cat -n nginx.conf
less -N nginx.conf
vi文件 然后执行set nu , :set nonu 为取消行号。
grep -n ./etc/serrvices //这两种用的比较多


7.装完系统后,希望网络共享服务NFS 在三级别启动
chkconfig --level 3 nfs on
把启动的命令echo“etc/init.d/sshd start”>>/etc/rc.local


8.linux系统中查看中文乱码,请问如何解决乱码问题?
echo $LANG="zh_CN.GB18030" //仅在当前窗口生效
echo ‘LANG="zh_CN.GB18030"‘ >/etc/sysconfig/i18n //永久生效
source /etc/sysconfig/i18n
echo $LANG


9.如何优化linux系统
a.最小化安装,配置yum源
b.禁止开机不需要启动的服务
c.优化内核参数/etc/sysctl.conf
d.增加系统文件描述符,堆栈等配置
e.禁止root远程登陆,修改ssh端口为特殊端口
f.有外网ip的机器要开启配置防火墙,仅对外开启需要提供的服务端口,配置或关闭selinux
g.清除无用的默认系统账户或组(非必需)
h.锁定敏感文件,passwd
i.配置服务器和互联网时间同步
j.配置sudo对普通用户权限精细控制
k.一键优化脚本,包括以上

10./etc/目录为linux系统的默认的配置文件及服务启动命令的目录
请做
a.请用tar打包/etc整个目录
b.请用tar打包/etc整个目录,但需要排除/etc/services文件
c.请把a点命令的压缩包,解压到/tmp指定目录下
tar zcvf etc.tar.gz /etc //打包之前先对该目录上级目录进行打包
tar zcvf etc.tar.gz /etc - -exclude=etc/services
解压 tar xf etc.tar.gz
还有一种打包方式 jcvf 解压时候 jxf
tar xf etc.tar.gz -C /home/start //指定地点解压
-t 只想看里面的内容但是不会解压
-p 保持属性
-X -- exclude =/etc/service
总结:
tar zcvf x p C --exclude -X j t //按照使用顺序
gzip
打包:zcvf zcf
解包:xf xvf zxvf
bzip
打包:jcvf jcf
解包:jxf jxvf
unzip 用于解win32 zip 包 解压rar包 http://oldboy.blog.51cto.com/2561410/597515
gzip 多用于mysql


11.把1.txt文件中的start working at 0000 中的0000和start列出来
cut -d" " -f1,3 1.txt //-d表示指定分隔符
cut -c 1-5,19- 1.txt //直接查字符
-f //echo "a/b/c" |cut -d ‘/‘ -f 1,执行结果是a。执行过程:先按/分段,分段后结果是:第一个字段是a,第2个字段是b,第3个字段是c,-f就是取第几个字段。
如果在start,working at 0000 ,难度变大
awk -F‘[ ,]‘ ‘{print$1""$3}‘1.txt //""是为了打印空格
$NR 可以替换$3 表示最后一列


12.wc 查看行数,字节数等命令 wc -l /etc/services
awk ‘{print NR}‘ /etc/passwd|tail -1
cat -n /etc/passwd |tail -1
grep -n $ /etc/services |tail -1
查看 wc -l 显示的行数 ps -ef|grep ssh|wc -l 看这个进程有没有活着 ps -aux 也可以
ps -e -o "%c : %p : %z :a"|sort -k5 -nr|head -10
查看进程所占内存排行
ps -eo pid,args,psr //查看进程在哪个cpu上运行
ps -e -o "%c : %p : %z :a" |sort -nr //查看cpu的利用率
ps -eo "%p %c %t" //查看进程运行了多长的时间
ps: 进程查询命令
ps -a 显示多有运行在终端上的进程
-x 显示运行在后台的进程
-u 显示进程的拥有者
-f 显示进程的详细信息
-o 特殊参数的指定,加多条特殊参数用“,” 隔开参数后面所加的特殊参数
%cpu 显示cpu信息
pid 进程pid
comn 进程的命令名称
user 进程的拥有者
state 进程的状态
tty 进程运行的终端
euser 进程的有效账户
ruser 进程的真实账户


13.过滤出/etc/services 文件包含3306或1521两数字的行的内容
egrep "3306|1521" /etc/services
grep -E "3306|1521" /etc/services

 

 

二、第2段

1.如何把1.txt中的rw-r--r--转换成数字
 

[[email protected] ee]# stat 1.txt
File: `1.txtSize: 4096 Blocks: 8 IO Block: 4096 directory
Device: 802h/2050d Inode: 651644 Links: 2
Access: (0755/drwxr-xr-x) Uid: ( 501/ k) Gid: ( 501/ k)
Access: 2016-06-27 02:27:07.124006306 -0700
Modify: 2016-06-27 02:27:07.124006306 -0700
Change: 2016-06-27 02:32:01.369006582 -0700
You have new mail in /var/spool/mail/root

法一:
|| 1.txt|cut -c 2-10|tr rwx- 4210|awk‘{for(i=1;i<=length($1);i++){s=substr($1,i,1);print s" "}}‘|awk ‘{print$1+$2+$3+$4+$5+$6+$7+$8+$9}‘
法二:
stat /etc|sed -n ‘4p‘|cut -d "/" -f1|cut -d "(" -f2 //先取行在取列
法三:(这种思路值得借鉴,考虑命令的自带功能)
stat -c %a 1.txt
法四:
stat 1.txt|sed -n 4p //取第四行 head -4|tail -1
stat 1.txt|sed -n 4p|cut -d"(" -f2|cut-c 1-4 //取列
法五:
stat 1.txt|sed -n 4p|awk -F "/" ‘{print $1}‘|awk -F "(" ‘{print $2}‘
awk的多分割符的功能
awk -F ‘[(/]‘ ‘{print $2}‘ //以(和/为分割符
注意awk -f ’[ :]+‘ ‘{print $1}‘ //中括号里面的空格冒号代表在一行中, ttg SD GRF: ttg代表第一段, SD代表第二段 GFR代表第三段
相关博文:http://oldboy.blog.51cto.com/2561410/950730

2.echo用法复习 

[[email protected] ~]$ echo -n"dce";echo "dede"
-ndce
dede
[[email protected] ~]$ echo -n "dce";echo "dede"
dcedede
[[email protected] ~]$ echo -ne "dce\t";echo "dede"
dce dede

 

3.date命令
 

[[email protected] ~]$ date +%y-%m-%d
16-06-29
[[email protected] ~]$ date +%Y-%m-%d
2016-06-29
[[email protected] ~]$ date +%F
2016-06-29
[[email protected] ~]$ date +%Y-%m-%d\ %H:\%M:%S
2016-06-29 09:28:30
[[email protected] ~]$ date +%Y-%m-%d\ %T
2016-06-29 09:28:30
date+%w //显示周 
[[email protected] ~]# date -s "2016-06-30 00:37:00"
Thu Jun 30 00:37:00 PDT 2016
[[email protected] ~]# date
Thu Jun 30 00:37:09 PDT 2016 //通过clock -w 写在shell脚本里,但是该方法不够稳定,时间有时候会不准
/usr/sbin/update pool.ntp.org
[[email protected] ~]# date +%F --date "-3day"
2016-06-27
[[email protected] ~]# date +%F\ %T --date "-3hour"
2016-06-29 22:00:39
[[email protected] ~]# date +%F\ %T --date "-3min"
2016-06-30 00:57:53

 

4.备份神器 cp /etc/hosts /etc/hosts.carlton.$(date +%F)


5.空格的过滤方法
sed ‘/^$/d‘ 1.txt
grep -v "^$" 1.txt


6.寻找cat的路径
where is cat
which cat
 

以上是关于学习记录001-007-阶段习题小结的主要内容,如果未能解决你的问题,请参考以下文章

节小结和习题课

软件工程综合实践阶段小结

小结(练习题)

JS阶段学习----问题小结

Ofbiz项目学习——阶段性小结——删除数据

Ofbiz项目学习——阶段性小结——服务返回结果