1.合并两个文件:cat file1, file2 > file3
2.清屏clear;客户端乱码时:reset;
3.查看用户登录日志:who -u /var/log/wtmp (也可以用last查看)
4.统计记录行数: wc -l
5.查找:find 路径 -name 文件/目录名
6.显示隐藏文件(.开头的文件一般会被隐藏):ls -al 或者直接 ll
7.查找rpm包安装路径 rpm -qlp xxx.rpm 或者rpm -ql xxx
查找已安装的rpm包:rpm -qa|grep xxx
查询一个已经安装的文件属于哪个软件包:rpm -qf 文件名
查看一下已安装软件所依赖的软件包及文件:rpm -qR 软件名
查看未安装rpm包的信息,只要在上面的命令中多加一个参数p,比如:rpm -qpR ***.rpm
8.在后台运行程序:后面加& 或者前面加 nohup
9.ll -t 按修改时间倒序 (ll --help 查看)
ll -rt 按修改时间正序
10.xargs用法:
ps -aux|grep "httpd"|grep -v "grep" |awk '{print $1}'|xargs kill 说明:把grep出来的结果,传给xargs执行kill操作;
11.下载:wget url 举例:wget url -O filename.htm
12.cat /proc/version 查看版本信息
cat /etc/issue 查看版本信息带有update信息
uname -a 查看所有系统信息
uname -r 查看kernel release
uname -v 查看kernel version
uname -p 查看处理器32位、46位
13.文件编码转换:iconv -c -f utf-8 -t gbk file 将utf8编码的转成gbk编码
14. 替换字符串:sed -i "s/zhangsan/lisi/g" `grep zhangsan -rl /modules`
15.tee [-ai][--help][--version][文件...] 读取标准输入的数据,并将其内容输出成文件
16. ls 2>&1 1>/dev/null 将错误信息输出到标准输出,将标准输出的其他信息输出到黑洞;
17. rpm 卸载 rpm -e xx --nodeps
18. 查看磁盘剩余空间: df -hl
19. sar -r -5 -10 表示监控内存,并且每5秒取一个结果,一共取10个结果,sar是监控所有进程的资源占用情况,如果需要个别进程,可以使用ps aux |grep 方式
20. top输出重定向有问题,无法重定向到文件
21. zcat part-r-0000.gz | head -n 100 > a
zcat可以在不解压的情况下扩展压缩包并讲内容输出到标准输出
18. chown -R admin:admin aaa/ 把aaa目录及目录下的所有文件修改为隶属于admin用户,admin租
19. 查看机器cpu:cat /proc/cpuinfo
20. 查看机器内存:free -m
21. top查看cpu、内存占用率时,shift+o可以选择排序方式,默认是按用户名排序的
23. 有sudo账号的情况下,想使用其他账号执行程序,比如想临时使用admin账号执行程序,可以这样:
sudo -u admin **.sh
想一直使用admin账号,可以用su更好账号:sudo su admin
退出使用exit
24. 查看当前系统在线用户情况: w 、 who ,查看自己登录名:whoami
25. dirname $PWD 查看当前目录的父目录
26. sort后面不加文件的情况,默认从标准输入传入数据,使用ctrl+d终止终端输入
27. cat file1 file2 > file3
28. cd - 返回到上次所在的目录
29. date -d"yesterday" +%Y%m%d 注意,+和%Y%m%d之间不能有空格
30. unzip可以解压jar文件,unzip aa.jar -d AA
31. 一个好用的for in 循环:
for i in {1..100}
do
.......
done
32.vim时查看文件的编码:set fileencoding
vim时转换文件的编码:set fileencoding=utf-8
33. sudo /sbin/ldconfig
命令解析:ldconfig是一个动态链接库管理命令
为了让动态链接库为系统所共享,还需运行动态链接库的管理命令--ldconfig
ldconfig 命令的用途,主要是在默认搜寻目录(/lib和/usr/lib)以及动态库配置文件/etc/ld.so.conf内所列的目录下,搜索出可共享的动态 链接库(格式如前介绍,lib*.so*),进而创建出动态装入程序(ld.so)所需的连接和缓存文件.缓存文件默认为 /etc/ld.so.cache,此文件保存已排好序的动态链接库名字列表.
ldconfig通常在系统启动时运行,而当用户安装了一个新的动态链接库时,就需要手工运行这个命令.
34.:
空命令[冒号]. 这个命令意思是空操作(即什么操作也不做). 它一般被认为是和shell的内建命令true是一样的。冒号":" 命令是Bash自身内建的,它的退出状态码是真(即0)。 1.可以用于注释: : ' code1 code2 code3 ' 2.表示true while : do operation-1 operation-2 ... operation-n done 等同于: while true do ... done 3.if/then结构中作占位符 if condition then : # 什么也不做的分支 else take-some-action fi 4.在必须要有两元操作的地方作为一个分隔符 |
: ${username=`whoami`}
# ${username=`whoami`} 如果没有开头的:,将会出错
# 除非"username"是一个外部命令或是内建命令...
描述:
采用读取每行的数据,再处理的方式
while read line
do
:
done<$file
问题:
但是出现一个问题:read line后line中的\t不见了,导致我awk处理时找不到\t,这时默认的分隔符是空格,可是数据本身也会有空格,就会混淆
原因:
查找后得知read line会过滤掉行首、行尾的空格、制表符等。
处理办法:
read -r line
yum install from list
需要使用-y参数
while read line
do
yum -y install $line
done
df -h 用m、g的数量级显示大小
du -h --max-depth=1 ./ 显示一级目录大小
重启crontab:
/etc/rc.d/init.d/crond restart
reloadcrontab
sudo /etc/init.d/crond reload
35./var/log/messages 可以查看用户sudo操作等信息
36.文件分割:split -b 12M filename 按大小分割
split -l 12000 filename 按行分割
合并:cat file1 >>file2
37.使用uniq时,文件编码与终端term编码必须一致,否则uniq无效;
38.有些应用,在rpm安装后,会自己启动。一般情况下是在/etc/rc.d/init.d/下安装一个脚本,这个脚本时被系统service调用的:如脚本名叫:ppp.sh
则service调用如下:service ppp.sh start
会传入参数的
39.如何修改机器名并生效
修改/etc/hosts
增加:10.232.128.86 kgbtest128086.sqa.cm4
执行hostname kgbtest128086.sqa.cm4
使用hostname或者uname -n 检查设置的hostname是否生效
40.curl、wget都可以指定host:
curl -H "Host:fortest.net" "http://192.9.100.10/index.php"
41.grep 输出匹配行的前后多行
grep -B1 -A2 "DMA" message.txt
42 . sed -i '12,15d' filename
删除12到15行
43.curlhttp://10.222.133.62/test.php-d "asfdasdfq3wfa42342"
使用curl模拟post方式发送数据
--data-binary <数据> 可以发送二进制数据
--data-urlencode <数据> 可以发送urlencode之后的数据
crontab的log:
/var/log/cron*
查看字符的十六进制编码:od
在vim查看十六进制编码:%!xdd
返回普通模式:%!xdd -r
二进制、八进制、十六进制:
http://longmans1985.blog.163.com/blog/static/70605475201152802851529/
大家在更新环境的时候查找线上地址,一般用grep '地址' -r * 的命令,这样对于压缩的js文件查找的时候就非常麻烦,打出一屏的地址;没法看出在哪个具体文件
没有效率;
解决的办法:grep -no '地址' -r *
-n参数是打印grep的地址所在行号
-o参数是去掉其他的内容只显示你grep的地址;
这样去找地址很方便,很有效率
怎样查找一个文件夹在哪个目录下
如果只显示所在目录的路径:
find 目录 -type d -name "查询目录名" -printf "%h\n"
如果同时显示目录名称和所在目录的路径:
find 目录 -type d -name "查询目录名" -printf "%p %h\n"
我们有时会用到测试机发送邮件的功能,但测试机器曾出现过不能发送邮件的情况,解决办法是把iptables关掉。 执行命令:/etc/init.d/iptables stop
分享几个shell命令另类用法:
1、快速备份文件
cp filename{,.back}
2、清空或创建一个文件
> 1.php
3、实时查看某个目录下最新改动过的文件
watch -d -n 1 'df; ls -FlAt /path'
4、查看被占用端口的进程
netstat -tulnp
5、切换回上一个目录
cat -