常用shell笔记
一. vi 编辑文件
1. 删除字符:在只读模式下,X:大字的X,每按一次删除光标所在位置的前面一个字符;x:小写字母x 每按一次删除光标所在位置的后面一个字符
2. 进入编辑模式:i、a、o切换进入Insert mode (编辑模式)
3. 跳转到对应的行:
在Command mode (只读模式)下
shift+g 跳转到文件结尾
g + g 跳转到文件开头
:100 跳转到100行处
:/要查找的词 回车就会进入查找,按“n”查找下一个,按“N”查找上一个
4. 退出vi编辑:
按ESC进入到Command mode (只读模式)下
:q + 回车 没有修改文件的情况下退出
:q! + 回车 强制退出并放弃编辑的文件
:x + 回车 保存文件并退出编辑
:w 保存当前编辑文件,但并不退出, 而是继续等待用户输入命令, 在使用w命令时,可以再给编辑文件起一个新的文件名。
:w newfile 此时Vi将把当前文件的内容保存到指定的newfile中,而原有文件保持不变。若newfile是一个已存在的文件,则Vi在显示窗口的状态行给出提示信息: File exists (use ! to override) 此时,若用户真的希望用文件的当前内容替换newfile中原有内容,可使用命令 :w! newfile 否则可选择另外的文件名来保存当前文件
:w filename (输入“w filename”,将文件存入指定的文件名filename)
:wq (输入“wq”,因为进入之时已经指定文件名filename,所以会写入filename并离开vi)
二: crontab
crontab -l 查看crontab 列表
crontab -e 编辑crontab列表
crontab基本格式 :
* * * * * command
分 时 日 月 周 命令
eg:
30 21 * * * /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每晚的21:30重启apache
45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每月1、10、22日的4 : 45重启apache。
10 1 * * 6,0 /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每周六、周日的1 : 10重启apache。
* */1 * * * /usr/local/etc/rc.d/lighttpd restart
每一小时重启apache
* 23-7/1 * * * /usr/local/etc/rc.d/lighttpd restart
晚上11点到早上7点之间,每隔一小时重启apache
三:重启fastcgi
killall -9 php-fpm
/../sbin/php-fpm
四: nginx
1. 重启nginx: cd /nginx/sbin/ ./nginx -s reload
2. 查看nginx是否重启成功 : ps -ef | grep nginx
3. nginx修改超时时间:
vi /nginx/conf/nginx.conf
location /{
...
proxy_connect_timeout 6000;
proxy_send_timeout 6000;
proxy_read_timeout 6000;
send_timeout 6000;
...
}
五: 查找文件
find ./ name 查找文件
find ./test.php find ./test*
六:查询磁盘空间
df -h
du -h --max-depth=1
df-h
for i in $(ls -l |grep '^d' |du -s * |sort -nr|awk '{print $2}');do du -sh $i;done //查看当前目录下文件大小并排序
七:权限
mkdir /data/test/
chmod -R 777 /data/test/ 给test文件夹添加所有权限
八:解压7z压缩包
7za x {$up7zFile} -r -y -o{$tmp_name} //解压7z压缩包
九:表、数据库
1. 查看表结构:
show create table xxx;
desc xxx;
2. 查表数据:
show databases;
use xxx
show tables;\
select * from userinfo \G
十:文件上传下载
rz -ey -m 1024 //文件上传
sz xxx.js //文件下载
十一:查询位置
whereis php-fpm
十二:tail
tail命令用于输出文件中的尾部内容。
tail -2 xxx.php //查询xxx.php文件最后2行内容
tail -f xxx.php //时时输出xxx.php文件内容 相当于tailf xxx.php
十三: ps -ef
显示所有进程信息,连同命令行
十四:tcpdump网络抓包
tcpdump host test.xx.com -s 0 -w xxx.cap //网络抓包 host:请求地址, -s 0 :不限制大小,-w 抓包输出的文件, 用wireshark软件打开.cap文件查看详细请求信息
十五:curl 请求
curl 'url' //get 请求
curl -d 'a=b&aa=bb' 'url' //post请求
curl -H 'Content-Type:application/json' 'http://www.test.com' -d '{"a":"b","aa":"bb"}' //post 请求,传参为json格式
十六:删除文件夹
rm -r xxx