sort、dirname、添加环境变量、修改主机名、别名IP、静态路由
1.split-按照指定行数或大小分割文件
-l:指定行数 -a:指定文件后缀长度 -d:使用数字作为后缀 -b:指定大小 # 以10行为单位对文件进行分割 split -l 10 /etc/inittab new_ split -l 10 -a 4 /etc/passwd new_ split -l 10 -d /etc/passwd new_
2.sort-让重复的行相邻,默认按照ascii码升序排列
-n:按照数值排列 -r:逆序 -t:指定分隔符,默认是空格 -k:指定区域 -u:unique,唯一的,即将全文重复的行压缩为一行
3.其他处理文本命令
# uniq:压缩相邻行,所以都是先用sort排序,再压缩,-c查看重复次数 dos2unix:将windows上的文件转为linux格式,windows换行符\r\n, linux换行符\n,一般会把从windows上拿到linux上的脚本进行转换. diff:查看两个文件的不同; # tr:translate替换,-d删除内容中的字符; tee:既显示执行结果也可以把结果保存到文件. ls|tee -a >/tmp/ls.txt
4.basename、dirname、file、md5sum
basename /home/data/stuhehe_1.jpg # 获取文件名 dirname /home/data/stuhehe_1.jpg # 获取目录路径 file filename # 查看文件类型 md5sum stuhehe_1.jpg > md5.log md5sum计算和校验文件的md5值 echo "asdasda" >> stuhehe_1.jpg # -c校验,防止文件损坏或被篡改 md5sum -c md5.log stuhehe_1.jpg: FAILED md5sum: WARNING: 1 of 1 computed checksum did NOT match
5.添加环境变量
export PATH=$PATH:/root # 暂时生效 # 修改文件中PATH一行,对当前用户永久生效 vim ~/.bash_profile # 修改 /etc/profile 文件,在文件末尾加上如下两行代码,对所有系统用户永久生效 PATH=$PATH:/usr/local/bin export PATH # 最后执行命令 source /etc/profile # 或执行点命令,使修改生效 . /etc/profile
6.date用于打包
date +%y-%m-%d date +%Y-%m-%d 完整显示年份 date +%F 显示年月日 date +%H:%M:%S date +%X 显示时分秒 date +%Y-%m-%d\ %H:%M:%S # 相当于 date +%Fd\ %X date +%Fd\ %T # 当前时间加一天 date +%F -d "+1day" date +%F -d "+24hour" tar zcf a_`date +%F`.tar.gz a tar zcf a_$(date +%F).tar.gz a
7.paste-左右方向合并两个文件
# -d:指定分隔符 # -s:后面跟一个文件时,将会把竖着的数据横着显示 案例:把一个文件的奇数行跟偶数行分别对应,中间用=连接 cat hehe.txt 111111 aaaaaa 222222 bbbbbb 333333 cccccc paste -sd '=\n' hehe.txt 111111=aaaaaa 222222=bbbbbb 333333=cccccc 说明: paste -s hehe.txt 111111 aaaaaa 222222 bbbbbb 333333 cccccc paste -sd '=' hehe.txt # 指定一个分隔符时 111111=aaaaaa=222222=bbbbbb=333333=cccccc paste -sd '=#' hehe.txt # 指定两个分隔符时 111111=aaaaaa#222222=bbbbbb#333333=cccccc 所以我们可以把第二个分隔符换成\n. # sed模式空间 sed 'N;s#\n# #g' hehe.txt
8.权限
# 某用户对某文件有读写权限,能不能删除或修改文件,取决于该文件上级目录的权限; # 默认权限是安全界限的临界点,工作中尽量给这个临界点,或者小于临界点. groupadd incahome useradd oldboy -g incahome usermod -g incahome oldboy
9.定时任务
创建定时任务相当于在编辑这个文件 cat /var/spool/cron/root * 23,00-07/1 * * * /bin/bash /usr/loacl/nginx/restart.sh 上面的例子并不表示晚上23点和早上0-7点之间每隔一小时重启nginx,因为第一列你写了* 想要每分钟都执行这个脚本,第一列应该写00
10.inode被填满的企业案例:
centos5 sendmail临时队列目录 /var/spool/clientmqueue centos6 postfix临时队列目录 /var/spool/postfix/maildrop 执行定时任务时默认会给root发邮件,如果邮件服务不开就会把邮件发到上述目录; 当定时任务结尾不加>/dev/null 2>&1的时候,上述目录就会存在大量小文件; 解决办法: a.开启邮件服务(一般不会这么做); b.在定时任务后面加上输出重定向. 删除小文件的办法: cd /var/spool/postfix/maildrop;ls|xargs rm -f 使用top发现一个进程占用CPU高,使用命令strace -f pid,追踪分析原因.
11.centos下使用dig命令
yum -y install bind-utils dig @8.8.8.8 www.baidu.com +trace # 使用命令解析域名 nslookup host ping
12.centos6修改主机名的规范步骤
a.hostname b.vi /etc/sysconfig/network c.vi /etc/hosts # 如果用setup--DNS设置修改主机名,则永久生效(命令行不生效) # 只是修改了两个文件,还得用hostname修改一下
13.linux网卡支持多个ip地址
# 别名IP,也称虚拟IP ifconfig eth0:0 192.168.165.7/24 up # 网卡后面冒号跟的数字范围0-254 ifconfig eth0:0 down # 用ip这个命令添加: ip addr add 192.168.165.8/24 dev eth0:1
14.已知一个端口,查看端口对应的服务
lsof -i :22 netstat -tunlp | grep 22 t:TCP, u:UDP, n:NUMBER, l:LIST, p:程序名
15.添加静态路由
ip10.10.10.10/24,网关10.10.10.1,需要增加路由:到网段192.168.0.0/24,通过ip10.10.10.2出去 route add default gw 10.10.10.1 route add -net 192.168.0.0/24 gw 10.10.10.2