linux 101 hacks command

來源:互聯網
上載者:User

原文連結

巧用cd命令: 
1:用 CDPATH 來定義你的cd 命令的 根目錄 
例:如現在不再/etc下 
export CDPATH=/etc 
cd mail 
將會進入到 /etc/mail 目錄下 
這樣我們就可以在我們自己的home 目錄下的.bash_profile檔案裡 加上 export CDPATH=path,這樣我們就可以把自己一個常用的目錄定為我們的cd的起始目錄 

2:對於很深的目錄,如果想返回上一級或上兩級 或多級, 敲入很多http://www.cnblogs.com/......等會很麻煩,我們可以在.bash_profile裡加上 
alias ..="cd .." 
alias ..2="cd ../.." 
alias ..3="cd http://www.cnblogs.com/.." 
alias ..4="cd http://www.cnblogs.com/../.." 
alias ..5="cd http://www.cnblogs.com/http://www.cnblogs.com/.." 
這樣我們就可以用 ..5放回到上5級的目錄。 
當然這裡你可以用任意的形式定義別名, 如用 cd2="cd ../..",或 cd...="cd ../.."等等。 
這樣我們就可以使用我們自訂的“快速鍵”了。 

3:一個命令解決建立目錄 && 進入此目錄 
$ vi .bash_profile 
function mkdircd () { mkdir -p "$@" && eval cd "/"/$$#/""; } 
我們就可以用此自製的mkdircd命令實現目的了。 

4:cd - 可以返回我們上一次到過的目錄, 這樣我們就不會為錯誤的輸入而跳出很深的目錄而懊惱了。而不用去用上下鍵 或 history去找上次的命令了。 

5:popd , pushd , dirs : 
pushd:把當前的目錄 入棧 
popd : 把當前的目錄 出棧並進入該目錄 
dirs:列出棧中的目錄。 

6:用“shopt -s cdspell” 糾正你的輸入錯誤 
現在sh下敲入以上命令, 若你想進入/tmp目錄 而錯誤的敲為了cd /temp ,則自動回糾正你的錯誤(當然這裡假設你沒有/temp這個目錄),也可以試試別的拼字錯誤的情況。

 

日期操作: 
1:設定日期 
date {mmddhhmiyyyy.ss} 
mm – Month 
dd – Date 
hh – 24 hour format 
mi – Minutes 
yyyy – Year 
ss – seconds 
如:# date 013122192009.53 
也可以用以下的形式: 
# date +%Y%m%d -s "20090131" 
# date -s "01/31/2009 22:19:53" 
# date -s "31 JAN 2009 22:19:53" 
# date set="31 JAN 2009 22:19:53" 
只設定時間: 
# date +%T -s "22:19:53" 
# date +%T%p -s "10:19:53PM" 

2:察看 硬體時間 
用 hwclock 
修改硬體時間: 
# hwclock –systohc 
# hwclock --systohc –utc 
察看系統設定 
# cat /etc/sysconfig/clock 

3:設定日期格式 
o %D date (mm/dd/yy) 
o %d day of month (01..31) 
o %m month (01..12) 
o %y last two digits of year (00..99) 
o %a locale’s abbreviated weekday name (Sun..Sat) 
o %A locale’s full weekday name, variable length (Sunday..Saturday) 
o %b locale’s abbreviated month name (Jan..Dec) 
o %B locale’s full month name, variable length (January..December) 
o %H hour (00..23) 
o %I hour (01..12) 
o %Y year (1970…) 
舉例如: 
$ date 
Thu Jan 1 08:19:23 PST 2009 
$ date --date="now" 
Thu Jan 1 08:20:05 PST 2009 
$ date --date="today" 
Thu Jan 1 08:20:12 PST 2009 
$ date --date='1970-01-01 00:00:01 UTC +5 hours' +%s 
18001 
$ date '+Current Date: %m/%d/%y%nCurrent Time:%H:%M:%S' 
Current Date: 01/01/09 

4:得到過去時間 和 將來的時間 
過去時間: 
$ date --date='3 seconds ago' 
Thu Jan 1 08:27:00 PST 2009 
$ date --date="1 day ago" 
Wed Dec 31 08:27:13 PST 2008 
$ date --date="1 days ago" 
Wed Dec 31 08:27:18 PST 2008 
$ date --date="1 month ago" 
Mon Dec 1 08:27:23 PST 2008 
$ date --date="1 year ago" 
Tue Jan 1 08:27:28 PST 2008 
$ date --date="yesterday" 
Wed Dec 31 08:27:34 PST 2008 
$ date --date="10 months 2 day ago" 
Thu Feb 28 08:27:41 PST 2008 
將來時間: 
$ date 
Thu Jan 1 08:30:07 PST 2009 
$ date --date='3 seconds' 
Thu Jan 1 08:30:12 PST 2009 
$ date --date='4 hours' 
Thu Jan 1 12:30:17 PST 2009 
$ date --date='tomorrow' 
Fri Jan 2 08:30:25 PST 2009 
$ date --date="1 day" 
Fri Jan 2 08:30:31 PST 2009 
$ date --date="1 days" 
Fri Jan 2 08:30:38 PST 2009 
$ date --date="2 days" 
Sat Jan 3 08:30:43 PST 2009 
$ date --date='1 month' 
Sun Feb 1 08:30:48 PST 2009 
$ date --date='1 week' 
Thu Jan 8 08:30:53 PST 2009 
$ date --date="2 months" 
Sun Mar 1 08:30:58 PST 2009 
$ date --date="2 years" 
Sat Jan 1 08:31:03 PST 2011 
$ date --date="next day" 
Fri Jan 2 08:31:10 PST 2009 
$ date --date="-1 days ago" 
Fri Jan 2 08:31:15 PST 2009 
$ date --date="this Wednesday" 
Wed Jan 7 00:00:00 PST 2009

 

1:查看ssh版本 
ssh -V 
OpenSSH_3.9p1, OpenSSL 0.9.7a Feb 19 2003   這個為 openSSh 
ssh: SSH Secure Shell 3.2.9.1 (non-commercial version)...   這個為ssh2 

2:用username 登陸 hostname 上  
ssh -l username hostname 

3:察看用戶端 調試 資訊: 
ssh -v -l username hostname 
(加上 小寫 -v就可以看到了) 

4:用 ~ and Control-Z 切換ssh 登陸 
當用ssh 登陸到遠程伺服器後, 可以在sh 裡面輸入 ~ 和 ctr+z (當你先輸入 ~時,不能立即看到輸入的這個符號) 
這樣你就把 遠程登陸的 session 切換成 後台執行 ,jobs命令可以查看,用 fg %1 再把它切換回來。

 

1:grep command 
# grep search_word filename 
-v  不顯示符合的行 
-c 出現的次數 
-r 在檔案夾裡面找 
-i 忽略大小寫 
-l 顯示合格 檔案名稱 

2:find command 
find path -name filename  以檔案名稱尋找 
-type 
-size (+100m:大於100m的) 
-mtime (+60)  60天內未改動的  -2 2天內改動過的 
-exec 找出來以後執行之後的命令 
# find / -type f -name *.tar.gz -size +100M -exec ls -l {} /; 
# find / -type f -name *.tar.gz -size +100M -exec rm -f {} /; 

3:抑制標準輸出 
> /dev/null 
抑制 錯誤 輸出 
2 >/dev/null 

4:join 串連兩個檔案 
5:改變檔案內容的大小寫  tr a-z A-Z < filename  (小寫到達寫) 

6:Xargs Command 
Xargs 把前一個命令的輸出 當作後一個的輸入 
# find /etc -name "*.conf" | xargs ls –l  列出在。。。下 的符合。。。的檔案 
cat url-list.txt | xargs wget –c  一個檔案裡有你的url列表,你可以用這個一次下載下來 
# find / -name *.jpg -type f -print | xargs tar -cvzf images.tar.gz  找出所有jpg檔案打包 

7:Sort Command 
以文本形式排序 
sort filename 
-r 倒序 
$ sort -t: -k 2 names.txt   -t(緊跟分隔字元) -k(第幾個域) 
-u 排除重複項 

8:Uniq Command 
經常與sort一起排除重複的 
sort namesd.txt | uniq 
uniq -c 顯示出現的次數 
uniq -d 只顯示重複了的 

9:Cut Command 
只顯示檔案的某一列 
$ cut -d: -f 1,3 names.txt 以 : 分隔的檔案 顯示第一個 第三個 field 
$ cut -c 1-8 names.txt  顯示檔案的每一行的前8個字元 
cut -d: -f1 /etc/passwd Displays the unix login names for all the users in the system. 

10:Stat Command 
顯示某個檔案或檔案夾的屬性 
stat /etc/my.cnf 
-f 某個檔案系統的屬性 

11:Diff Command 
diff [options] file1 file2 

12:ac Command 
ac   統計使用者的串連的統計時間 
-p 每個人的總時間 
-d username 某個使用者的時間

 

1:zip command 
文法: zip {.zip file-name} {file-names} 
-r zip一個目錄 
-{1..9} 1:fast  9:best default : 6 
-P pwd 密碼  (會顯示 密碼) 
-e pwd(密碼不會回顯) 
-t 驗證一個zip檔案 

2:unzip 
-v 察看解壓詳細過程 
-l 之查看其內容 而不解壓 

3:tar command 
文法: 
Syntax: tar [options] [tar-archive-name] [other-file-names] 
options: 
c  建立一個tar檔案 
v verbose mode, 
f 制定壓縮的檔案名稱 
t:察看tar檔案內容 
x:解壓 

z:使用在.gz檔案的情況下 
gzip比bzip快 , 而bzip比gzip壓縮率大 
j:使用在.bz2檔案的情況下

 

1:PS1 - Default Interaction Prompt 
export PS1="/u@/h /w> " /u使用者名稱,/h 主機名稱 /w 當前路徑 , 如在home目錄下,則顯示~ 
/t 時間 , /@  12小時形式的時間  $kernel_version kernel 版本號碼, 
2:PS2 - Continuation Interactive Prompt 
命令太長了,你要換一行輸入的話就要用這個 / ,寫在行尾,然後enter後預設提示為 >(這就是ps2) 
export PS2="continue-> " 可以改變 為 continue-> 

3:PS3 - Prompt used by “select” inside shell script 

4:PS4 - Used by “set -x” to prefix tracing output 
在shell的debug模式下(set -x 進入debug),的提示 
o $0 - indicates the name of script 
o $LINENO - displays the current line number within the script 

5:PROMPT_COMMAND 
shell 在顯示ps1以後,就會執行 PROMPT_COMMAND. 

6:改變ps1的提示顏色 
$ export PS1="/e[0;34m/u@/h /w> /e[m " 
/e[  彩色提示 開始 
x;ym 顏色值 
/e[m 彩色提示 結束 
顏色表如下: 
Black 0;30 
Blue 0;34 
Green 0;32 
Cyan 0;36 
Red 0;31 
Purple 0;35 
Brown 0;33 

7:改變提示的背景顏色 
/e[{code}m  /e[m  code:40-47 

 

1:HISTTIMEFORMAT command: 
在命令列裡面顯示 定義了HISTTIMEFORMAT 的話 , 在使用history命令時就會顯示制定格式的執行命令的時間 
export HISTTIMEFORMAT=’%F %T ‘  %F 年月日 %T 時分秒 

history n 顯示最近 n個命令 

在命令列裡面 按 ctrl+R 會顯示 reverse-i-search 的提示,可以尋找相關的使用過的命令,找到以後可以編輯這個命令 

在命令列下,輸入以下命令,都會執行上一次的命令: 
!! 
!-1 
向上箭頭 然後 enter 
按 ctrl+P  然後enter 

!n 執行 history裡第n條記錄的命令 
!prex 執行 以 prex為首碼 的最近一條命令 

HISTSIZE = n 
HISTFILESIZE =n限制 history的大小 

~/.bash_history history儲存在這個檔案裡 

HISTFILE=/root/.commandline_warrior 把history儲存在commandline_warrior 檔案裡 

export HISTCONTROL=ignoredups 去掉history裡面連續重複的命令 
export HISTCONTROL=erasedups 去掉history裡面所有重複的命令 

export HISTCONTROL=ignorespace 使用者在命令 前 輸入一個空格,然後history裡面就看不到這個命令了 

history -c 清楚之前的記錄 

export HISTSIZE=0 限制history命令的使用 

HISTIGNORE 忽略某些命令 (參數嚴格一致) 
例如:export HISTIGNORE=”pwd:ls:ls –ltr:”忽略pwd , ls , ls -ltr

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.