最近好久没有在这边写点东西了,最近项目比较忙,抽空把鸟哥私房菜看了一遍,记录了一些自己觉得比较重要的东西。- bash默认的组合键:Ctrl+S暂停屏幕输出;Ctrl+Q恢复屏幕输出
- 正确和错误的结果写到同一个文件中
- find /home -name .bashrc > list 2>list 错误
- find /home -name .bashrc > list 2>&1 正确
- find /home -name .bashrc &>list 正确
- 第一种由于两条数据同时写入一个文件,又使用特殊的语法,此时两条数据就有可能交叉
3. cut命令
- cut -d '分隔符' -f 第几份
- -c 字符范围
4. grep命令
- -n 顺便输出行号
- -c 统计出现的次数
- --color=aoto 输出颜色
5. sort命令
- -f 忽略大小写
- -b 忽略前面的空格
- -M 以月份来排序
- -n 使用存数字来排序
- -r 方向排序
- -u 相同的数据只出现一次
- -t 分隔符
- -k 以那个区间来进行排序
6. tr命令
- -d :删除信息中后面指定的字符
- -s : 替换连续出现重复的字符
7. join命令
- -t 默认以空格做为分隔符
- -i 忽略大小写差异
- -1 后面接数据代表第一个文件用哪个字段来分析的意思
- -2 代表第二个文件要用哪个字段来分析
8. paste
- -d :后面可以接分隔符
- - :如果file写成 - ;表示来自standard input的数据的意思
9. expand
- -t 后面可以接数字;表示一个tab键可以用多少个空格来替换
10. split
- -b:后面欲切割的文件大小,可加单位,例如b,k,m
- -l :以行数来进行切割
11、正则表达式
- 语序对正则表达式会有影响,不同的语序的编码数据并不相同,造成数据选取结果的区别;为了避免这些问题一般采用特殊的符号来处理
[:alnum:]代表大小写字符及数字
[:alpha:]代表任何英文大小写字符
[:upper:]大写字母
[:lower:]小写字母
[:digit:]数字
- *在通配符和正则表达式中是不一样的,通配符中代表任意(0个多个)字符。而在正则表达式代表钱一个RE字符有0个或者无穷多个
- sed命令
- 动作说明:[n1][,n2]
12、SHELL SCRIPT
- 利用直接执行方式来执行script,当子进程完成后,子进程内的各项变量或操作将会结束而不会传回到父进程中;利用source来执行脚本,在父进程中执行
14、Linu帐号管理与ACL权限设置
- 单纯使用"su"切换成root的身份,读取的变量设置方式为non-login shell的方式,这种方式下很多原本的变量不会被改变。所以若要用login shell登入要使用"su -"方式切换
- 修改/etc/sudoers用visudo命令来进行修改
- 实行单一工作调度at命令
- at 添加命令
- at -l相当于atq显示系统上面的所有该用户的at调度
- at -d相当于atrm,可以取消at调度中的工作
- at -c 列出后面接的该工作的实际命令内容
4. batch:系统有空的时候才进行后台任务:它会在CPU工作负载小于0.8的时候,才进行你所执行的工作任务
5. cron执行的每一项工作都会记录到/var/log/cron这个日志中
6. 修改/etc/crontab中的MAILTO=邮件帐号;从而来随时了解系统的状况;以及PATH中执行文件查找路径
7. anacron调用没有执行到的crontab任务,比如关机引起的,最小周期一天
8. top动态查看进程的变化
- -d 后面可以接秒数
- -b 以批次方式执行top,还有更多的参数可以使用
- -n 与-b 搭配,需要进行几次top的输出结果
- -p 查看某些个PID来进行检测而已
- 可以使用的按键命令:
- ? 显示在top当中可以输入的按键命令
- P:以cpu的使用资源排序显示
- M:以内存的使用资源排序
- N:以PID来继续宁排序
- T:以该进程使用的CPU时间累积排序
9.查找进程之间的相关性,使用pstree命令
10. 一般来说swap最好不要被使用,尤其swap最好不要被使用超过20%,如果发现swap使用超过20%说明物理内存已经不足
11. 编写相关软件可以利用/proc下面的相关文件
12. fuser:通过文件或者文件系统找出正在使用该文件的程序
- fuser -muv /proc 找到使用/proc这个文件系统的进程
- fuser -uv /var/gdm/.gdmfifo使用/var/gdm/.gdmfifo这个文件的进程
- fuser -ki /var/gdm/.gdfmfifo 对于kill掉使用/var/gdm/.gdmfifo这个文件的进程询问
13. lsof:列出被进程所打开的文件名
- -a :多项数据需要同时成立才能显示结果
- -U:仅列出Unix like系统的socket文件类型
- -u : 后面接username,列出该用户相关进程打开的文件
- +d: 后面接目录,即找出某个目录已经打开的文件
14. pidof :找出某个正在执行的进程的PID
15. daemon与服务
- stand_alone:此daemon可以自行单独启动服务
- super daemon:一个特殊的daemon来统一管理
- daemon的命名规则:一般来说daemon的进程都会在程序后面加一个d的字母
- /etc/services可以设置服务与端口号的对应
- 通常distribution都会记录一个daemon启动后所取得进程的PID并放在/var/run目录下;daemon相关文件放在:
- /etc/init.d/*: 启动脚本放置处
- /etc/sysconfig/*:各个服务的初始化环境配置文件
- /etc/xinetd.conf,/etc/xinetd.d/*:super daemon配置文件
- /etc/*:各个服务各自的配置文件
- /var/lib/*:各服务产生的数据库
- /var/run/*:各服务程序的PID的记录处
- stand alone 的/etc/init.d/*启动
16. ldd命令:这个命令可以查询某个程序的动态函数库支持状态
17. chkconfig:管理系统服务默认开机启动与否
- --list:仅将目前的各项服务状态栏显示出来
- --level:设置某个服务在该leval下启动或关闭
18. 日志文件
- /var/log/cron:crontab的日志
- /var/log/demsg:开机的时候内核检测过程所产生的各项信息
- /varlog/lastlog:记录系统上面所有帐号最近一次登入系统时的相关信息
- /var/log/mailog:记录邮件的往来信息
- /var/log/messagne:系统发生的错误信息或者重要信息都会记录在这个文件内
- /var/log/secure:只要涉及需要输入帐号密码的软件,当登入时都会有被记录在此文件
- /var/log/wtmp,/var/log/failog:记录正确登入系统者的账户信息与错误登入时所使用的账户信息
- /var/log/httpd/*,/var/log/news/*,/var/log/samba/*;记录它们自己的日志文件案来记载它们自己产生的各项信息
19.日志文件所需要的相关服务与进程
- syslogd:主要登入系统与网络等服务的信息
- klogd:主要登入内核产生的各项信息
- logrotate:主要进行日志文件的轮替功能
20.信息等级
- 1 info
- 2 notice
- 3 warning(warn)
- 4 err(error)
- 5 crit
- 6 alert
- 7 emerg(panic)
两个特殊的等级debug(错误检测等级)与none(不需要登录等级)
21. syslog的配置文件:/etc/syslog.conf可以用来配置定义自己的日志文件;syslog的日志文件只要"被编辑过"就无法继续记录,此时要重新启动syslog让它再继续提供服务才行
22 chattr +a /var/log/message 增加这个属性后只能让此文件新增,不能修改也不能删除移动;可以用lsattr /var/log/message查看此文件的属性
23. 日志服务器的设置:让某一台主机接收记录其他主机的日志信息
- 主机设置:修改SYSLOG_OPTIONS="-m 0"修改为SYSLOG_OPTIONS="-m 0 -r"
- 客户端设置;增加一句话 "." IP为日志服务器的IP
24. 日志文件的轮替(logrorate)
- 一个标准的配置
- /var/log/admin.log {
monthly #每个月进行一次
size=10M # 文件容量大于10M开始处理
rotate 5 #保留5
compress # 进行压缩
sharedscripts
prerotate
/usr/bin/chattr -a /var/log/admin.lo #准备备份前的准备工作
endscript
sharedscripts
postrotate
/usr/bin/chattr +a /varlog/admin.log #备份后的工作
endscript
25. run level 执行等级
# Default runlevel. The runlevels used by RHS are:
# 0 - halt (Do NOT set initdefault to this)
# 1 - Single user mode
# 2 - Multiuser, without NFS (The same as 3, if you do not have networking)
# 3 - Full multiuser mode
# 4 - unused
# 5 - X11
# 6 - reboot (Do NOT set initdefault to this)
26. 第一个init进程及配置文件/etc/inittab与runlevel
27. 利用/etc/rc.d/rc.sysyinit 这个文件来设置好整个系统环境
28. 用户自定义开机启动程序(/etc/rc.d/rc.local):在完成默认的runlevel指定的各项服务的启动后,可以设置继续执行的操作
29. lsmod 查看内核加载了多少个模块
30.modinfo 查阅内核内的模块外,查看了某个模块文件
31. 点用外部函数库:加入链接的函数库(gcc sin.c -lm -L/lib -L/usr/lib)
- lm可以拆开两部分来看:-l:是加入某个函数库,m:则是libm.so这个函数库,其中lib与扩展名(.a或者.so)不需要写
- -L/path加路径外部链接函数库的路径
- -I/path:设置要去搜索相关的include文件的目录
32. ldd可以知道某个二进制文件还有那些动态函数库
33.RPM查询
- ql:列出该软件所有的文件和目录所在的完整文件
- qR:列出与该软件有关的依赖软件所含的文件
- qf:由后面的文件密集那个找出该文件属于哪一个已安装的软件
34. RPM验证与数字证书
- -V:后面加的是软件名称,若该软件所含的文件被改动过,才会列出来
- -Va:列出目前系统上面所有可能被改动过的文件
- -Vp:后面加的是文件名称,列出该文件内可能被改动过的文件
- -Vf:列出某个文件是否被改动过
阅读(2049) | 评论(0) | 转发(0) |