UNIX 快速入門指南

2018-12-09 15:25 更新

unix快速入門指南

什么是Unix?

UNIX操作系統(tǒng)是一組充當計算機和用戶之間的鏈接方案。

  • UNIX最初是于1969年在貝爾實驗室,包括肯·湯普森,丹尼斯里奇,道格拉斯·麥克羅伊,喬Ossanna一組AT&T員工的發(fā)展。

  • 有在市場上的各種Unix變種。Unix的的Solaris,AIX,HP Unix和BSD是幾個例子。Linux是Unix的同樣的味道這是免費提供。

  • 幾個人可以使用在同一時間UNIX計算機; 因此UNIX被稱為多用戶系統(tǒng)。

  • 用戶也可以運行在同一時間多個程序; 因此UNIX被稱為多任務處理。

登錄Unix的

您可以登錄到使用系統(tǒng)登錄命令如下-

login : amrood
amrood's password:
Last login: Sun Jun 14 09:32:32 2009 from 62.61.164.73
$

注銷

當您完成您的會話,你需要退出系統(tǒng),以確保沒有其他人訪問您的文件,而偽裝成你。

要注銷

  1. 只需鍵入注銷在命令提示符下命令,系統(tǒng)會清理一切,斷開連接

文件管理

在UNIX中有三種基本類型的文件 -

  1. 普通文件列表:一個普通的文件是包含數(shù)據(jù),文本或程序指令在系統(tǒng)上的一個文件。在本教程中,你看與普通文件的工作。

  2. 目錄:目錄同時存儲特殊和普通文件。對于熟悉Windows或Mac OS用戶,UNIX目錄等同于文件夾。

  3. 特殊文件:一些特殊文件提供訪問硬件,如硬盤,CD-ROM驅(qū)動器,調(diào)制解調(diào)器和以太網(wǎng)適配器。其他特殊文件類似于別名或快捷方式,使您可以使用不同的名稱來訪問一個文件。

文件名替換

命令描述
ls - [L]列表文件在當前目錄
ls - [L]列出隱藏文件
?主目錄
?user另一個用戶的主目錄
?外卡,匹配單個字符
*外卡,多個字符匹配

文件名操作

命令描述
cat 文件名
顯示文件內(nèi)容
cp 源文件路徑復制源文件到目的地
mv 舊名字 新名字移動(重命名)使用oldName為newname。
rm文件名刪除(刪除)文件名
chmod NNN文件名更改權限
touch 文件名更改修改時間
ln [-s] 舊文件名 新文件名創(chuàng)建于使用oldName軟鏈接
ls -F顯示有關文件類型的信息。

目錄管理

命令描述
mkdir 目錄名創(chuàng)建一個新的目錄目錄名
rmdir 目錄名刪除現(xiàn)有的目錄,只要它是空的。
cd 目錄名將目錄更改為目錄名
cd -切換到上次工作目錄。
cd?切換到主目錄
pwd顯示當前的工作目錄。

環(huán)境設置

當您在命令提示符下鍵入的任何命令,外殼具有定位命令可以執(zhí)行前。在PATH變量指定在該外殼應該尋找命令的位置。

PS1和PS2變

該殼顯示器作為命令提示被存儲在變量PS1的字符。

當您發(fā)出一個命令,是不完整的,外殼會顯示一個提示繼發(fā),等待你來完成命令和命中再次輸入。默認的次級提示是>(大于號),但可以通過重新定義PS2 shell變量被改變 -

轉(zhuǎn)義字符

轉(zhuǎn)義序列描述
\t當前時間,表現(xiàn)為HH:MM:SS。
\d當前日期,表示為工作日月日
\n新隊。
\s當前shell環(huán)境。
\W工作目錄。
\w工作目錄的完整路徑。
\u當前user.s用戶名。
\h目前該機的主機名。
\#當前命令的命令編號。隨著每一個新的命令增加輸入。
\$如果有效UID是0(也就是,如果你以root身份登錄),結束與#字符的提示; 否則,使用$。

環(huán)境變量

以下是重要的環(huán)境變量的部分列表。這些變量將被設置和如上所述訪問 -

變量描述
DISPLAY包含針對X11程序應該是默認使用顯示器的標識符。
HOME表示當前用戶的主目錄:對于內(nèi)置命令光盤中的默認參數(shù)。
IFS指示所使用的解析器膨脹之后字分割內(nèi)部字段分隔符。
LANGLANG擴展到默認的系統(tǒng)區(qū)域設置; LC_ALL可用于覆蓋。舉例來說,如果它的值是PT_BR,然后將語言設置為(巴西),葡萄牙語和語言環(huán)境到巴西。
LD_LIBRARY_PATH在一個動態(tài)鏈接許多Unix系統(tǒng),包含Exec之后建立的過程圖像時,在任何其他目錄中搜索前的動態(tài)鏈接程序應搜索共享對象目錄的冒號分隔的列表。
PATH指示命令的搜索路徑。這是目錄中的外殼看起來的命令的冒號分隔的列表。
PWD指如設置由cd命令的當前工作目錄。
RANDOM生成每次引用在時間0和32,767之間的隨機整數(shù)。
SHLVL每個bash的實例啟動時遞增之一。這個變量是用于確定內(nèi)置退出命令是否結束當前會話有用。
TERM指的是顯示類型
TZ指的時區(qū)。它可以像數(shù)值GMT,AST等。
UID擴展為當前用戶的數(shù)字用戶ID,在shell啟動初始化。

過濾器和管道

命令描述
WC [-l]字/行計數(shù)
tail [-n]顯示從文件最后n行
sort [-n]排序行

pr -t

多列輸出
grep “模式”文件名搜索使用grep模式
pg or more分頁文件內(nèi)容顯示。

特殊變量

變量描述
$0當前腳本的文件名。
$n這些變量對應于與一個腳本被調(diào)用的參數(shù)。這里的n是對應于一個參數(shù)的位置(第一個參數(shù)是$ 1,第二個參數(shù)是$ 2,依此類推)的正十進制數(shù)。
$#供應給腳本的參數(shù)數(shù)目。
$*所有參數(shù)都是雙引號。如果腳本接收到兩個參數(shù),$ *等于$ 1 $ 2。
$@所有參數(shù)單獨雙引號。如果腳本接收到兩個參數(shù),$ @相當于$ 1 $ 2。
$?最后一個命令的退出狀態(tài)執(zhí)行。
$$當前shell的進程號。對于shell腳本,這下,他們正在執(zhí)行的進程ID。
$!最后一個后臺命令的進程號。

殼牌運營的基本

算術運算符

假設變量包含10和變量b持有20話 -

操作者描述
+此外 - 對運算符兩邊將值`$ EXPR A + $ B`會給30
-減法 - 減去從左手操作右手操作`expr的美元 - $ B`會給-10
*乘法 - 相乘操作員的任一側(cè)值`EXPR $ A * $ B`將給予200
/分部 - 由右手操作數(shù)除以左手操作`EXPR $ B / $了`會給2
模 - 由右手操作數(shù)和剩余收益除以左手操作`EXPR $ B $%A`會給0
=分配 - 在分配左操作數(shù)右操作一個= $ B將會分配的B值成
==平等 - 比較兩個數(shù)字,如果兩個相同則返回true。[$ A == $ B]將返回false。
!=沒有平等 - 比較兩個數(shù)字,如果兩個不同,則返回true。[$ A!= $ B]會返回true。

關系運算符

假設變量包含10和變量b持有20話 -

操作者描述
-eq檢查兩個操作數(shù)的值相等與否,如果是,則條件為真。[$ A $ -eq B]是不正確的。
-ne檢查,如果兩個操作數(shù)的值相等與否,如果值不相等,則條件變?yōu)檎妗?/td>[$一個-ne $ B]是真實的。
-gt檢查左操作數(shù)的值大于右操作數(shù)的值,如果是,則條件為真。[$ A $ -gt B]是不正確的。
-lt檢查左操作數(shù)的值小于右操作數(shù)的值,如果是,則條件為真。[$一個-lt $ b]是真實的。
-ge檢查左操作數(shù)的值大于或等于右邊的操作數(shù)的值,如果是,則條件為真。[$ A $ -ge B]是不正確的。
-le檢查左操作數(shù)的值小于或等于右邊的操作數(shù)的值,如果是,則條件為真。[$一個-le $ B]是真實的。

布爾運算符

假設變量包含10和變量b持有20話 -

操作者描述
!這是合乎邏輯的否定。這種反轉(zhuǎn)條件為真為假,反之亦然。[!假]是真實的。
-o這是邏輯或。如果一個操作數(shù)為真,那么情況會是真的。[$一個-lt 20 -o $ B -gt 100]是真實的。
-a這是邏輯與。如果兩個操作數(shù)為真,那么情況將是真實的,否則那將是錯誤的。[$一個-lt 20 -a $ B -gt 100]是假的。

字符串運算符

假設變量持有“ABC”和變量b舉辦的“EFG”,那么 -

操作者描述
=檢查兩個操作數(shù)的值相等與否,如果是,則條件為真。[$一個= $ B]是不正確的。
!=檢查,如果兩個操作數(shù)的值相等與否,如果值不相等,則條件變?yōu)檎妗?/td>[$ A!= $ B]是真實的。
-z檢查給定的字符串操作數(shù)大小為零。如果是長度為零則返回true。[-z $ A]是不正確的。
-n檢查,如果給定的字符串的操作數(shù)大小是非零。如果它是非零長度則返回真。[-z $ A]是不是假的。
str檢查str是不是空字符串。如果為空,則返回false。[$ A]是不是假的。

文件測試操作符

假設一個變量文件保存現(xiàn)有的文件名“測試”,其大小為100字節(jié),具有讀,寫和執(zhí)行權限-

操作者描述
-b fiel檢查文件是一個塊特殊文件,如果是,則條件為真。[-b $文件]是假的。
-c fiel檢查文件是一個字符特殊文件,如果是,則條件為真。[-C $文件]是假的。
-d fiel檢查文件是目錄,如果是,則條件為真。[-d $文件]是不正確的。
-f fiel檢查文件,而不是一個目錄或特殊文件如果是然后條件變成真一個普通的文件。[-f $文件]是真實的。
-g fiel檢查文件有其設置組ID(SGID)如果是然后條件變成真位設置。[-g $文件]是假的。
-k fiel檢查如果是則條件為真,如果文件有其粘著位設置。[-k $文件]是假的。
-p fiel檢查文件是一個命名管道,如果是,則條件為真。[-p $文件]是假的。
-t fiel檢查是否文件描述符是開放的,如果是,則條件變?yōu)檎媾c終端相關聯(lián)。[-t $文件]是假的。
-u fiel如果文件有其設置用戶ID(SUID)檢查是然后條件變成真位設置。[-u $文件]是假的。
-r fiel檢查文件如果是然后條件變成真可讀。[-r $文件]是真實的。
-w fiel檢查文件如果是然后條件變成真寫。[-w $文件]是真實的。
-x fiel檢查文件如果是則條件變?yōu)檎鎴?zhí)行。[-x $文件]是真實的。
-s fiel檢查文件有大小大于0,如果是,則條件為真。[-s $文件]是真實的。
-e fiel檢查文件是否存在。實上,即使文件是一個目錄,但存在的。[-e $文件]是真實的。

Shell 判斷語句

if...fi 語句

if [ expression ]
then
   Statement(s) to be executed if expression is true
fi

if...else...fi 語句

if [ expression ]
then
   Statement(s) to be executed if expression is true
else
   Statement(s) to be executed if expression is not true
fi

if...elif...fi 語句

if [ expression 1 ]
then
   Statement(s) to be executed if expression 1 is true
elif [ expression 2 ]
then
   Statement(s) to be executed if expression 2 is true
elif [ expression 3 ]
then
   Statement(s) to be executed if expression 3 is true
else
   Statement(s) to be executed if no expression is true
fi

case...esac語句

case word in
  pattern1)
     Statement(s) to be executed if pattern1 matches
     ;;
  pattern2)
     Statement(s) to be executed if pattern2 matches
     ;;
  pattern3)
     Statement(s) to be executed if pattern3 matches
     ;;
esac

Shell循環(huán)語句

while循環(huán)

while command
do
   Statement(s) to be executed if command is true
done

for循環(huán)

for var in word1 word2 ... wordN
do
   Statement(s) to be executed for every word.
done

until循環(huán)

until command
do
   Statement(s) to be executed until command is true
done

select循環(huán)

select var in word1 word2 ... wordN
do
   Statement(s) to be executed for every word.
done

shell 循環(huán)控制

break語句

break [n]

continue語句

continue [n]

shell替換

當它遇到包含一個或多個特殊字符的表達式外殼進行替換。

命令替換

當命令給出執(zhí)行命令替換 -

`command`

變量替換

這里是對所有可能的替換如下表 -

形成描述
$ {VAR}頂替的值變種
$ {VAR:-word}如果VAR為null或取消,代替變種。的值VAR不改變。
$ {VAR:=詞}如果VAR為null或取消,VAR設置為價值
$ {VAR:消息}如果VAR為null或取消,消息被打印到標準錯誤。這將檢查變量設置正確。
$ {VAR:+詞}如果變種被設置,代替變種 的值VAR不改變。

重定向命令

以下是您可以使用重定向命令的完整列表 -

命令描述
pgm > file鉑族金屬的輸出重定向到文件
pgm < file計劃PGM讀取文件的輸入。
pgm >>file鉑族金屬的輸出追加到文件。
n > file從文件描述符n流輸出重定向到文件。
n >> file從流輸出文件描述符n附加到文件。
n >&m合并從流n與流m的輸出。
n <&m從流n與流M將輸入。
<< tag標準輸入是從這里通過在行開始下一個標簽。
|需要從一個節(jié)目,或過程輸出,并把它發(fā)送到另一個。

Shell幫助頁面

本快速指南列出的命令,包括語法和簡要說明。更多詳細信息,使用unix 常用命令

$man command
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號