蒐集一些好用卻又常忘記的linux指令
linux command
| 指令 |
释意 |
df -h |
看硬碟所剩容量 |
du -h |
看目錄所佔硬碟空間大小 |
| `ls -lA |
grep ^d |
| `find ./ -type f |
wc -l` |
| `find ./ -type f -name *.jpg -size 0 |
wc -l` |
find ./ -name "*.txt" -exec grep -H "main" {} ; |
同上,加上-exec執行grep,找有"main"的檔案. 分號前面有反斜線,斜線前面要有空格. find找到的檔名會帶入{}處,給grep去用,-H是印出檔名的意思. 給grep的參數到";"處為止. |
| `find . -name '.php' -not -path ".//*" |
xargs wc -l` |
find -type f -size 0 -delete |
加上-delete可把特定條件檔案刪掉! |
grep -H "main" file.txt |
找檔案內容含有main的地方 |
| `ls -R /.mat |
wc -l` |
rm -r */*.mat |
可以刪除幾層資料夾以下的特定檔案 |
screen -d -r |
叫回之前在別的登入用的視窗 |
screen -ls或screen -list |
列出目前screen session |
screen -S session_name -X kill或quit |
關掉指定的session, 或是直接到上面list出的session放置處刪除session file |
ln -s 被連結檔名 捷徑檔名 |
生成一個symbolic link |
cat file1 file2 > file3 |
把file1跟file2的內容接起來,存到file3 |
scp source destination |
用ssh copy檔案 source and dest could be user@host:~/xxx/ or user@host:/tmp2/xxx/ |
sftp user@host |
secure ftp連線, 連上後put,上傳get下載,lls,local端ls |
wget -O local_path remote_http_path |
從remote_http_path下載檔案存到local_path |
wget -c path |
支援續傳(第一次下載跟續傳下載都要加-c) |
nautilus . |
檔案總管(搭配Xming使用) |
dpkg-deb -x [filename.deb] [target folder] |
得到compile好的deb package |
dpkg -l |
列出機器上安裝的package |
chsh |
改變預設shell,可以是/bin/bash or /bin/tcsh |
bind '"e[A":history-search-backward' |
|
bind '"e[B":history-search-forward' |
在.bashrc中加入, 可用上下鍵搜尋開頭字相同的歷史指令 |
bindkey -k up history-search-backward |
|
bindkey -k down history-search-forward |
在.cshrc中加入,可以上下鍵搜尋開頭字相同的歷史指令 |
vim -X 不要搜尋X server,啟動vim速度較快
vim command
| 指令 |
释意 |
Ctrl+W+W |
切換視窗 |
:split 檔案名 |
開新視窗 |
/ |
搜尋 |
G |
遊標移到檔案結尾 |
gg |
遊標移到檔案開頭 |
:diffsplit |
把視窗切成上下 並比較兩個檔案 遊標會移動 用紅色標出不一樣之處 |
Ctrl+V |
Column Mode選取 |
Shift+i |
Column Mode Insert,此時只會顯示改一行,但是按下esc,就會全部都改了! |
:%s/abc/def/g |
把abc置換為def |
u |
Undo |
Ctrl+r |
Redo |
set pastetoggle= |
在vimrc中寫這行,之後貼上時,進入insert mode,按下f2便可切換是否要auto-indent |
:e ++enc=utf-8 myfile.txt |
更換編碼方式 |
screen command
| 指令 |
释意 |
Ctrl+a+數字 |
切換視窗 |
Ctrl+a+c |
開新視窗 |
Ctrl+a+[ |
進入copy mode,可往上看log, 按q可離開copy mode |
Ctrl+a+a+command |
兩層screen的視窗的操作 |
git command
| 指令 |
释意 |
git status |
目前狀況 |
git add |
加入檔案 |
git commit |
commit file |
git push |
push到遠端 |
git pull |
從遠端pull |
git remote add origin ssh://user@host:22/~/xxx.git |
加入遠端host |
git init |
建立local端空repository |
git init --bare |
建立遠端空repository |
git clone ssh://user@host:22/~/git/xxx.git |
git clone with ssh |
git mv a.txt b.txt |
rename file(git will also do mv in fs) |
git mergetool |
開啟內建mergetool |
git rm --cached filename |
remove file from git without delete it |
git submodule init (enter) git submodule update |
clone含有submodule的project時使用這兩個command, submodule相關可參考這裡 |
git config core.sharedRepository group |
在remote設定這項,之後push可確保group writable |
~/project $ git init
~/project $ git add .
~/project $ git commit -m "first commit"
~/project $ cd ~/Dropbox/git
~/Dropbox/git $ git init --bare project.git
~/Dropbox/git $ cd ~/project
~/project $ git remote add origin ~/Dropbox/git/project.git
~/project $ git push -u origin master
git local tips
ssh免密碼方法
在工作站執行一次下面兩行指令($代表提示字元, [ENTER]代表按enter鍵)
$ ssh-keygen -t rsa [ENTER]
Enter file in which to save the key (/home/ta/.ssh/id_rsa): [ENTER]
Enter passphrase (empty for no passphrase): [ENTER]
Enter same passphrase again: [ENTER]
$ cat .ssh/id_rsa.pub > .ssh/authorized_keys
壓縮 解壓縮
| 释意 |
指令 |
| 解壓縮 tar.gz |
tar -zxvf filename.tar.gz |
| 解壓縮 tar.gz裡的檔案xxx/abc.jpg 放到指定資料夾cde |
tar zxvf filename.tar.gz -C cde/ xxx/abc.jpg --strip-components=1 (意思是去掉"xxx/abc.jpg"之前"1"個資料夾的) |
| 壓縮 tar.gz |
tar -zcvf filename.tar.gz /folder |
| 解壓縮 tar.bz2 |
tar -jxvf filename.tar.bz2 |
| 壓縮 tar.bz2 |
tar -jcvf filename.tar.bz2 /folder |
| 解開 .tar |
tar -xvf filename.tar |
| 打包 .tar |
tar -cvf filename.tar /folder |
| 解壓縮 gz |
gunzip filename.gz (解完gz檔會消失) |
| 壓縮 gz |
gzip filename.xxx (只能壓單檔,壓完原始檔會消失) |
| 解壓縮 zip |
unzip filename.zip |
| 壓縮 zip |
zip filename.xxx /folder |
| 解壓縮 rar |
unrar x filename.rar |
| 壓縮 7z |
7za a filename.7z /folder/ |
| 解壓縮 7z |
7za x filename.7z |
| 壓縮 rar |
rar a filename.rar folder/ |
| 解壓縮 rar,並放到target_folder |
rar x filename.rar target_folder/ |
| 解壓縮 rar,不管裡面路徑,並放到target_folder |
rar e filename.rar target_folder/ |
| 解壓縮 tar.xz |
xz -d filename.tar.xz |
自動更新ip位置
| 指令 |
释意 |
dhclient -r |
釋放IP |
dhclient |
更新IP |
noip2 |
no-ip的update程式 |
Dropbox使用注意事項
~/.dropbox-dist/dropboxd dropbox服務程式
~/bin/dropbox dropbox控制interface,可看dropbox help有指令說明
目前裝在cml10 一定要dropbox執行的機器改檔案才會sync
| 指令 |
释意 |
dropbox_ch_LANG |
要把語言設好 不然執行會error |
dropbox exclude add |
加ignore目錄,似乎要給絕對路徑才會成功 |
chmod o+rx ~/Dropbox |
Dropbox預設權限是700,若要link到apache,要開權限 |
google drive sync (use grive)
| 指令 |
释意 |
grive -a |
在要sync的資料夾中執行此行, 加入帳號 |
grive |
在要sync的資料夾中執行此行,就開始sync,會跑很久 |