(2012-10-05 更新) 小蛙在使用Linux的時候一路走來始終如一,始終如一的是跌跌撞撞,一些很基本的指令紀錄一下,遇到什麼就記什麼,下次要查找也會比較方便。雖然有-h, –help, 或是man可以查找,不過總還是覺得麻煩 …

建立捷徑

# 於現在位置中建立一個名為www的捷徑,捷徑目的地為/var/www
ln -s /var/www/ www

查看目前時間

date

校正時間

ntpdate time.stdtime.gov.tw

設定時區

dpkg-reconfigure tzdata

查找檔案內容

# 此目錄下所有檔案及子目錄
grep -ir "要查找的內容" *
 
# 上面的方法可能會遇到某些非文字檔造成的錯誤,可改成下面這種
find ./ -name "*.jsp" -exec grep -H "theWordIWant" {} \;
 
# 說明
#./  ->  搜尋的目錄
#-name "*.jsp"  ->  要搜尋的檔案類型
#-exec grep -H "theWordIWant" {} \;  ->  theWordIWant 換成要搜尋的字串,其他的照打就好

進入設定crontab

crontab -e

查找檔案

# 如果很久沒更新或是找不到可以先更新
updatedb
# locate 檔名
locate  php.ini

打包指令(壓縮)

# 純打包不壓縮
# tar cvf 壓縮擋名稱 要壓縮的檔案或目錄
tar cvf test.tar ./*
 
# 解開打包
# tar xvf 打包檔名稱
tar xvf test.tar
 
# 使用 gzip 壓縮
# tar zcvf 壓縮檔名稱 要壓縮的檔案或目錄
tar zcvf test.tar.gz ./*
 
# 解壓縮 gzip
# tar xvf 壓縮檔名稱
tar xvf test.tar.gz

打包指令(bz2壓縮)

# 使用 bz2 壓縮
# tar -jpcv -f 壓縮檔名稱 要壓縮的檔案或目錄
tar -jpcv -f /root/tt.tar.bz2 /root
 
# 使用 bz2 壓縮(略過某些目錄或檔案)
# tar -jpcv -f 壓縮檔名稱 要壓縮的檔案或目錄 --exclude=要略過的檔案
tar -jpcv -f /root/tt.tar.bz2 /root/Dropbox
 
# 使用 bz2 解壓縮
# tar -jxv -f 壓縮檔名稱 -C 解壓縮到
tar -jxv -f tt.tar.bz2 -C /root
 
# 查看打包檔案
tar -jtv -f /root/etc.tar.bz2

壓縮 / 解壓縮指令(unzip)

# 要先安裝 unzip
sudo apt-get install unzip
 
# 壓縮
zip Filename.zip a.txt b.txt c.txt
 
# 解壓縮
unzip Filename.zip -d directory

查看資料夾使用大小(以MB表示)

# du -sm

查看已安裝套件

# dpkg --get-selections | grep mariadb*

刪除 n 天前檔案

參考資料:http://linux.vbird.org/linux_basic/0220filemanager.php#find

# find -mtime +1 -exec rm {} \;

安裝 bash 自動補齊工具

# apt-get install bash-completion
# source /etc/profile

將使用者預設 shell 改成 bash (使用者自行登入設定)

$ chsh
Password:
Changing the login shell for hans
Enter the new value, or press ENTER for the default
        Login Shell [/bin/sh]: /bin/bash
// 重新登入即可

將使用者預設 shell 改成 bash (系統使用者設定)

# vim /etc/passwd
// 找到要修改的帳號,把 /bin/sh 改成 /bin/bash
wazai:x:0000:0000::/home/wazai:/bin/bash

修改使用者建立目錄時的預設權限

# umask
0002
 
# umask 022
# umask
0022

使用指令透過 SSH 上傳檔案

# scp abc.txt [email protected]:/home/abc/

濾出 ps -aux 中的特定欄位

grep “” 查找字串
awk ‘{print $2}’ 印出第二個欄位 pid,前面加上 kill -9 $()就可以刪除該 process (第二行)
(參考來源: Stack Overflow)

# ps aux | grep "[j]ava -Xms32m -Xmx1024m" | awk '{print $2}'
# kill -9 $(ps aux | grep "[j]ava -Xms32m -Xmx1024m" | awk '{print $2}')

計算路徑中檔案數或目錄數

參考來源: 精讚部落

計算檔案
# ls -l  |grep "^-"|wc -l
 
計算目錄
# ls -l  |grep "^d"|wc -l

在檔案最下方加入一行文字

# echo "123" >> file

加入一行文字在檔案最上方 – prepend

參考來源: Stack Overflow

# echo "text" | cat - yourfile > /tmp/out && mv /tmp/out yourfile

儲存與回復 iptables 規則

將 iptables 儲存到檔案 (/etc/iptables.rules 可更換目錄及檔案)
# iptables-save > /etc/iptables.rules
# vim /etc/rc.local
 
編輯開機檔案,讓 ubuntu 一啟動就還原 iptables
iptables-restore < /etc/iptables.rules
exit 0

curl 使用

curl -m 3 -s -o /dev/null http://www.google.com.tw/
# -m 執行時間, -s 不顯示連線資訊, -o 輸出到檔案 (輸出到 /dev/null 意思是不顯示網頁內容)
  
curl -o index.html http://www.google.com.tw/
# 把結果輸出到檔案 index.html 中
  
curl -x proxy.xxx.ooo -i http://www.google.com.tw/
# 使用 proxy
# -i 取得 response header
# -v 取得所有過程
# -D filename 把 cookie 另存新檔
# -b filename 透過指定的 cookie 連線
# -A "xxxxx" 加入 user-agent 資訊
# -e "xxxxx" 設定 referrer
# 更詳細使用可參考 http://blog.masterstudio101.com/2013/05/12/cURL%20%E6%8C%87%E4%BB%A4%E6%95%99%E5%AD%B8%20(cURL%20command%20how-to)

查看檔案個數

# 顯示檔案數目
ls -laR |grep "^-" |awk 'END{print "Number of files:"NR}'
  
# 顯示目錄數目
ls -laR |grep "^d" |awk 'END{print "Number of directories:"NR}'

使用 SCP 傳輸檔案

# 發送本機檔案 filename 到遠端 remote 伺服器路徑 /home/ooo/ 中
scp filename [email protected]:/home/ooo/
  
# 把遠端 /home/ooo/filename 檔案複製到 ./ 目前路徑
scp [email protected]:/home/ooo/filename ./
# 多個檔案或資料夾要加入 -r, 如果使用特殊 port 可加上 -P 1234

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *