学习记录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.txt‘
Size: 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

时间: 2024-10-21 01:42:32

学习记录001-007-阶段习题小结的相关文章

Java学习记录(补充一(以习题为主:判断,循环语句))

习题1:取一个四位数,求各个位数数字的和package Day2; import java.util.Scanner; public class Demo01 { public static void main(String[] args){ Scanner in = new Scanner(System.in); System.out.println("请输入你的卡号"); int cardNum = in.nextInt(); // 1234 int i1 = cardNum %

中医学习记录001——《四圣心源》

<四圣心源>是清·黄元御撰写于1753年的医书,又名<医圣心源>.作者将黄帝.岐伯.秦越人.张仲景视为医中四圣.本书阐发<内经>.<难经>.<伤寒论>.<金匮要略>诸书蕴义,卷一天人解:卷二六气解:卷三脉法解:卷四劳伤解:卷五至卷七杂病解:卷八七窍解:卷九疮疡解:卷十妇人解.是一部包括中医基本理论和部分临床医学的综合性著作. <四圣心源>阐发<内经>.<难经>.<伤寒论>.<金匮要

JavaScript学习记录day9-标准对象

JavaScript学习记录day9-标准对象 [TOC] 在JavaScript的世界里,一切都是对象. 但是某些对象还是和其他对象不太一样.为了区分对象的类型,我们用typeof操作符获取对象的类型,它总是返回一个字符串: typeof 123; // 'number' typeof NaN; // 'number' typeof 'str'; // 'string' typeof true; // 'boolean' typeof undefined; // 'undefined' typ

MyBatis 学习记录5 MyBatis的二级缓存

主题 之前学习了一下MyBatis的一级缓存,主要涉及到BaseExecutor这个类. 现在准备学习记录下MyBatis二级缓存. 配置二级缓存与初始化发生的事情 首先二级缓存默认是不开启的,需要自己配置开启. 如上图,需要在configuration里去开启. 其次在需要用到二级缓存的Mapper的配置里做一些操作,如下图,增加一个cache节点 至此就可以在UserMapper上开启二级缓存了. 当MaBatis初始化的时候,需要解析各种XML配置来生成SQLSessionFactory,

Python学习记录day6

Python学习记录day6 学习 python Python学习记录day6 1.反射 2.常用模块 2.1 sys 2.2 os 2.3 hashlib 2.3 re 1.反射 反射:利用字符串的形式去对象(默认)中操作(寻找)成员 cat commons.py #!/usr/bin/env python#_*_coding:utf-8_*_''' * Created on 2016/12/3 21:54. * @author: Chinge_Yang.''' def login(): pr

C++学习记录贴2

static_cast 该运算符把expression转换为type-id类型,但没有运行时类型检查来保证转换的安全性. C++中的static_cast执行非多态的转换,用于代替C中通常的转换操作.因此,被做为显式类型转换使用.比如: int i; float f = 166.71; i = static_cast<int>(f); 此时结果,i的值为166. reinterpret_cast 是C++里的强制类型转换符. 主要是将数据从一种类型的转换为另一种类型.所谓"通常为操作

ObjectARX2010 学习笔记001:在新数据库中创建直线并将此数据库保存成DWG文件

static void swtArxProject5createLine(void) { // Add your code for command swtArxProject5.createLine here //创建新的CAD数据库 AcDbDatabase *pDb=new AcDbDatabase(); //定义块表指针 AcDbBlockTable *pBlkTbl; //获取块表 pDb->getSymbolTable(pBlkTbl,AcDb::kForRead); //定义块表记录

【iScroll源码学习01】准备阶段 - 叶小钗

[iScroll源码学习01]准备阶段 - 叶小钗 时间 2013-12-29 18:41:00 博客园-原创精华区 原文  http://www.cnblogs.com/yexiaochai/p/3496369.html 主题 iScroll HTML JavaScript ① viewport相关知识点(device-width等) ②  CSS3硬件加速 ③ 如何暂停CSS动画 ④ e.preventDefault导致文本不能获取焦点解决方案 ...... 当然,我们写的demo自然不能和

Java 学习路线之四个阶段

写这篇总结,主要是记录下自己的学习经历,算是自己对知识的一个回顾.也给想要学习 Java 的提供一些参考,对于一些想要学习Java,又不知道从哪里下手,以及现在有哪些主流的 Java 技术.想必大家学习一门技术,前期都很想看到一些结果或成就,这样就比较容易激励自己学习下去,最好的办法就是实践,实践,实践!先说明一下我的情况,我是从大二才开始接触 Java,然后自己摸索,期间真是摸打滚爬过来的.选的是计算机专业,大一的时候还没有自己的笔记本,所以都是听课过来的,了解了一些概念性的东西,课上老师也有

caffe学习记录

在深度学习零率,caffe是一个非常高效的的图像处理框架,结合了nvidia的cuda,cudnn加速技术,非常适合进行AI CNN方向的图像分类,回归,分割等. 但是由于caffe的教程较少,而且配置比较复杂,可能用的人没有tf那么广泛. 昨天在Ubantu14.04上配置了caffe, CUDA8.0, Cudnn5.1等,从今天开始进行caffe的学习记录总结. 跑完make all runtest后,如果运行成功,表示caffe环境配置好了. 首先测试一下minist60000+1000