Linux + Shell bash / sh / ksh / csh / tcsh

來源:互聯網
上載者:User
文章目錄
  • 出自Ubuntu中文

Redhat Gnome Terminal 快速鍵

http://huangchao200701.javaeye.com/blog/263002

 

 

常用
win+n切換背景顏色風格
alt+tab=不用說了。
win+tab若開3D效果了切換
ctrl+alt+backspace=相當於強制登出
ctrl+alt+del=調出關機菜單
ctrl+alt+l=鎖定案頭

ctrl+alt+d=最小化gnome所有視窗
ctrl+alt+f2=linux終端使用者(alt + f7返回xwindows,alt+ <- 或-> 進行終端切換)
ctrl+alt+ <- 或-> =切換案頭

終端快速鍵
tab=補全
ctrl+a=開始位置
ctrl+e=最後位置
ctrl+k=刪除此處至末尾所有內容
ctrl+u=刪除此處至開始所有內容
ctrl+d=刪除當前字母
ctrl+w=刪除此處到左邊的單詞
ctrl+y=粘貼由ctrl+u,ctrl+d,ctrl+w刪除的單詞
ctrl+r=正在測試,還沒弄明白,呵呵。
ctrl+l=相當於clear
ctrl+b=向回移動
ctrl+f=向前移動
ctrl+p=向上顯示緩衝命令
ctrl+n=向下顯示緩衝命令
ctrl+d=關閉終端
shift+上或下=終端上下滾動
shift+pgup或pgdown=終端上下翻頁滾動
ctrl+shift+f=全屏(僅限於konsole)
ctrl+shift+n=新終端(terminal 和konsole有所不同)
ctrl+c=終止

以下為網上的快速鍵列表

開啟主菜單 = Alt + F1
運行 = Alt + F2
顯示案頭 = Ctrl + Alt + d
最小化當前視窗 = Alt + F9
最大化當前視窗 = Alt + F10
關閉當前視窗 = Alt + F4
截取全屏 = Print Screen
截取視窗 = Alt + Print Screen

預設特殊快速鍵
展示所有視窗程序 = F10
展示當前視窗最上層程式 = F11
展示當前視窗所有程式 = F12
切換視窗 = Alt + Tab
旋轉3D案頭 = Ctrl + Alt + 左/右箭頭(也可以把滑鼠放在標題列或案頭使用滾輪切換)
旋轉3D案頭(使用中視窗跟隨) = Ctrl + Shift + Alt + 左/右箭頭
手動旋轉3D案頭 = Ctrl + Alt + 左鍵單擊並拖拽案頭空白處
視窗透明/不透明 = possible with the “transset” utility or Alt + 滾輪
放大一次 = 超級鍵 + 右擊
手動放大 = 超級鍵 + 滾輪向上
手動縮小 = 超級鍵 + 滾輪向下
移動視窗 = Alt + 左鍵單擊
移動視窗時貼住邊框 = 左鍵開始拖動後再 Ctrl + Alt
調整視窗大小 = Alt + 中擊
Bring up the window below the top window = Alt + middle-click
動態效果減速 = Shift + F10
水紋 = 按住 Ctrl+超級鍵
雨點 = Shift-F9
案頭展開= Ctrl + Alt + 下箭頭,然後按住 Ctrl + Alt 和左/右箭頭選擇案頭

 

shell

http://baike.baidu.com/view/849.htm

在電腦科學中,Shell俗稱殼(用來區別於核),是指“提供使用者使用介面”的軟體(命令解析器)。

它類似於DOS下的command.com。

它接收使用者命令,然後調用相應的應用程式。

同時它又是一種程式設計語言。

作為命令語言,它互動式解釋和執行使用者輸入的命令或者自動地解釋和執行預先設定好的一連串的命令;

作為程式設計語言,它定義了各種變數和參數,並提供了許多在高階語言中才具有的控制結構,包括迴圈和分支。

在C++中,Shell是希爾排序的名稱。

基本上shell分兩大類:

一:圖形介面shell(Graphical User Interface shell 即 GUI shell)

Windows Explorer

X windows manger (BlackBox和FluxBox)和CDE、GNOME、KD、 XFCE等

二:命令列式 shell(Command Line Interface shell ,即CLI shell)

『Unix/linux 系統』bash / sh / ksh / csh / tcsh

      Bourne shell (包括 sh, ksh, and bash)

  Bourne shell ( sh)
Korn shell ( ksh)
Bourne Again shell ( bash)
POSIX shell ( sh)
C shell (包括 csh and tcsh)
C shell ( csh)
TENEX/TOPS C shell ( tcsh)
Bourne Shell

各主要作業系統下預設的shell:

AIX 下是Korn Shell.

Solaris 和FreeBSD 預設的是Bourne shell.
HP-UX 預設的是POSIX shell.
Linux 是Bourne Again shell.

『MS-DOS 系統』COMMAND.COM

『Windows NT 系統』 cmd.exe

『支援 .NET Framework 技術的 Windows NT 系統』Windows PowerShell

Shell也是一個VB函數,它的作用是運行程式,文法是Shell(命令字串[,視窗類別型])

Linux shell 編程系列

http://www.ibm.com/developerworks/cn/linux/shell/index.html#firstmajorhead

Shell 介紹
Bash
awk
sed
Vi、Emacs
Shell 提示

Shell 變數

HISTFILESIZE 與 HISTSIZE 的區別

http://www.linuxeden.com/forum/viewthread.php?tid=159573

兩個變數和命令的 history 記錄有關.

HISTFILESIZE 定義了在 .bash_history 中儲存命令的記錄總數.
HISTSIZE 定義了 history 命令輸出的記錄數.
HISTTIMEFORMAT 則定義了執行命令的時間格式, 典型的配置 是 '<%F %T>: '
改變數生效後, history 的輸出將格式化為:

1052  <2007-10-08 10:13:02>: history

其中   <2007-10-08 10:13:02> 是 history 命令的執行時間.

 

/etc/profile、~/.bash_profile等幾個檔案的執行過程

http://blog.chinaunix.net/u2/61187/showart_1189840.html
執行順序為:

/etc/profile -> (~/.bash_profile | ~/.bash_login | ~/.profile) -> ~/.bashrc ->          /etc/bashrc -> ~/.bash_logout

 

開發人員行走Unix的隨身四藝

http://weiruan85.javaeye.com/blog/333202

VI+文本處理+Bash Shell 編程+Make or AutoMake

附錄A:我的VI易忘命令手冊
上下左右:
ctrl+u/d 上下半屏,ctrl+f/b,上下一屏
H/G螢幕頭/文章末 ,0/$ 行首行末

增刪改:
yy/dd 複製/刪除 一行,p/P:將yy/dd的內容paste出來
I/A 在行首/末添加, o/O 開新行,d0/d$ 刪除到行首,行末
u:undo

查:
? 向前尋找, n/N 重複上一次尋找

附錄B: 文本處理命令小結
awk:處理結構化的文本(每行以固定符號分成若干列),提取列印某些欄位,如:
ls -l|awk '{print $1}'  --將ls-l結果的第一列列印出來
awk -F":" '{print $1"  "$6}' /etc/passwd ,將以:分割的/etc/passwd檔案的第1,6列列印出來,中間以空格分開
詳見IBM DW中國的AWK執行個體(共3篇) 或 Bash新手指南中文版第6章。

grep:過濾,大家用得最多的命令,支援Regex。參數有: http://www.hudong.com/wiki/grep
-i忽略大小寫,-n顯示line number,-c 統計在每個檔案的出現次數,-l只顯示符合的檔案的名字。

grep (global search regular expression(RE) and print out the line,全面搜尋Regex並把行列印出來)

sed:流編輯器,主要用於替換,如:
sed -e '1,10s/foo/bar/g' myfile2.txt 將1到10行的文本中的foo 替換成bar,s代表替換,g代表全域替換
支援正則的替換字串,可以只替換某個範圍內的內容。
用法不算簡單,詳見IBM DW中國的Sed執行個體(共3篇)或 Bash新手指南中文版第5章。

sort:排序,參數有:
-r逆序, -n 數字比較 , -M 日曆比較 Feb,Dec, -f 忽略大小寫
同樣支援結構化檔案,如
sort -t : -k 1,1 /etc/passwd,以: 分割,只按第1列排序
sort -t : -k 1,1 -k2.2,3.4 /etc/passwd ,以:分割,先按第1列排序,再按第2列的第二個字元到第3列的第4個字元排序。

uniq:去除重複行。
除了正常用法外,還有-c統計重複次數,和-u (唯一)和 -d (重複)兩個參數,只顯示唯一的和重複的行。

wc: 統計。
-l 行,-m 字元,-w 單詞

附錄C: 我的automake1.9步驟小結
先編寫MakeFile.am
運行autoscan,產生configure.scan
修改configure.scan,同時把檔案改名為configure.in :
去除AC_CONFIG_HEADER([config.h])那行
加入AM_INIT_AUTOMAKE([1.9 foreign])  (其中1.9是automake的版本號碼)
加入AC_PROG_LIBTOOL  (如果用libtool的話)
檢查AC_CONFIG_FILES,如果之前沒有先寫齊所有MakeFile.am,autoscan就不會幫你加入,需要自己手工補充。
libtoolize (如果用libtool的話)
aclocal
autoconf
automake --add-missing
./configure
make

大家需要編寫的檔案從Makefile轉為了Makefile.am 和configure.in, ACE的Examples是很好的參考。

 

 

vi入門

https://www6.software.ibm.com/developerworks/cn/education/linux/l-vi/tutorial/index.html

shell指令碼自動重新啟動已停止/僵死的Apache的httpd進程

http://community.itbbs.cn/showthread.php?t=12955

http://bash.cyberciti.biz/web-server/restart-apache2-httpd-shell-script/

[PPT,PDF] Bash Shell 編程基礎

http://www.openbsdonly.org/download/file.php?id=67

http://bbs.chinaunix.net/viewthread.php?tid=994745

 

http://wiki.ubuntu.org.cn/Shell編程基礎

http://www.linuxsir.org/main/doc/abs/abs3.7cnhtm/index.html

Shell編程基礎出自Ubuntu中文

本文作者:Leal

授權許可:

  • 創作共用協議
  • GNU自由文檔許可證

編輯人員:FireHare, Dbzhang800

目錄

[隱藏 ]

  • 1 基本格式

    • 1.1 合理使用注釋
    • 1.2 變數賦值和引用
  • 2 Shell裡的命令
    • 2.1 Unix 命令
    • 2.2 概念: 管道, 重新導向和 backtick
  • 3 Shell裡的流程式控制制
    • 3.1 if 語句
    • 3.2 && 和|| 操作符
  • 4 case 語句
    • 4.1 select 語句
    • 4.2 while/for 迴圈
  • 5 Shell裡的一些特殊符號
    • 5.1 引號
    • 5.2 Here documents
  • 6 Shell裡的函數
  • 7 命令列參數
  • 8 Shell指令碼樣本
    • 8.1 一般編程步驟
    • 8.2 二進位到十進位的轉換
    • 8.3 檔案迴圈拷貝
  • 9 指令碼調試

<script type="text/javascript"><!-- --></script>

[編輯 ] 基本格式

我們可以使用任意一種文字編輯器,比如nedit、kedit、emacs、vi等來編寫shell指令碼,它必須以如下行開始(必須放在檔案的第一行):

# !/bin/sh

...

符號#!用來告訴系統執行該指令碼的程式,本例使用/bin/sh。編輯結束並儲存後,如果要執行該指令碼,必須先使其可執行:

chmod +x filename

此後在該指令碼所在目錄下,輸入 ./filename 即可執行該指令碼。

[編輯 ] 合理使用注釋

shell 指令碼中以# 開始的行表示注釋,直到該行的結束。我們強烈建議你在指令碼中進行適當/合理的注釋,這樣一來,即便你在相當長時間內沒有使用該指令碼,也能在短時間內就明白它的作用和工作原理。此外,還有一個很重要的原因是,在注釋的協助下,別人可以快速有效分享你的指令碼,並提出自己的意見和改進。

 

Linux Shell注釋符號 >>># 或 !

 

取自"http://wiki.ubuntu.org.cn/index.php?title=Shell%E7%BC%96%E7%A8%8B%E5%9F%BA%E7%A1%80&variant=zh-cn " man

http://www.lovetech.cn/2007/05/1.html

 

ubuntu 完美man

1.添加庫函數手冊
ubuntu預設是沒有安裝c語言的庫函數man手冊的,所以你在man perror 和sendto之類的函數時會顯示沒有相關文檔的問題,這個問題讓我鬱悶了我好久。解決方案:
sudo apt-get install manpages-dev

2.讓man顯示中文
ubuntu源裡面已經包含了中文的man包,所以不用從其他地方down了,直接
sudo apt-get install manpages-zh
但是這樣man預設顯示的還不是中文,還需要以下兩步
a.把中文man包轉換成utf8格式的
建立一個指令檔
gedit t.sh
把下面內容添加進去
#!/bin/bash

cd /usr/share/man/zh_CN/
for k in *
do
cd $k
for i in *.gz
do
j=`echo ${i%.gz}`
gunzip $i
iconv -f gb18030 -t utf8 $j >tmp
mv tmp $j
gzip $j
done
cd ..
done
然後
sudo ./t
b.修改man預設的語言
sudo gedit /etc/manpath.config
把裡面的所有的 /usr/share/man 改成 /usr/share/man/zh_CN
儲存後退出,然後你再試一下man ls

3.讓沒有中文協助的顯示英文
做完上面第二部還不夠,這時你再man 一下一些c語言函數(不要用printf,socket之類比較有名的函數,這些已經有中文協助了)的時候就會發現竟然沒有協助,而剛才明明在第一步已經安裝了啊。這是因為你上面 把/usr/share/man 改成 /usr/share/man/zh_CN的操作使man只在中文協助中搜尋,如果沒有就直接放棄,因此還需要以下操作,才能讓man在沒有中文協助的時候自動顯示英文的協助,如果英文的也沒有,哪就真的沒有了。
sudo gedit /etc/manpath.config
然後搜尋你剛才改過的地方,然後在其後面添加同樣的一行,只是後面的目錄還用原來的 /usr/share/man,比如在修改後的
MANPATH_MAP /bin /usr/share/man/zh_CN
再添加一行
MANPATH_MAP /bin /usr/share/man

參考: http://csf.swfc.edu.cn/phpbb/viewtopic.php?p=6684

再多嘮叨一句:man顯示的函數只有枯燥的用法,看起來不是很爽,在此推薦一個查c語言函數的網站 http://www.cplusplus.com/ ,上面有每個函數的用法以及執行個體。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.