日期: 2015年9月15日javascript
1、實驗的目的與要求css
熟練地使用 Linux,本實驗介紹 Linux 基本操做,shell 環境下的經常使用命令。java
2、主要內容linux
認真看過這篇linux系統簡介文章,對於這樣一個免費、高效的操做系統有了一個初步的認識。但願能在本學期對於linux操做系統有很好的認識和操做,使用。 同時,對於新認識的一些歷史中開發和修復各個操做系統的前輩表示深深地敬佩。nginx
2.sql
基本概念及操做主要過程:shell
按鍵 | 做用 |
---|---|
Ctrl+d |
鍵盤輸入結束或退出終端 |
Ctrl+s |
暫定當前程序,暫停後按下任意鍵恢復運行 |
Ctrl+z |
將當前程序放到後臺運行,恢復到前臺爲命令fg |
Ctrl+a |
將光標移至輸入行頭,至關於Home 鍵 |
Ctrl+e |
將光標移至輸入行末,至關於End 鍵 |
Ctrl+k |
刪除從光標所在位置到行末 |
Alt+Backspace |
向前刪除一個單詞 |
Shift+PgUp |
將終端顯示向上滾動 |
Shift+PgDn |
將終端顯示向下滾動 |
Shell 經常使用通配符:數據庫
字符 | 含義 |
---|---|
* |
匹配 0 或多個字符 |
? |
匹配任意一個字符 |
[list] |
匹配 list 中的任意單一字符 |
[!list] |
匹配 除list 中的任意單一字符之外的字符 |
[c1-c2] |
匹配 c1-c2 中的任意單一字符 如:[0-9] [a-z] |
{string1,string2,...} |
匹配 sring1 或 string2 (或更多)其一字符串 |
{c2..c2} |
匹配 c1-c2 中所有字符 如{1..10} |
man 手冊區段 | 說明 |
---|---|
1 | 通常命令 |
2 | 系統調用 |
3 | 庫函數,涵蓋了C標準函數庫 |
4 | 特殊文件(一般是/dev中的設備)和驅動程序 |
5 | 文件格式和約定 |
6 | 遊戲和屏保 |
7 | 雜項 |
8 | 系統管理命令和守護進程 |
$ sudo apt-get update;sudo apt-get install sysvbanner toilet figlet
$ banner feels good
$ toilet feels good
$ figlet feels good![](http://static.javashuo.com/static/loading.gif)
![](http://static.javashuo.com/static/loading.gif)
![](http://static.javashuo.com/static/loading.gif)
![](http://static.javashuo.com/static/loading.gif)
(1)查看用戶apache
who [options] [files]vim
參數 | 說明 |
---|---|
-a |
打印能打印的所有 |
-d |
打印死掉的進程 |
-m |
同am i ,mom likes |
-q |
打印當前登陸用戶數及用戶名 |
-u |
打印當前登陸用戶登陸信息 |
-r |
打印運行等級 |
(2)建立用戶
sudo adduser 【name】
指令:adduser = add user
add :添加
user:用戶
(3)用戶組
方法一:使用groups命令
例子:groups shiyanlou
方法二:查看/etc/group文件
例子:cat /etc/group | sort
注:如須要命令過濾則 cat /etc/group | grep -E "shiyanlou|sudo"
etc/group 文件格式說明
(4)將其它用戶加入 sudo 用戶組
例子:sudo usermod -G sudo lilei
指令: usermod = user mod
user : 用戶
mod : 模型
(5)刪除用戶
例子:sudo deluser lilei --remove-home
指令: deluser = del user、 remove
del user :刪除用戶
remove:刪除
(6)查看文件權限
$ ls -AsSh
查看某一個目錄的完整屬性,而不是顯示目錄裏面的文件屬性:$ ls -dl <目錄名>
(7)修改文件權限:
做業:
Linux 是以樹形目錄結構的形式來構建整個系統的,能夠理解爲一個用戶可操做系統的骨架。雖然本質上不管是目錄結構仍是操做系統內核都是存儲在磁盤上的,但從邏輯上來講 Linux 的磁盤是「掛在」(掛載在)目錄上的,每個目錄不只能使用本地磁盤分區的文件系統,也可使用網絡上的文件系統。
1.FHS 標準(英文:Filesystem Hierarchy Standard 中文:文件系統層次結構標準)
FHS 定義了系統中每一個區域的用途、所須要的最小構成的文件和目錄同時還給出了例外處理與矛盾處理。
FHS 定義了兩層規範,第一層是, / 下面的各個目錄應該要放什麼文件數據,例如 /etc 應該要放置設置文件,/bin 與 /sbin 則應該要放置可執行文件等等。
第二層則是針對 /usr 及 /var 這兩個目錄的子目錄來定義。例如 /var/log 放置系統登陸文件、/usr/share 放置共享數據等等。
![](http://static.javashuo.com/static/loading.gif)
![](http://static.javashuo.com/static/loading.gif)
2.目錄路徑
路徑
使用 cd 命令能夠切換目錄,在 Linux 裏面使用 . 表示當前目錄,.. 表示上一級目錄, - 表示上一次所在目錄,~ 一般表示當前用戶的"home"目錄。使用 pwd 命令能夠獲取當前所在路徑(絕對路徑)。
(注意,以 . 開頭的文件都是隱藏文件,因此這兩個目錄必然也是隱藏的,你可使用 ls -a 命令查看隱藏文件)
絕對路徑:以根"/"目錄爲起點的完整路徑,以你所要到的目錄爲終點,表現形式如: /usr/local/bin
相對路徑:相對路徑,也就是相對於你當前的目錄的路徑,相對路徑是以當前目錄 . 爲起點,以你所要到的目錄爲終點,表現形式如: usr/local/bin (這裏假設你當前目錄爲根目錄)。
提示:在進行目錄切換的過程當中請多使用 Tab 鍵自動補全,可避免輸入錯誤,連續按兩次Tab能夠顯示所有候選結果
1.新建空白文件
使用 touch 命令建立空白文件,關於 touch 命令,其主要是來更改已有文件的時間戳的,但其在不加任何參數的狀況下,只指定一個文件名,則能夠建立一個爲指定文件名的空白文件。
例子:touch test
新建目錄
使用 mkdir(make directories)命令能夠建立一個空目錄,也可同時指定建立目錄的權限屬性。
使用 -p 參數,同時建立父目錄(若是不存在該父目錄),以下咱們同時建立一個多級目錄(這在有時候安裝軟件,配置安裝路徑時很是有用):mkdir -p father/son/grandson
2.複製文件
使用cp(copy)命令複製一個文件或目錄到指定目錄。
如:cp test father/son/grandson
複製目錄
若是直接使用cp命令,複製一個目錄的話,會出現以下錯誤:
要成功複製目錄須要加上-r或者-R參數
如:cp -r father family
3.刪除文件
使用rm(remove files or directories)命令,刪除一個文件或目錄;
如:rm test
有時候你會遇到想要刪除一些爲只讀權限的文件,直接使用rm刪除會顯示一個提示,就須要用上參數 -f ;
如:rm -f test
刪除目錄
跟複製目錄同樣,要刪除一個目錄,也須要加上-r或-R參
如:rm -r family
4.移動文件與文件重命名
使用mv(move or rename files)命令,移動文件(剪切)。
格式:mv 源目錄文件 目的目錄
如:mv file1 Documents
重命名文件
格式:mv 舊的文件名 新的文件名
如:mv file1 myfile
5.查看文件
標準輸入輸出:當咱們執行一個 shell 命令行時一般會自動打開三個標準文件,即標準輸入文件(stdin),默認對應終端的鍵盤; 標準輸出文件(stdout)和標準錯誤輸出文件(stderr),這兩個文件都對應被重定向到終端的屏幕,以便咱們能直接看到輸出內容。進程將從標準輸入文件中獲得輸入數據,將正常輸出數據輸出到標準輸出文件,而將錯誤信息送到標準錯誤文件中。
6.查看文件類型
如:file /bin/ls
7.編輯文件
Linux和Windows都用vim+gcc
#定義變量 declare $變量名 #或者直接賦值也自動定義變量,注意變量以前不帶"$" 變量名=值 #打印變量的值,"$"表明引用變量的值 echo $變量名
在全部的 UNIX 和類 UNIX 系統中,每一個進程都有其各自的環境變量設置,且默認狀況下,當一個進程被建立時,處理建立過程當中明確指定的話,它將繼承其父進程的絕大部分環境設置。
一般咱們會涉及到的環境變量有三種:
輸出環境變量set
| 顯示當前 Shell 全部環境變量,包括其內建環境變量(與 Shell 外觀等相關),用戶自定義變量及導出的環境變量env
| 顯示與當前用戶相關的環境變量,還可讓命令在指定環境中運行export
| 顯示從 Shell 中導出成環境變量的變量,也能經過它將自定義變量導出爲環境變量#將普通變量輸出爲環境變量,能被子進程繼承 export 變量名
#比較文件的命令 vimdiff 1.txt 2.txt 3.txt ....
PATH環境變量設置命令搜索路徑
#輸出當前命令搜索路徑的設置 echo $PATH #./程序名 表示執行當前目錄下的指定程序
PATH=$PATH:/home/shiyanlou/Code
若是永久添加須要修改配置文件 zsh是.zshrc bash是.bashrc 本次修改用戶目錄下的文件
$ echo "PATH=$PATH:/home/shiyanlou/mybin" >> .zshrc
變量的修改有如下幾種方式:
變量設置方式 | 說明 |
---|---|
{變量名#匹配字串} |
從頭向後開始匹配,刪除符合匹配字串的最短數據 |
{變量名##匹配字串} |
從頭向後開始匹配,刪除符合匹配字串的最長數據 |
{變量名%匹配字串} |
從尾向前開始匹配,刪除符合匹配字串的最短數據 |
{變量名%%匹配字串} |
從尾向前開始匹配,刪除符合匹配字串的最長數據 |
{變量名/舊的字串/新的字串} |
將符合舊字串的第一個字串替換爲新的字串 |
{變量名//舊的字串/新的字串} |
將符合舊字串的所有字串替換爲新的字串 |
可使用unset
命令刪除一個環境變量:
unset temp
source .zshrc
或者
. ./.zshrc
注意第二種方式必須指定完整的絕對或相對路徑
與搜索相關的命令經常使用的有以下幾個whereis
,which
,find
,locate
。
whereis
只能搜索二進制文件(-b),man幫助文件(-m)和源代碼文件(-s)。locate,
經過"/var/lib/mlocate/mlocate.db"數據庫查找,系統會使用定時任務天天自動執行updatedb
命令更新一次該數據庫,有時須要手動執行一次updatedb
命令將新的文件數據添加進數據庫,它能夠用來查找指定目錄下的不一樣文件類型,能夠遞歸子目錄進行查找,如查找 /etc 下全部以 sh 開頭的文件:$ locate /etc/sh $ locate /home/shiyanlou/Code/\*.txt
經測試好像locate 後面要跟絕對路徑,另外""必須用\來轉義
-c 是僅統計數目 -i 是不區分大小寫
which
它只從PATH
環境變量指定的路徑中去搜索命令
which man
#查找系統中全部文件名中含D且在第三位的.txt文件 find / -name \?\?D\*.txt #顯示結果含有權限不夠的信息,能夠以下屏蔽 find / -name \?\?D\*.txt 2>/dev/null #還能夠加sudo執行 #另外,文件名加引號,能夠直接用?或*,不用轉義
#查找大小在10k-20k之間的*.txt find / -name '*.txt' -size +10k -size -20k
#查找空目錄和空文件
find . -empty #查找實驗樓組的文件 find . -group shiyanlou #在/tmp目錄中查找大於100000000字節而且在48小時內修改的某個文件 find /tmp -size +10000000c -and -mtime +2 #在/tmp目錄中查找全部不屬於panda的文件 find /tmp ! -user panda #查找屬於shiyanlou用戶的文件並顯示文件信息 find . -user shiyanlou -ls #刪除找到的*.txt find . -name '*.txt' -exec rm {} \; #以上 \; 是爲了轉義;字符
*.bz2 bzip2程序壓縮的文件
-c:建立一個tar包文件
-f:指定建立的文件名
-v:非安靜模式
tar -cf shiyanlou.tar ~
-x:解壓一個tar
-C:解壓到指定路徑的已存在目錄
tar -xf xx.tar -C 目錄
-t:只查看不解包
tar -tf xx.rar
-p:保存文件屬性
-h保存設備鏈接指向的源文件
tar -cphf xx.tar 要壓縮目錄
-z:.tar.gz
-J:tar.xz
-j:tar.bz2
install libaa-bin
install aafire
aafire
$ cd .. #進入上一級目錄 $ cd ~ #進入home目錄 $ pwd #查看當前目錄 $ cd /usr/local/bin #絕對目錄 $ cd ../../usr/local/bin #相對目錄
$ touch test #新建一個test空白文件 $ mkdir mydir #新建一個mydir空目錄 $ mkdir -p father/son/grandson #使用-p同時建立一個多級目錄
$ cp test father/son/grandson #將test文件複製到/home/shiyanlou/father/son/grandson目錄中 $ mkdir family $ cp -r father family #將father目錄裏的全部包含子目錄,複製到family
$ rm test #刪除test文件 $ rm -f test #強制刪除test文件 $ rm -r family #刪除family目錄
mv 源目錄文件 目的目錄文件
$ mkdir Documents $ touch file1 $ mv file1 Documents #將file1移動到Documents目錄
重命名 mv 舊的文件名 新文件名
$ mv file1 myfile #將file1重命名爲myfile
$ touch file{1..5}.txt #使用通配符建立五個文件 $ rename 's/\.txt/\.c/' *.txt #將五個後綴 .txt 重命名 .c 爲後綴 $ rename 'y/a-z/A-Z/' *.c #批量將五個文件的文件名大寫
使用cat(正序) 、tac(倒序) 、nl命令查看文件,
$ cp /etc/passwd . #從etc目錄下拷貝passwd文件 $ cat -n passwd #打印passwd內容,-n顯示行號 $ head /etc/passwd #head顯示頭十行 $ tail /etc/passwd #tail 顯示尾十行 $ head -n 1 /etc/passwd #只顯示第一行 $ tail -n 1 etc/passwd #只顯示最後一行
$ file /bin/ls
![](http://static.javashuo.com/static/loading.gif)
-例如$ touch test;echo "hehe" >> test;cat test
$ echo $?
$ [order1] && [oder2] #當[order1]的返回值==0,執行[order2]
$ [order1] || [orser2] #當[order1]的返回值!=0,執行[order2]
$ cut /etc/passwd -d ':' -f 1,6
# 前五個(包含第五個) $ cut /etc/passwd -c -5
# 前五個以後的(包含第五個) $ cut /etc/passwd -c 5-
# 第五個 $ cut /etc/passwd -c 5
# 2到5之間的(包含第五個) $ cut /etc/passwd -c 2-5
grep命令的通常形式爲:
grep [命令選項]... 用於匹配的表達式 [文件]...
$ grep -rnI "shiyanlou" ~
-r 參數表示遞歸搜索子目錄中的文件,-n表示打印匹配項行號,-I表示忽略二進制文件。$ export | grep ".*yanlou$"
其中$就表示一行的末尾。wc 命令用於統計並輸出一個文件中行、單詞和字節的數目,好比輸出/etc/passwd文件的統計信息:
$ wc /etc/passwd
# 行數 $ wc -l /etc/passwd
# 單詞數 $ wc -w /etc/passwd
# 字節數 $ wc -c /etc/passwd
# 字符數 $ wc -m /etc/passwd
# 最長行字節數 $ wc -L /etc/passwd
$ cat /etc/passswd | sort
$ cat /etc/passwd | sort -r
$ cat /etc/passwd | sort -t':' -k 3
上面的-t參數用於指定字段的分隔符,這裏是以":"做爲分隔符;-k 字段號用於指定對哪個字段進行排序$ history | cut -c 8- | cut -d ' ' -f 1 | sort | uniq #由於uniq命令只能去連續重複的行,不是全文去重因此加上sort效果更佳
$ tr [option]...SET1 [SET2]
$ echo 'hello shiyanlou' | tr -d 'olh'
$ echo 'hello' | tr -s 'l'
'[:lower:]' '[:upper:]'你也能夠簡單的寫做'[a-z]' '[A-Z]',固然反過來將大寫變小寫也是能夠的`
$ col [option]
$ cat -A /etc/protocols
$ cat /etc/protocols | col -x | cat -A
$ join [option]... file1 file2
paste這個命令與join 命令相似,它是在不對比數據的狀況下,簡單地將多個文件合併一塊兒,以Tab隔開。
使用方式:
$ paste [option] file...
$ echo hello > file1
$ echo shiyanlou > file2
$ echo www.shiyanlou.com > file3
$ paste -d ':' file1 file2 file3
$ paste -s file1 file2 file3
一、#從dos 到unix文本格式轉換
$ cat -A [dos] | tr -d '^M' | cat -A [dos]
-
二、sudo apt-get install ninvaders
Linux 默認提供了三個特殊設備,用於終端的顯示和輸出,分別爲
stdin(標準輸入,對應於你在終端的輸入)
stdout(標準輸出,對應於終端的輸出)
stderr(標準錯誤輸出,對應於終端的輸出)
PS管道默認是鏈接前一個命令的輸出到下一個命令的輸入,而重定向一般是須要一個文件來創建兩個命令的鏈接
-標準輸出和標準錯誤都被指向僞終端的屏幕顯示,因此咱們常常看到的一個命令的輸出一般是同時包含了標準輸出和標準錯誤的結果的。
隱藏某些錯誤或者警告
# 將標準錯誤重定向到標準輸出,再將標準輸出重定向到文件,注意要將重定向到文件寫到前面
$ cat Documents/test.c\~ hello.c >somefile 2>&1
# 或者只用bash提供的特殊的重定向符號"&"將標準錯誤和標準輸出同時重定向到文件
$ cat Documents/test.c\~ hello.c &>somefilehell
-除了將須要將輸出重定向到文件以外也須要將信息打印在終端$ echo 'hello shiyanlou' | tee hello
-使用exec命令實現「永久」重定向# 先開啓一個子 Shell
$ zsh
# 使用exec替換當前進程的重定向,將標準輸出重定向到一個文件
$ exec 1>somefile
# 後面你執行的命令的輸出都將被重定向到文件中,直到你退出當前子shell,或取消exec的重定向(後面將告訴你怎麼作)
$ ls
$ exit
$ cat somefile
-默認在 Shell 中能夠有9個打開的文件描述符,上面咱們使用了也是它默認提供的0,1,2號文件描述符
使用exec命令能夠建立新的文件描述符:
$ zsh
$ exec 3>somefile
# 先進入目錄,再查看,不然你可能不能獲得正確的結果,而後再回到上一次的目錄
$ cd /dev/fd/;ls -Al;cd -
# 注意下面的命令>與&之間不該該有空格,若是有空格則會出錯
$ echo "this is test" >&3
$ cat somefile
$ exit
-如上面咱們打開的3號文件描述符,可使用以下操做將它關閉:$ exec 3>&-
$ cd /dev/fd;ls -Al;cd -
-在 Linux 中有一個被成爲「黑洞」的設備文件,因此導入它的數據都將被「吞噬」。/dev/null,或稱空設備,是一個特殊的設備文件,它一般被用於丟棄不須要的輸出流,或做爲用於輸入流的空文件,這些操做一般由重定向完成。讀取它則會當即獲得一個EOF。
咱們能夠利用設個/dev/null屏蔽命令的輸出:
$ cat Documents/test.c\~ nefile 1>/dev/null 2>&1
-xargs 是一條 UNIX 和類 UNIX 操做系統的經常使用命令。它的做用是將參數列表轉換成小塊分段傳遞給其餘命令,以免參數列表過長的問題。 這個命令在有些時候十分有用,特別是當用來處理產生大量輸出結果的命令如 find,locate 和 grep 的結果,詳細用法請參看 man 文檔。$ cut -d: -f1 < /etc/passwd | sort | xargs echo
$ sudo apt-get install caca-utils
$ cacaview <pic_file>
$ cacademo
$ cacafire
Linux 默認提供了三個特殊設備,用於終端的顯示和輸出,分別爲
stdin(標準輸入,對應於你在終端的輸入)
stdout(標準輸出,對應於終端的輸出)
stderr(標準錯誤輸出,對應於終端的輸出)
PS管道默認是鏈接前一個命令的輸出到下一個命令的輸入,而重定向一般是須要一個文件來創建兩個命令的鏈接
-標準輸出和標準錯誤都被指向僞終端的屏幕顯示,因此咱們常常看到的一個命令的輸出一般是同時包含了標準輸出和標準錯誤的結果的。
# 將標準錯誤重定向到標準輸出,再將標準輸出重定向到文件,注意要將重定向到文件寫到前面
$ cat Documents/test.c\~ hello.c >somefile 2>&1
# 或者只用bash提供的特殊的重定向符號"&"將標準錯誤和標準輸出同時重定向到文件
$ cat Documents/test.c\~ hello.c &>somefilehell
-除了將須要將輸出重定向到文件以外也須要將信息打印在終端$ echo 'hello shiyanlou' | tee hello
-使用exec命令實現「永久」重定向(效果見附圖)# 先開啓一個子 Shell
$ zsh
# 使用exec替換當前進程的重定向,將標準輸出重定向到一個文件
$ exec 1>somefile
# 後面你執行的命令的輸出都將被重定向到文件中,直到你退出當前子shell,或取消exec的重定向(後面將告訴你怎麼作)
$ ls
$ exit
$ cat somefile
-默認在 Shell 中能夠有9個打開的文件描述符,上面咱們使用了也是它默認提供的0,1,2號文件描述符
$ zsh
$ exec 3>somefile
# 先進入目錄,再查看,不然你可能不能獲得正確的結果,而後再回到上一次的目錄
$ cd /dev/fd/;ls -Al;cd -
# 注意下面的命令>與&之間不該該有空格,若是有空格則會出錯
$ echo "this is test" >&3
$ cat somefile
$ exit
-如上面咱們打開的3號文件描述符,可使用以下操做將它關閉:$ exec 3>&-
$ cd /dev/fd;ls -Al;cd -
-在 Linux 中有一個被成爲「黑洞」的設備文件,因此導入它的數據都將被「吞噬」。/dev/null,或稱空設備,是一個特殊的設備文件,它一般被用於丟棄不須要的輸出流,或做爲用於輸入流的空文件,這些操做一般由重定向完成。讀取它則會當即獲得一個EOF。
$ cat Documents/test.c\~ nefile 1>/dev/null 2>&1
-xargs 是一條 UNIX 和類 UNIX 操做系統的經常使用命令。它的做用是將參數列表轉換成小塊分段傳遞給其餘命令,以免參數列表過長的問題。 這個命令在有些時候十分有用,特別是當用來處理產生大量輸出結果的命令如 find,locate 和 grep 的結果,詳細用法請參看 man 文檔。$ cut -d: -f1 < /etc/passwd | sort | xargs echo
$ sudo apt-get install caca-utils
$ cacaview <pic_file>
$ cacademo
$ cacafire
stdin(標準輸入,對應於你在終端的輸入)
stdout(標準輸出,對應於終端的輸出)
stderr(標準錯誤輸出,對應於終端的輸出)
PS管道默認是鏈接前一個命令的輸出到下一個命令的輸入,而重定向一般是須要一個文件來創建兩個命令的鏈接
-標準輸出和標準錯誤都被指向僞終端的屏幕顯示,因此咱們常常看到的一個命令的輸出一般是同時包含了標準輸出和標準錯誤的結果的。
隱藏某些錯誤或者警告
# 將標準錯誤重定向到標準輸出,再將標準輸出重定向到文件,注意要將重定向到文件寫到前面
$ cat Documents/test.c\~ hello.c >somefile 2>&1
# 或者只用bash提供的特殊的重定向符號"&"將標準錯誤和標準輸出同時重定向到文件
$ cat Documents/test.c\~ hello.c &>somefilehell
-除了將須要將輸出重定向到文件以外也須要將信息打印在終端$ echo 'hello shiyanlou' | tee hello
-使用exec命令實現「永久」重定向(效果見附圖)# 先開啓一個子 Shell
$ zsh
# 使用exec替換當前進程的重定向,將標準輸出重定向到一個文件
$ exec 1>somefile
# 後面你執行的命令的輸出都將被重定向到文件中,直到你退出當前子shell,或取消exec的重定向(後面將告訴你怎麼作)
$ ls
$ exit
$ cat somefile
-默認在 Shell 中能夠有9個打開的文件描述符,上面咱們使用了也是它默認提供的0,1,2號文件描述符
使用exec命令能夠建立新的文件描述符:
$ zsh
$ exec 3>somefile
# 先進入目錄,再查看,不然你可能不能獲得正確的結果,而後再回到上一次的目錄
$ cd /dev/fd/;ls -Al;cd -
# 注意下面的命令>與&之間不該該有空格,若是有空格則會出錯
$ echo "this is test" >&3
$ cat somefile
$ exit
-如上面咱們打開的3號文件描述符,可使用以下操做將它關閉:$ exec 3>&-
$ cd /dev/fd;ls -Al;cd -
-在 Linux 中有一個被成爲「黑洞」的設備文件,因此導入它的數據都將被「吞噬」。/dev/null,或稱空設備,是一個特殊的設備文件,它一般被用於丟棄不須要的輸出流,或做爲用於輸入流的空文件,這些操做一般由重定向完成。讀取它則會當即獲得一個EOF。
咱們能夠利用設個/dev/null屏蔽命令的輸出:
$ cat Documents/test.c\~ nefile 1>/dev/null 2>&1
-xargs 是一條 UNIX 和類 UNIX 操做系統的經常使用命令。它的做用是將參數列表轉換成小塊分段傳遞給其餘命令,以免參數列表過長的問題。 這個命令在有些時候十分有用,特別是當用來處理產生大量輸出結果的命令如 find,locate 和 grep 的結果,詳細用法請參看 man 文檔。$ cut -d: -f1 < /etc/passwd | sort | xargs echo
$ sudo apt-get install caca-utils
$ cacaview <pic_file>
$ cacademo
$ cacafire
3、調試
把Linux 下軟件安裝放在這一部分,做爲操做實踐的部分。
4、心得體會
雖然是最後時間作的很倉促的實驗,但仍是感受收穫了不少。學會了shell的一些操做指令,瞭解了linux系統的文件以及一些不一樣於的windows的特性。更多的學習內容還要繼續,加油努力吧!!!
5、附件