Linux ssh 常用命令
自動啓動
/etc/rc.d/rc.local
crontab
/sbin/service crond start //啓動服務
/sbin/service crond stop //關閉服務
/sbin/service crond restart //重啓服務
/sbin/service crond reload //重新載入配置
命令
crontab -u //設定某個用戶的cron服務,一般root用戶在執行這個命令的時候需要此參數
crontab -l //列出某個用戶cron服務的詳細內容
crontab -r //刪除某個用戶的cron服務
crontab -e //編輯某個用戶的cron服務
基本格式 :
* * * * * command
分 時 日 月 周 命令
除了數字還有幾個個特殊的符號就是"*"、"/"和"-"、",",*代表所有的取值範圍內的數字,"/"代表每的意思,"*/5"表示每5個單位,"-"代表從某個數字到某個數字,","分開幾個離散的數字。
例子:
* */1 * * * /usr/local/etc/rc.d/lighttpd restart
每一小時重啓lighttpd
* 23-7/1 * * * /usr/local/etc/rc.d/lighttpd restart
晚上11點到早上7點之間,每隔一小時重啓lighttpd
0 11 4 * mon-wed /usr/local/etc/rc.d/lighttpd restart
每月的4號與每週一到週三的11點重啓lighttpd
目錄操作:
rm -rf mydir /*刪除mydir目錄*/
cd mydir /*進入mydir目錄*/
cd – /*回上一級目錄*/
cd .. /*回父目錄,中間有空格*/
cd ~ /*回根目錄*/
mv tools tool /*把tools目錄改名爲tool */
ln -s tool bac /*給tool目錄創建名爲bac的符號鏈接,最熟悉的應該就是FTP中www鏈接到public_html目錄了*/
cp -a tool /home/vpser/www /*把tool目錄下所有文件複製到www目錄下 */文件操作:
rm go.tar /* 刪除go.tar文件 */
find mt.cgi /* 查找文件名爲mt.cgi的文件 */
df –h /* 查看磁盤剩餘空間,好像沒這個必要,除非你太那個了 */
解壓縮:
tar xvf wordpress.tar /* 解壓tar格式的文件 */
tar -tvf myfile.tar /* 查看tar文件中包含的文件 */
tar cf toole.tar tool /* 把tool目錄打包爲toole.tar文件 */
tar cfz vpser.tar.gz tool /* 把tool目錄打包且壓縮爲vpser.tar.gz文件,因爲.tar文件幾乎是沒有壓縮過的,MT的.tar.gz文件解壓成.tar文件後差不多是10MB */
tar jcvf /var/bak/www.tar.bz2 /var/www/ /*創建.tar.bz2文件,壓縮率高*/
tar xjf www.tar.bz2 /*解壓tar.bz2格式*/
gzip -d ge.tar.gz /* 解壓.tar.gz文件爲.tar文件 */
unzip phpbb.zip /* 解壓zip文件,windows下要壓縮出一個.tar.gz格式的文件還是有點麻煩的 */
下載:
wget http://soft.vpser.net/web/nginx/nginx-0.8.0.tar.gz
/*下載遠程服務器上的文件到自己的服務器,連上傳都省了,服務器不是100M就是1000M的帶寬,下載一個2-3兆的MT還不是幾十秒的事 */
wget -c http://soft.vpser.net/web/nginx/nginx-0.8.0.tar.gz
/* 繼續下載上次未下載完的文件 */
轉載請註明出處:VPS偵探 http://www.vpser.net
進程管理:
ps -aux /*ps 進程狀態查詢命令*/
ps命令輸出字段的含義:
USER,進程所有者的用戶名。
PID,進程號,可以唯一標識該進程。
%CPU,進程自最近一次刷新以來所佔用的CPU時間和總時間的百分比。
%MEM,進程使用內存的百分比。
VSZ,進程使用的虛擬內存大小,以K爲單位。
RSS,進程佔用的物理內存的總數量,以K爲單位。
TTY,進程相關的終端名。
STAT,進程狀態,用(R–運行或準備運行;S–睡眠狀態;I–空閒;Z–凍結;D–不間斷睡眠;W-進程沒有駐留頁;T停止或跟蹤。)這些字母來表示。
START,進程開始運行時間。
TIME,進程使用的總CPU時間。
COMMAND,被執行的命令行。
ps -aux | grep nginx /*在所有進程中,查找nginx的進程*/
kill 1234 /*1234爲進程ID,即ps -aux 中的PID*/
killall nginx /*killall 通過程序的名字,直接殺死所有進程,nginx爲進程名*/
Vim操作:
移動類的:
h/j/k/l: 左/下/上/右 移一格
w : 向後詞移動 (前面加數字移動多少個詞)
b : 向前詞移動 (前面加數字移動多少個詞)
e : 向後移到詞末
ge : 向前移到詞末
$ : 行末
0 : 行首
tx : 向右查找本行的x並移到那兒(大寫時向左)
33G : 移到文件的第33行
gg : 文件首行
G : 文件尾行
33% : 文件的33%處
H/M/L : 屏幕的首/中/尾行
zt/zz/zb : 當前行移到屏幕的首/中/底部
跳轉:
” : 回到跳轉來的地方
CTRL-O : 跳到一個 “較老” 的地方
CTRL-I : 則跳到一個 “較新” 的地方
查找:
/ : 向下查找(後加關鍵字)
? : 向上查找(後加關鍵字)
n : 下一條符合的記錄
編輯:
i : 轉換到插入模式
x : 刪除當前字符
. : 重複最後一次的修改操作(同PS裏ctrl+f執行濾鏡)
u : 撤銷操作
CTRL-R : 重做
p : 將刪除的字符插入到當前位置(put)
退出保存:
:q : 退出
:q! : 不保存退出
ZZ : 保存後退出
:e! : 放棄修改重新編輯
掌握這些基本命令,Linux下的基本使用已經掌握,只要多加練習,多遇到問題,解決問題,能力就會不斷的提升。
精選37條強大的常用linux shell命令組合
任務 | 命令組合 | |
1 | 刪除0字節文件 | find . -type f -size 0 -exec rm -rf {} \; find . type f -size 0 -delete |
2 | 查看進程,按內存從大到小排列 | ps -e -o "%C : %p : %z : %a"|sort -k5 -nr |
3 | 按cpu利用率從大到小排列 | ps -e -o "%C : %p : %z : %a"|sort -nr |
4 | 打印說cache裏的URL | grep -r -a jpg /data/cache/* | strings | grep "http:" | awk -F'http:' '{print "http:"$2;}' |
5 | 查看http的併發請求數及其TCP連接狀態 | netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}' |
6 | sed在這個文裏Root的一行,匹配Root一行,將no替換成yes。 | sed -i '/Root/s/no/yes/' /etc/ssh/sshd_config |
7 | 如何殺掉mysql進程 | ps aux |grep mysql |grep -v grep |awk '{print $2}' |xargs kill -9 killall -TERM mysqld kill -9 `cat /usr/local/apache2/logs/httpd.pid` |
8 | 顯示運行3級別開啓的服務(從中瞭解到cut的用途,截取數據) | ls /etc/rc3.d/S* |cut -c 15- |
9 | 如何在編寫SHELL顯示多個信息,用EOF | cat << EOF +--------------------------------------------------------------+ | === Welcome to Tunoff services === | +--------------------------------------------------------------+ EOF |
10 | for的用法(如給mysql建軟鏈接) | cd /usr/local/mysql/bin for i in * do ln /usr/local/mysql/bin/$i /usr/bin/$i done |
11 | 取IP地址 | ifconfig eth0 |grep "inet addr:" |awk '{print $2}'|cut -c 6- ifconfig | grep 'inet addr:'| grep -v '127.0.0.1' |cut -d: -f2 | awk '{ print $1}' |
12 | 內存的大小 | free -m |grep "Mem" | awk '{print $2}' |
13 | 查看80端口的連接,並排序 | netstat -an -t | grep ":80" | grep ESTABLISHED | awk '{printf "%s %s\n",$5,$6}' | sort |
14 | 查看Apache的併發請求數及其TCP連接狀態 | netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}' |
15 | 統計一下服務器下面所有的jpg的文件的大小 | find / -name *.jpg -exec wc -c {} \;|awk '{print $1}'|awk '{a+=$1}END{print a}' |
16 | CPU的數量 | cat /proc/cpuinfo |grep -c processor |
17 | CPU負載 | cat /proc/loadavg |
18 | CPU負載 | mpstat 1 1 |
19 | 內存空間 | free |
20 | 磁盤空間 | df -h |
21 | 如發現某個分區空間接近用盡,可以進入該分區的掛載點,用以下命令找出佔用空間最多的文件或目錄 | du -cks * | sort -rn | head -n 10 |
22 | 磁盤I/O負載 | iostat -x 1 2 |
23 | 網絡負載 | sar -n DEV |
24 | 網絡錯誤 | netstat -i cat /proc/net/dev |
25 | 網絡連接數目 | netstat -an | grep -E “^(tcp)” | cut -c 68- | sort | uniq -c | sort -n |
26 | 進程總數 | ps aux | wc -l |
27 | 查看進程樹 | ps aufx |
28 | 可運行進程數目 | vmwtat 1 5 |
29 | 檢查DNS Server工作是否正常,這裏以61.139.2.69爲例 | dig www.baidu.com @61.139.2.69 |
30 | 檢查當前登錄的用戶個數 | who | wc -l |
31 | 日誌查看、搜索 | cat /var/log/rflogview/*errors grep -i error /var/log/messages grep -i fail /var/log/messages tail -f -n 2000 /var/log/messages |
32 | 內核日誌 | dmesg |
33 | 時間 | date |
34 | 已經打開的句柄數 | lsof | wc -l |
35 | 網絡抓包,直接輸出摘要信息到文件。 | tcpdump -c 10000 -i eth0 -n dst port 80 > /root/pkts |
36 | 然後檢查IP的重複數 並從小到大排序 注意 "-t\ +0" 中間是兩個空格,less命令的用法。 | less pkts | awk {'printf $3"\n"'} | cut -d. -f 1-4 | sort | uniq -c | awk {'printf $1" "$2"\n"'} | sort -n -t\ +0 |
37 | kudzu查看網卡型號 | kudzu --probe --class=network |