# Linux 命令列基礎
linux 命令列基礎
shell是什麼
1. shell
當我們說的命令列時,我們實際上指的是shell。shell是一個接受由鍵盤輸入的命令,並將其傳遞給作業系統來執行的程式。幾乎所有的Linux發行版都提供shell程式,改程式來自於稱之為bash的GNU專案。bash是Bourne Again Shell的首字母縮寫。即是sh的增強版本,sh是最初的unix shell程式。
2. 終端模擬器
當使用圖形使用者介面時,需要另一種叫做終端模擬器(terminal)的程式與shell互動。在linux下面有很多不同的終端給你選擇使用。
3. 在終端的第一次輸入
-
開打終端,mac,linux都有不同終端。
-
如何在終端中簡單檢視是普通使用者還是超級使用者
-
在終端中看到的是 $表示 普通使用者執行命令
![](…/…/pics/linux/basic_linux/螢幕快照 2018-09-04 下午11.01.35.png)
-
在終端中看到的是 #表示 超級使用者許可權正在執行命令 ![](…/…/pics/linux/basic_linux/螢幕快照 2018-09-04 下午11.03.14.png)
-
4. history
- 在終端中輸入history來檢視命令歷史記錄
大部分Linux發行版會記錄500條命令(最近的)
$ history
-
我們也可以使用上下鍵來獲取歷史記錄
-
我們可以使用! 來獲取歷史命令
- !+num 使用! 加上history裡面的命令號碼,就可以快捷的打出命令來
- !his 他會自動補全上一次的命令,就像正則匹配一樣,比如這個命令就會補全我們剛才輸入的history命令
5. date cal 檢視日期函式
-
使用date來檢視日期
$ date
-
使用cal來獲取日曆
$ cal
6. exit 結束會話
- exit在本地輸入會退出終端程式
- exit在ssh登入中會退出遠端ssh,但是不會退出程式
7. 目錄導航 pwd cd ls
-
檔案目錄樹
和其他系統一樣,linux系統的也是通過資料夾將目錄進行一個層次的劃分,資料夾有一個最頂層的目錄,叫做根目錄。他包含了檔案和資料夾,然後這些資料夾再包含子檔案和資料夾依次類推。這種結構我們稱為檔案系統樹
在linux中,不管你有多少個儲存裝置,通常只有一個檔案系統樹。
檔案的根目錄用 / 表示
在linux中我們可以使用
$ tree /
來檢視 / 目錄的下面的結構
-
pwd 檢視當前工作(所在)目錄
$ pwd
-
ls 列出當前工作目錄和檔案和目錄
$ ls
-
更改當前工作目錄
-
cd 命令:就像我們windows一樣,我們也可以在linux裡面去切換所在的資料夾,cd 後面跟上目錄的名稱就可以直接切換到某個目錄
$ cd /Users/canvas/Desktop/project/web_font_notes
-
絕對路徑: 上述所使用的方式是使用了絕對路徑,絕對路徑是指從根目錄開始 以
/
號為目錄的層級分割,一層層的到達所指的目錄。 比如上面所說的:
/Users/canvas/Desktop/project/web_font_notes
- 相對路徑: 既然有絕對路徑,那麼就有相對路徑,就是相對本工作目錄的其他目錄所在的位置,比如找到本目錄所屬的上級
../
目錄或者目錄下面的某個目錄./
-
-
快捷命令
回到剛才所在的目錄 cd - 到使用者的根目錄下面 cd ~ 到xx使用者的根目錄下面 cd ~username
-
linux使用者目錄
我們知道 linux的根目錄是
/
,linux是一個多使用者的系統,每一個使用者都有自己的獨立的空間,~
代表進入到本使用者獨立的空間中(根目錄),一般 Linux的使用者空間是存在於/home/
下面的 -
更多的ls擴充套件命令
-
ls 可以直接顯示本檔案下面的檔案
canvasdeMBP:web_font_notes canvas$ ls 06_js_anwser.html class_question_and_anwser home_work_and_anwser
-
ls 後面跟上檔案路徑可以檢視那個資料夾中的子檔案
canvasdeMBP:web_font_notes canvas$ ls ./css/ css_basic css_cases css_layout test
-
可以使用長格式來獲取更多的細節(相當於擴充套件的命令)
canvasdeMBP:web_font_notes canvas$ ls -l -rw-r--r-- 1 canvas staff 2308 8 27 16:29 06_js_anwser.html
-rw-r–[email protected] 1 canvas staff 4305 9 13 21:17 README.md drwxr-xr-x 2 canvas staff 64 9 3 18:37 bootstrap
```
-
8. 命令的選項和引數
大部分命令是可以通過引數來使命令有不同的效果的,大致的命令格式如下:
command -options arguments
就像上面的命令一樣 加上命令的選項
canvasdeMBP:web_font_notes canvas$ ls -lt
total 40
[email protected] 1 canvas staff 4305 9 13 21:17 README.md
drwxr-xr-x 10 canvas staff 320 9 13 21:14 jquery
drwxr-xr-x 8 canvas staff 256 9 13 16:56 js
drwxr-xr-x 6 canvas staff 192 9 13 08:58 css
drwxr-xr-x 3 canvas staff 96 9 9 22:10 sources
t
表示以時間順序來檢視子檔案,lt
是-l
和-t
的聯合使用,表示以長格式輸出,並且以時間來排序
也可以使用長格式來輸出
canvasdeMBP:web_font_notes canvas$ ls -lt -reverse
8 -rw-r--r-- 1 canvas staff 2308 8 27 16:29 06_js_anwser.html
0 drwxr-xr-x 2 canvas staff 64 9 3 18:37 bootstrap
0 drwxr-xr-x 5 canvas staff 160 9 5 14:42 pics
0 drwxr-xr-x 4 canvas staff 128 9 5 14:46 class_question_and_anwser
長格式中 -reverse
是長格式的寫法,就像 -l
也可以寫-long
的方式表達
所以說 命令可以使用長格式或者短格式來輸出,有些版本的linux可能需要 --long
來表示長格式
9. ls命令顯示的解釋
當輸入 ls -l
之後,會顯示如下
canvasdeMBP:web_font_notes canvas$ ls -lt -reverse
8 -rw-r--r-- 1 canvas staff 2308 8 27 16:29 06_js_anwser.html
0 drwxr-xr-x 2 canvas staff 64 9 3 18:37 bootstrap
0 drwxr-xr-x 5 canvas staff 160 9 5 14:42 pics
0 drwxr-xr-x 4 canvas staff 128 9 5 14:46 class_question_and_anwser
欄位 | 含義 |
---|---|
-rw-r–r-- | 第一個字元 -表示檔案 如果是d表示資料夾 後面的rw等等表示的是本使用者,使用者組,其他使用者對這個檔案或者資料夾的使用許可權 |
1 | 檔案硬連結數目 |
canvas | 檔案所有者 |
staff | 檔案所屬使用者組 |
2308 | 以位元組數顯示檔案大小 |
18:37 | 檔案的上次修改時間 |
pics | 檔案的名稱 |
ls命令含義總結:
引數 | 描述 |
---|---|
-a | –all 列出目錄下的所有檔案,包括以 . 開頭的隱含檔案 |
-l | 除了檔名之外,還將檔案的許可權、所有者、檔案大小等資訊詳細列出來 |
-d | –directory 將目錄象檔案一樣顯示,而不是顯示其下的檔案 |
-h | –human-readable 以容易理解的格式列出檔案大小 (例如 1K 234M 2G) |
-t | 以檔案修改時間排序 |
10. file用法
在探索linux系統的時候,知道檔案的型別是很有用的,我們在windows上面一般是通過檢視檔名的字尾來知曉檔案的型別的meinv.jpg
,
但是在linux上面,檔案的名字和檔案本身的型別並不掛鉤,所以不管是什麼型別的檔案我們都可以隨便的起名字。但是我們可以通過file這個命令來檢視檔案的型別
canvasdeMBP:bin canvas$ file lzma
lzma: Mach-O 64-bit executable x86_64
通過上面我們可以看到,檔案的型別是可執行的64位程式
11. less命令的使用
less命令可以幫我們檢視檔案裡面的內容
我們可以直接去less一個檔案
less lzcmp
當我們less的時候,使用 j向下翻 k向上翻 q退出 這和vim編輯器有點類似
12. linux 預設目錄說明
/
系統根目錄/bin
包含系統啟動和執行所需要的二進位制檔案(binary)/dev
裝置節點特殊目錄。核心將它能夠識別的所有裝置存放在這個目錄(linux一切皆檔案 裝置也要看成檔案)/etc
一般的配置檔案都在裡面/home
由於Linux是多使用者的 所以每個使用者都有自己獨立空間,普通的使用者只有許可權在這裡建立檔案。lib
linux 核心系統使用的共享庫檔案/lost+found
當系統崩潰時,該目錄用於恢復分割槽。(嚴重的問題)/media
可移除媒體裝置掛載點。比如usb驅動 cd-rom等。當裝置插入計算機後,會自動的掛載到這個目錄節點下面/mnt
早期linux系統中 /mnt 目錄包含手動掛載可移除的裝置掛載點/opt
安裝可選軟體,一般使用者自己下載的軟體放在這裡/root
root賬戶的主目錄/sbin
系統二進位制檔案。重要的系統檔案。為超級使用者預留的/tmp
提供使用者存放各種臨時系統檔案的目錄 可以配置每次重啟系統時清空這個目錄/usr
包含普通使用者使用的所有程式和相關檔案/usr/bin
目錄中放置了一些Linux發行版安裝的可以執行程式。儲存成千上萬個程式/usr/lib
/usr/bin中使用的共享庫/usr/local
由原始碼編譯好的程式通常安裝在/usr/local/bin中/usr/sbin
更多的管理員程式/var
存放有可能改變的目錄,比如說系統日誌
操作檔案和目錄 cp mv …
-
mkdir
說明: mkdir是用來建立目錄的
可以一次性建立一個資料夾或者多個資料夾
$ mkdir dir1 $ mkdir dir1 dir2 dir3
命令引數:
引數 描述 -m --mode=模式 設定許可權<模式> -p --parents 可以是一個路徑名稱。若路徑中的某些目錄尚不存在,加上此選項後,系統將自動建立好那些尚不存在的目錄,即一次可以建立多個目錄 -v --verbose 每次建立新目錄都顯示資訊 遞迴建立多個目錄
$ mkdir -p testmkdir/testmkdir
建立許可權為 777 的目錄
$ mkdir -m 777 -p test/test1
-
cp命令
說明: cp命令是用來複制檔案或者目錄的
複製檔案到哪個檔案
$ cp file1 fil2
複製檔案到xx檔案裡面
$cp file1 file2 dir2
複製資料夾到另一個資料夾中
cp -r dir1 dir3
複製資料夾到資料夾,區別在於 test_dir1不存在會建立新的資料夾
$ cp -r dir1 test_dir1
複製檔案中的所有檔案到另一個資料夾中
cp dir/* dir3
擴充套件選項
項 意義 -a 複製檔案和目錄,以及它們的屬性,包括所有權和許可權。 預設情況下,複本具有使用者所操作檔案的預設屬性。 i 在重寫已存在檔案之前,提示使用者確認。如果這個選項不指定, cp 命令會預設重寫檔案。 -r 遞迴地複製目錄及目錄中的內容。當複製目錄時, 需要這個選項(或者-a 選項)。 u 當把檔案從一個目錄複製到另一個目錄時,僅複製 目標目錄中不存在的檔案,或者是檔案內容新於目標目錄中已經存在的檔案。 -v 顯示翔實的命令操作資訊 -n 不要覆蓋已存在的檔案(使前面的 -i 選項失效) -
mv命令 移動檔案或者資料夾
mv的命令和cp命令有許多的相似
擴充套件選項
引數 描述 i 在重寫已存在檔案之前,提示使用者確認。如果這個選項不指定, cp 命令會預設重寫檔案。 u 當把檔案從一個目錄移動到另一個目錄時,僅移動 目標目錄中不存在的檔案,或者是檔案內容新於目標目錄中已經存在的檔案。 -v 顯示翔實的命令操作資訊 -f 如果目標檔案已經存在,不會詢問而直接覆蓋 移動檔案到哪個檔案
$ mv file1 file2
移動目錄到哪個目錄
$cp dir1 dir2
移動目錄或檔案到到哪個目錄下
$cp file dir2
-
rm命令
說明: rm刪除檔案 這是一個危險的命令 因為linux沒有回收站 所以當你刪除了檔案是不能後悔的
項 意義 i 在刪除之前,提示使用者確認。 -r 遞迴地刪除目錄及目錄中的內容 -f 忽視不存在的檔案,不顯示提示資訊 -v 顯示翔實的命令操作資訊 刪除檔案
rm file1 file2
刪除資料夾
rm -r dir1
小心 rm! 不要使用 rm / 這樣會把你的系統毀掉
ln 檔案連結 (硬連結|硬連結)
-
硬連結
$ ln file link
硬連結和符號連結比起來,硬連結是最初 Unix 建立連結的方式,而符號連結更加現代。 在預設情況下,每個檔案有一個硬連結,這個硬連結給檔案起名字。當我們建立一個 硬連結以後,就為檔案建立了一個額外的目錄條目
硬連結有兩個重要侷限性:
- 一個硬連結不能關聯它所在檔案系統之外的檔案。這是說一個連結不能關聯 與連結本身不在同一個磁碟分割槽上的檔案。
- 一個硬連結不能關聯一個目錄
一個硬連結和檔案本身沒有什麼區別
-
符號連結
$ ln -s file link
建立符號連結是為了克服硬連結的侷限性。符號連結生效,是通過建立一個 特殊型別的檔案,這個檔案包含一個關聯檔案或目錄的文字指標。
- 連結實戰
>連結檔案
```
ln -s file2 ln_file2
```
>連結資料夾
```
ln -s dir4 ln_dir4
cd ln_dir4
```
顯示命令
-
概覽:
- type – 說明怎樣解釋一個命令名
- which – 顯示會執行哪個可執行程式
- man – 顯示命令手冊頁
- apropos – 顯示一系列適合的命令
- info – 顯示命令 info
- whatis – 顯示一個命令的簡潔描述
- alias – 建立命令別名
-
到底什麼是命令
- 是一個可執行程式,就像我們所看到的位於目錄/usr/bin 中的檔案一樣。 屬於這一類的程式,可以編譯成二進位制檔案,諸如用 C 和 C++語言寫成的程式, 也可以是由指令碼語言寫成的程式,比如說 shell,perl,python,ruby,等等
- 是一個內建於 shell 自身的命令。bash 支援若干命令,內部叫做 shell 內部命令 (builtins)。例如,cd 命令,就是一個 shell 內部命令。
- 是一個 shell 函式。這些是小規模的 shell 指令碼,它們混合到環境變數中。
- 是一個命令別名。我們可以定義自己的命令,建立在其它命令之上。
-
type-顯示命令的型別
說明: type 命令是 shell 內部命令,它會顯示命令的類別,給出一個特定的命令名(做為引數)。
$ type cd cd is a shell builtin $ type ls ls is hashed (/bin/ls)
-
定位
-
which - 顯示一個可執行程式的位置
在 PATH 變數指定的路徑中搜索可執行檔案的所在位置。它一般用來確認系統中是否安裝了指定的軟體。
說明:有時候在一個作業系統中,不只安裝了可執行程式的一個版本。然而在桌面系統中,這並不普遍, 但在大型伺服器中,卻很平常。為了確定所給定的執行程式的準確位置,使用 which 命令
rimideiMac-10:ln_dir4 admin$ which ls /bin/ls
(某些系統中)這個命令只對可執行程式有效,不包括內部命令和命令別名,別名是真正的可執行程式的替代物
-
whereis 命令
whereis 命令主要用於定位可執行檔案、原始碼檔案、幫助檔案在檔案系統中的位置。whereis 命令還具有搜尋原始碼、指定備用搜索路徑和搜尋不尋常項的能力。
whereis 命令查詢速度非常快,這是因為它根本不是在磁碟中漫無目的亂找,而是在一個數據庫中(/var/lib/mlocate/)查詢。這個資料庫是 Linux 系統自動建立的,包含有本地所有檔案的資訊,並且每天通過自動執行 updatedb 命令更新一次。也正是因為這個資料庫要每天才更新一次,就會使得 whereis 命令的搜尋結果有時候會不準確,比如剛新增的檔案可能搜不到。
-
locate
locate 命令跟 whereis 命令類似,且它們使用的是相同的資料庫。但 whereis 命令只能搜尋可執行檔案、聯機幫助檔案和原始碼檔案,如果要獲得更全面的搜尋結果,可以使用 locate 命令。
-
-
help 幫助文件
rimideiMac-10:ln_dir4 admin$ help cd cd: cd [-L|-P] [dir] Change the current directory to DIR. The variable $HOME is the default DIR. The variable CDPATH defines the search path for the directory containing DIR. Alternative directory names in CDPATH are separated by a colon (:). A null directory name is the same as the current directory, i.e. `.'. If DIR begins with a slash (/), then CDPATH is not used. If the directory is not found, and the shell option `cdable_vars' is set, then try the word as a variable name. If that variable has a value, then cd to the value of that variable. The -P option says to use the physical directory structure instead of following symbolic links; the -L option forces symbolic links to be followed.
注意表示法:出現在命令語法說明中的方括號,表示可選的專案。一個豎槓字元 表示互斥選項。 這種表示法說明,cd 命令可能有一個”-L”選項或者”-P”選項,進一步,可能有引數“dir”
-
許多可執行程式支援一個”—help”|-h選項,這個選項是顯示命令所支援的語法和選項說明
rimideiMac-10:ln_dir4 admin$ python --help usage: python [option] ... [-c cmd | -m mod | file | -] [arg] ... Options and arguments (and corresponding environment variables): -b : issue warnings about str(bytes_instance), str(bytearray_instance) and comparing bytes/bytearray with str. (-bb: issue errors) -B : don't write .pyc files on import; also PYTHONDONTWRITEBYTECODE=x -c cmd : program passed in as string (terminates option list) -d : debug output from parser; also PYTHONDEBUG=x -E : ignore PYTHON* environment variables (such as PYTHONPATH) -h : print this help message and exit (also --help) -i : inspect interactively after running script; forces a prompt even if stdin does not appear to be a terminal; also PYTHONINSPECT=x -I : isolate Python from the user's environment (implies -E and -s) -m mod : run library module as a script (terminates option list) -O : remove assert and __debug__-dependent statements; add .opt-1 before .pyc extension; also PYTHONOPTIMIZE=x -OO : do -O changes and also discard docstrings; add .opt-2 before .pyc extension -q : don't print version and copyright messages on interactive startup -s : don't add user site directory to sys.path; also PYTHONNOUSERSITE -S : don't imply 'import site' on initialization
-
一些程式不支援”—help”選項
rimideiMac-10:ln_dir4 admin$ ls --help
ls: illegal option – - usage: ls [-ABCFGHLOPRSTUWabcdefghiklmnopqrstuwx1] [file …] ```
-
-
man -顯示程式手冊頁
rimideiMac-10:ln_dir4 admin$ man ls
手冊文件的格式有點不同,一般地包含一個標題,命令語法的綱要,命令用途的說明, 和命令選項列表,及每個選項的說明。然而,通常手冊文件並不包含例項,它打算 作為一本參考手冊,而不是教材。
-
apropos
rimideiMac-10:ln_dir4 admin$ apropos mkdir mkdir(1) - make directories mkdir(2), mkdirat(2) - make a directory file
-
whatis -顯示非常簡潔的命令說明
rimideiMac-10:ln_dir4 admin$ whatis mkdir mkdir(1) - make directories mkdir(2), mkdirat(2) - make a directory file
-
info - 顯示程式 Info 條目
說明:GNU 專案提供了一個命令程式手冊頁的替代物,稱為 “info”。info 內容可通過 info 閱讀器 程式讀取。info 頁是超級連結形式的,和網頁很相似。
info ls
info 程式讀取 info 檔案,info 檔案是樹型結構,分化為各個結點,每一個包含一個題目。 info 檔案包含超級連結,它可以讓你從一個結點跳到另一個結點。一個超級連結可通過 它開頭的星號來辨別出來,把游標放在它上面並按下 enter 鍵,就可以啟用它。
-
alias 建立你自己的命令
說明: alias 可以用於 自己建立一個屬於自己的命令,語句結構 alias name=‘string’
rimideiMac-10:ln_dir4 admin$ ll -bash: ll: command not found rimideiMac-10:ln_dir4 admin$ alias ll='ls -l' rimideiMac-10:ln_dir4 admin$ ll total 0 drwxr-xr-x 5 admin staff 170 9 19 09:51 dir5 -rw-r--r-- 1 admin staff 0 9 19 09:43 test2 rimideiMac-10:ln_dir4 admin$ type ll ll is aliased to `ls -l'
重定向
-
說明 : I/O 重定向。“I/O”代表輸入/輸出, 通過這個工具,你可以重定向命令的輸入輸出,命令的輸入來自檔案,而輸出也存到檔案。 也可以把多個命令連線起來組成一個強大的命令管道
-
配合io使用的命令
cat - 連線檔案
sort - 排序文字行
uniq - 報道或省略重複行
grep - 列印匹配行
wc - 列印檔案中換行符,字,和位元組個數
head - 輸出檔案第一部分
tail - 輸出檔案最後一部分
-
標準輸入,輸出,和錯誤
與 Unix 主題“任何東西都是一個檔案”保持一致,程式,比方說 ls,實際上把他們的執行結果 輸送到一個叫做標準輸出的特殊檔案(經常用 stdout 表示),而它們的狀態資訊則送到另一個 叫做標準錯誤的檔案(stderr)。預設情況下,標準輸出和標準錯誤都連線到螢幕,而不是 儲存到磁碟檔案。除此之外,許多程式從一個叫做標準輸入(stdin)的裝置得到輸入,預設情況下, 標準輸入連線到鍵盤。
I/O 重定向允許我們可以更改輸出走向和輸入來向。一般地,輸出送到螢幕,輸入來自鍵盤, 但是通過 I/O 重定向,我們可以改變輸入輸出方向。
-
重定向標準輸出
使用 > 把本來應該輸出到螢幕上面的資訊輸出到文字上面
```
rimideiMac-10:ln_dir4 admin$ ls / > test1.txt
rimideiMac-10:ln_dir4 admin$ let test1.txt
```
但是 當我們得到一個錯誤的輸出時候,這個時候程式就不會把資訊寫入文字
```
rimideiMac-10:ln_dir4 admin$ ls /bin/ac > test2
ls: /bin/ac: No such file or directory
```
重定向錯誤輸出的話我們需要使用
```
rimideiMac-10:ln_dir4 admin$ ls /bin/ac 2> test2
```
現在的bash給我們提供了一種方法 同時提供重定向錯誤和標準輸出
```
rimideiMac-10:ln_dir4 admin$ ls /bin/ac &> test2
```
-
cat (concatenate)- 連線檔案
cat 命令讀取一個或多個檔案,然後複製它們到標準輸出,就像這樣:
rimideiMac-10:ln_dir4 admin$ cat test1.txt Applications Library Network System Users Volumes bin cores data dev etc home installer.failurerequests net private sbin tmp usr var
引數 描述 n 對輸出的所有行編號,由 1 開始對所有輸出的行數編號 -s 有連續兩行以上的空白行,就代換為一行的空白行 tac 將 cat 反寫過來,所以它的功能就跟 cat 相反,cat 是由第一行到最後一行連續顯示在螢幕上,而 tac 則是由最後一行到第一行反向在螢幕上顯示出來
-
管道線
-
使用方式: 命令可以從標準輸入讀取資料,然後再把資料輸送到標準輸出,命令的這種能力被 一個 shell 特性所利用,這個特性叫做管道線。使用管道操作符”|”(豎槓),一個命令的 標準輸出可以管道到另一個命令的標準輸入:
rimideiMac-10:ln_dir4 admin$ ls / |less
把ls的標準輸出管道到less的標準輸入
可以使用xargs 把輸出的命令改成一行或者安裝自己的指定行數列印
ls / | xargs
ls / | xargs -n 4
-n 每行列印多少個
-
過濾器:
管道線經常用來對資料完成複雜的操作。有可能會把幾個命令放在一起組成一個管道線。 通常,以這種方式使用的命令被稱為過濾器。過濾器接受輸入,以某種方式改變它,然後 輸出它。第一個我們想試驗的過濾器是 sort。想象一下,我們想把目錄/bin 和/usr/bin 中 的可執行程式都聯合在一起,再把它們排序,然後瀏覽執行結果:
rimideiMac-10:ln_dir4 admin$ ls /bin/ /usr/bin/ | sort | less
因為我們指定了兩個目錄(/bin 和/usr/bin),ls 命令的輸出結果由有序列表組成, 各自針對一個目錄。通過在管道線中包含 sort,我們改變輸出資料,從而產生一個 有序列表。
-
uniq - 報道或忽略重複行
uniq 命令經常和 sort 命令結合在一起使用。uniq 從標準輸入或單個檔名引數接受資料有序 列表(詳情檢視 uniq 手冊頁),預設情況下,從資料列表中刪除任何重複行。所以,為了確信 我們的列表中不包含重複句子(這是說,出現在目錄/bin 和/usr/bin 中重名的程式),我們新增 uniq 到我們的管道線中:
``` rimideiMac-10:ln_dir4 admin$ ls /bin/ /usr/bin/ | sort |uniq | less ``` >在這個例子中,我們使用 uniq 從 sort 命令的輸出結果中,來刪除任何重複行
-
-
grep wc
-
grep
說明: grep 是個很強大的程式,用來找到檔案中的匹配文字。
比如說,我們想在我們的程式列表中,找到檔名中包含單詞“zdiff”的所有檔案。這樣一個搜尋, 可能讓我們瞭解系統中的一些程式與檔案壓縮有關係。
rimideiMac-10:~ admin$ ls /bin/ /usr/bin/ | sort | grep zdiff |less
$ grep 'root' /etc/passwd
將/etc/passwd 檔案中出現 root 的行取出來
$ grep -v 'root' /etc/passwd
將/etc/passwd 檔案中未出現 root 的行取出來
-
wc 統計的工具,主要用來顯示檔案所包含的行、字和位元組數
描述 統計位元組數 統計行數 統計字元數,這個標誌不能與 -c 標誌一起使用 統計字數,一個字被定義為由空白、跳格或換行字元分隔的字串 列印最長行的長度
-
canvasdeMBP:project canvas$ cat test.py | wc -c
165847
canvasdeMBP:project canvas$ cat test.py | wc -l
1380
canvasdeMBP:project canvas$ cat test.py | wc -m
165847
canvasdeMBP:project canvas$ cat test.py | wc -w
12420
canvasdeMBP:project canvas$ cat test.py | wc -m
165847
12420
canvasdeMBP:project canvas$ cat test.py | wc -l
-
head / tail -列印檔案開頭部分/結尾部分
說明:
有時候你不需要一個命令的所有輸出。可能你只想要前幾行或者後幾行的輸出內容。 head 命令列印檔案的前十行,而 tail 命令列印檔案的後十行。預設情況下,兩個命令 都列印十行文字,但是可以通過”-n”選項來調整命令列印的行數。
它們也能用在管道線中:
rimideiMac-10:log admin$ head -n 5 fsck_hfs.log
rimideiMac-10:log admin$ tail -n 5 fsck_hfs.log
rimideiMac-10:log admin$ ls /usr/bin | tail -n 5
tail 有一個選項允許你實時的瀏覽檔案。當觀察日誌檔案的進展時,這很有用,因為 它們同時在被寫入。
tail -f /var/log/system.log
高階鍵盤技巧
-
clear - 清空螢幕
-
history - 顯示歷史列表內容
-
! 回顧歷史命令
-
表9-1: 游標移動命令
按鍵 | 行動 |
---|---|
Ctrl-a | 移動游標到行首。 |
Ctrl-e | 移動游標到行尾。 |
Ctrl-f | 游標前移一個字元;和右箭頭作用一樣。 |
Ctrl-b | 游標後移一個字元;和左箭頭作用一樣。 |
Alt-f | 游標前移一個字。 |
Alt-b | 游標後移一個字。 |
Ctrl-l | 清空螢幕,移動游標到左上角。clear 命令完成同樣的工作。 |
許可權
-
說明:
-
Unix 傳統中的作業系統不同於那些 MS-DOS 傳統中的系統,區別在於它們不僅是多工系統,而且也是 多使用者系統。這到底意味著什麼?它意味著多個使用者可以在同一時間使用同一臺計算機。然而一個 典型的計算機可能只有一個鍵盤和一個監視器,但是它仍然可以被多個使用者使用。例如,如果一臺 計算機連線到一個網路或者因特網,那麼遠端使用者通過 ssh(安全 shell)可以登入並操縱這臺電腦。 事實上,遠端使用者也能執行圖形介面應用程式,並且圖形化的輸出結果會出現在遠端的顯示器上。 X 視窗系統把這個作為基本設計理念的一部分,並支援這種功能。
-
Linux 系統的多使用者效能,不是最近的“創新”,而是一種特性,它深深地嵌入到了 Linux 作業系統的 設計過程中。想一下 Unix 系統的誕生環境,這會很有意義。多年前,在個人電腦出現之前,計算機 都是大型的,昂貴的,集中化的。一個典型的大學計算機系統,例如,是由坐落在一座建築中的一臺 大型中央計算機和許多散佈在校園各處的終端機組成,每個終端都連線到這臺大型中央計算機。 這臺計算機可以同時支援很多使用者。
-
-
許可權系統中的命令
- id – 顯示使用者身份號
當用戶建立帳戶之後,系統會給使用者分配一個號碼,叫做使用者 ID 或者 uid,然後,為了符合人類的習慣,這個 ID 對映到一個使用者名稱。系統又會給這個使用者 分配一個原始的組 ID 或者是 gid
rimideiMac-10:log admin$ id uid=503(admin) gid=20(staff) groups=20(staff),703(com.apple.sharepoint.group.3),12(everyone),61(localaccounts),79(_appserverusr),80(admin),81(_appserveradm),98(_lpadmin),701(com.apple.sharepoint.group.1),33(_appstore),100(_lpoperator),204(_developer),250(_analyticsusers),395(com.apple.access_ftp),398(com.apple.access_screensharing),399(com.apple.access_ssh)
uid 是使用者的獨立id gid是使用者所屬的使用者組 後面的groups是表示這個系統中的使用者組有哪些
-
chmod – 更改檔案模式
- 數字的意義
許可權模式
ctal Binary File Mode 0 000 – 1 001 —x 2 010 -w- 3 011 -wx 4 100 r— 5 101 r-x 6 110 rw- 7 111 rwx 當我看到如下,就能分析出來 檔案的所有者 admin有 讀寫 使用者組staff對檔案有 讀 其他使用者對檔案有讀許可權
-rw-r--r-- 1 admin staff 0 9 19 09:48 file2
更改檔案或者目錄的許可權
rimideiMac-10:test admin$ chmod 600 file2
迴圈遞迴的改變資料夾和檔案裡面的許可權
rimideiMac-10:test admin$ chmod -R 777 dir4
- 符號表示法
chmod 命令符號表示法
符號 意義 u “user”的簡寫,意思是檔案或目錄的所有者。 g 使用者組。 o “others” 的簡寫,意思是其他所有的人。 a “all” 的簡寫,是“u”,“g”,和 “o” 三者的聯合。 chmod 符號表示法例項
命令 意義 u+x 為檔案所有者新增可執行許可權。 u-x 刪除檔案所有者的可執行許可權。 +x 為檔案所有者,使用者組,和其他所有人新增可執行許可權。等價於 a+x。 o-rw 除了檔案所有者和使用者組,刪除其他人的讀許可權和寫許可權。 go=rw 給群組的主人和任意檔案擁有者的人讀寫許可權。如果群組的主人或全域性之前已經有了執行的許可權,他們將被移除。 u+x,go=rw 給檔案擁有者執行許可權並給組和其他人讀和執行的許可權。多種設定可以用逗號分開。 u代表 使用者 g 代表使用者組 o代表其他人
示例:
$ rimideiMac-10:test admin$ chmod u+x dir4 $ rimideiMac-10:test admin$ chmod u-x dir4
刪除許可權是對檔案所屬的目錄有w許可權
-
su – 以另一個使用者的身份來執行 shell
-
sudo – 以另一個使用者的身份來執行命令
-
chown – 更改檔案所有者
chown 命令被用來更改檔案或目錄的所有者和使用者組。使用這個命令需要超級使用者許可權。
chown 引數例項
引數 結果 bob 把檔案所有者從當前屬主更改為使用者 bob。 bob:users 把檔案所有者改為使用者 bob,檔案使用者組改為使用者組 users。 :admins 把檔案使用者組改為組 admins,檔案所有者不變。 bob: 檔案所有者改為使用者 bob,檔案使用者組改為,使用者 bob 登入系統時,所屬的使用者組。 $ rimideiMac-10:test admin$ chown canvas file2
passwd – 更改使用者密碼 只要輸入 passwd 命令,就能更改你的密碼。shell 會提示你輸入你的舊密碼和你的新密碼:
$ passwd
程序
-
說明:
通常,現在的作業系統都支援多工,意味著作業系統(給使用者)造成了一種假象,(讓使用者覺得) 它同時能夠做多件事情,事實上,它是快速地輪換執行這些任務的。Linux 核心通過使用程序,來 管理多工。通過程序,Linux 安排不同的程式等待使用 CPU。
有時候,計算機變得呆滯,執行緩慢,或者一個應用程式停止響應。在這一章中,我們將看一些 可用的命令列工具,這些工具幫助我們檢視程式的執行狀態,以及怎樣終止行為不當的程序。
-
程序是怎樣工作的
當系統啟動的時候,核心先把一些它自己的程式初始化為程序,然後執行一個叫做 init 的程式。init, 依次地,再執行一系列的稱為 init 指令碼的 shell 指令碼(位於/etc),它們可以啟動所有的系統服務。 其中許多系統服務以守護(daemon)程式的形式實現,守護程式僅在後臺執行,沒有任何使用者介面。 這樣,即使我們沒有登入系統,至少系統也在忙於執行一些例行事務。
一個程式可以發動另一個程式,這個事實在程序方案中,表述為一個父程序建立了一個子程序。
核心維護每個程序的資訊,以此來保持事情有序。例如,系統分配給每個程序一個數字,這個數字叫做 程序 ID 或 PID。PID 號按升序分配,init 程序的 PID 總是1。核心也對分配給每個程序的記憶體進行跟蹤。 像檔案一樣,程序也有所有者和使用者 ID,有效使用者 ID,等等。
-
ps – 報告當前程序快照
rimideiMac-10:test admin$ ps PID TTY TIME CMD 4506 ttys000 0:00.04 -bash 4533 ttys001 0:00.25 -bash
上例中,列出了兩個程序,程序 4506 和程序 4533,各自代表命令 bash 和 ps。正如我們所看到的, 預設情況下,ps 不會顯示很多程序資訊,只是列出與當前終端會話相關的程序。
-
如果給 ps 命令加上選項,我們可以得到更多關於系統執行狀態的資訊:
rimideiMac-10:test admin$ ps x PID TT STAT TIME COMMAND 385 ?? S 0:06.06 /usr/sbin/cfprefsd agent 386 ?? S 0:09.18 /usr/libexec/UserEventAgent (Aqua) 388 ?? S 1:19.98 /usr/sbin/distnoted agent
加上 “x” 選項(注意沒有開頭的 “-” 字元),告訴 ps 命令,展示所有程序,
STAT表示程序的狀態
狀態 意義 R 執行。這意味著,程序正在執行或準備執行。 S 正在睡眠。 程序沒有執行,而是,正在等待一個事件, 比如說,一個按鍵或者網路資料包。 D 不可中斷睡眠。程序正在等待 I/O,比方說,一個磁碟驅動器的 I/O。 T 已停止. 已經指示程序停止執行。稍後介紹更多。 Z 一個死程序或“殭屍”程序。這是一個已經終止的子程序,但是它的父程序還沒有清空它。 (父程序沒有把子程序從程序表中刪除) < 一個高優先順序程序。這可能會授予一個程序更多重要的資源,給它更多的 CPU 時間。 程序的這種屬性叫做 niceness。具有高優先順序的程序據說是不好的(less nice), 因為它佔用了比較多的 CPU 時間,這樣就給其它程序留下很少時間。 N 低優先順序程序。 一個低優先順序程序(一個“好”程序)只有當其它高優先順序程序執行之後,才會得到處理器時間。 -
-
另一個流行的選項組合是 “aux”(不帶開頭的”-“字元)。這會給我們更多資訊:
rimideiMac-10:test admin$ ps aux USER PID %CPU %MEM VSZ RSS TT STAT STARTED TIME COMMAND admin 432 100.0 0.3 4566564 27932 ?? R 日03下午 201:51.72 /System/Library/CoreServices/Dock.app/Contents/MacOS/Dock admin 113 99.3 0.4 4563544 31160 ?? Rs 日03下午 655:29.85 /System/Library/CoreServices/loginwindow.app/Contents/MacOS/login admin 5119 1.6 1.8 4983908 147960 ?? S 3:02下午 0:29.01 /Applications/Google Chrome.app/Contents/Versions/68.0.3440.106/G _windowserver 174 0.9 0.7 5638312 59348 ?? Ss 日03下午 20:16.25 /System/Library/PrivateFrameworks/SkyLight.framework/R
這個選項組合,能夠顯示屬於每個使用者的程序資訊。
題 意思 SER 使用者 ID. 程序的所有者。 CPU 以百分比表示的 CPU 使用率 MEM 以百分比表示的記憶體使用率 SZ 虛擬記憶體大小 SS 程序佔用的實體記憶體的大小,以千位元組為單位。 TART 程序執行的起始時間。若超過24小時,則用天表示。
3. 查詢某個程式特定的程式
rimideiMac-10:test admin$ ps -ef|grep redis
503 540 1 0 日03下午 ?? 0:08.94 /usr/local/opt/redis/bin/redis-server 0.0.0.0:6379
503 5403 4533 0 3:27下午 ttys001 0:00.00 grep redis
4. top – 顯示任務
雖然 ps 命令能夠展示許多計算機執行狀態的資訊,但是它只是提供,ps 命令執行時刻的機器狀態快照。 為了看到更多動態的資訊,我們使用 top 命令:
$ top
5. bg –
把一個任務放到後臺執行
在後臺執行程式 也可以使用 & 執行
6. kill – 給一個程序傳送訊號
kill 9527
7. shutdown – 關機或重啟系統
網路系統
1. 說明:
當談及到網路系統層面,幾乎任何東西都能由 Linux 來實現。Linux 被用來建立各式各樣的網路系統和裝置, 包括防火牆,路由器,名稱伺服器,網路連線式儲存裝置等等
2. ping - 傳送 ICMP ECHO_REQUEST 軟體包到網路主機 最基本的網路命令是 ping。這個 ping 命令傳送一個特殊的網路資料包,叫做 IMCP ECHO_REQUEST,到 一臺指定的主機。大多數接收這個包的網路裝置將會回覆它,來允許網路連線驗證。
注意:大多數網路裝置(包括 Linux 主機)都可以被配置為忽略這些資料包。通常,這樣做是出於網路安全 原因,部分地遮蔽一臺主機免受一個潛在攻擊者地侵襲。配置防火牆來阻塞 IMCP 流量也很普遍
rimideiMac-10:test admin$ ping www.baidu.com
PING www.a.shifen.com (180.97.33.108): 56 data bytes
64 bytes from 180.97.33.108: icmp_seq=0 ttl=54 time=37.258 ms
64 bytes from 180.97.33.108: icmp_seq=1 ttl=54 time=37.536 ms
64 bytes from 180.97.33.108: icmp_seq=2 ttl=54 time=37.661 ms
一旦啟動,ping 命令會持續在特定的時間間隔內(預設是一秒)傳送資料包,直到它被中斷(按下組合鍵 Ctrl-c)
3. traceroute - 列印到一臺網路主機的路由資料包 這個 traceroute 程式(一些系統使用相似的 tracepath 程式來代替)會顯示從本地到指定主機 要經過的所有“跳數”的網路流量列表
rimideiMac-10:test admin$ traceroute www.baidu.com
traceroute: Warning: www.baidu.com has multiple addresses; using 180.97.33.108
traceroute to www.a.shifen.com (180.97.33.108), 64 hops max, 52 byte packets
1 * * *
2 10.4.0.2 (10.4.0.2) 2.873 ms 1.298 ms 4.211 ms
3 1.163.70.125.broad.cd.sc.dynamic.163data.com.cn (125.70.163.1) 24.743 ms 3.445 ms
100.64.0.1 (100.64.0.1) 2.700 ms
4 220.167.87.201 (220.167.87.201) 44.881 ms 7.184 ms 3.658 ms
5 171.208.199.181 (171.208.199.181) 3.891 ms
171.208.199.237 (171.208.199.237) 6.653 ms
171.208.199.205 (171.208.199.205) 3.264 ms
6 202.97.66.194 (202.97.66.194) 36.510 ms
202.97.122.213 (202.97.122.213) 39.014 ms
202.97.29.253 (202.97.29.253) 31.803 ms
7 202.102.73.150 (202.102.73.150) 42.186 ms
202.102.69.250 (202.102.69.250) 34.208 ms
202.102.73.150 (202.102.73.150) 38.738 ms
對於那些沒有提供標識資訊的路由器(由於路由器配置,網路擁塞,防火牆等 方面的原因),我們會看到幾個星號
4. netstat - 列印網路連線,路由表,介面統計資料,偽裝連線,和多路廣播成員
程式被用來檢查各種各樣的網路設定和統計資料。通過此命令的許多選項,我們 可以看看網路設定中的各種特性。使用“-ie”選項(或者ifconfig),我們能夠檢視系統中的網路介面:
```
rimideiMac-10:test admin$ ifconfig
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384 options=1203<RXCSUM,TXCSUM,TXSTATUS,SW_TIMESTAMP> inet 127.0.0.1 netmask 0xff000000 inet6 ::1 prefixlen 128 inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1 nd6 options=201<PERFORMNUD,DAD> gif0: flags=8010<POINTOPOINT,MULTICAST> mtu 1280 stf0: flags=0<> mtu 1280 XHC20: flags=0<> mtu 0 en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500 options=10b<RXCSUM,TXCSUM,VLAN_HWTAGGING,AV> ether ac:87:a3:2a:ef:b5 nd6 options=201<PERFORMNUD,DAD> media: autoselect (none) status: inactive en1: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500 ether b8:09:8a:c7:ac:e5 inet6 fe80::8a1:d9f6:338c:5833%en1 prefixlen 64 secured scopeid 0x6 inet 10.2.1.64 netmask 0xfffff800 broadcast 10.2.7.255 nd6 options=201<PERFORMNUD,DAD> media: autoselect status: active
```
>第一個,叫做 eth0,是 因特網介面,和第二個,叫做 lo,是內部迴環網路介面,它是一個虛擬介面,系統用它來 “自言自語” eth1 內網地址
-
wget - 非互動式網路下載器
wget www.baidu.com
ssh
-
rsa加密演算法
rsa演算法是一種非對稱的加密演算法,他的最大特點就是公鑰加密,私鑰解密
-
ssh-keygen 使用ssh-keygen生成一對公鑰私鑰對
-
ssh 登入格式
ssh [email protected] -p port
-
scp使用方式
scp [email protected] -p port:檔案路徑 檔案路徑
查詢檔案
1.locate – 通過名字來查詢檔案
locate 程式快速搜尋路徑名資料庫,並且輸出每個與給定字串相匹配的檔名。比如說, 例如,我們想要找到所有名字以“zip”開頭的程式。因為我們正在查詢程式,可以假定包含 匹配程式的目錄以“bin/”結尾。
[
相關推薦
# Linux 命令列基礎
linux 命令列基礎
shell是什麼
1. shell
當我們說的命令列時,我們實際上指的是shell。shell是一個接受由鍵盤輸入的命令,並將其傳遞給作業系統來執行的程式。幾乎所有的Linux發行版都提供shell程式,改程式來自於稱之為bash的GNU
Linux命令列操作基礎練習
linux是支援多國語言的,terminal在預設的情況下,無法支援以中文編碼輸出資料的.這個時候,我們就得將支援語系改為英文,才能以英文顯示出正確的訊息
1,顯示目前所支援的語系
Git命令列基礎(第一課) - 檢視版本和配置使用者資訊(Linux)
檢視版本和配置使用者資訊
檢視版本 or 確認是否安裝成功
配置 User 資訊
檢視版本 or 確認是否安裝成功
$ git --version
配置 User 資訊
// 配
帶你玩轉Linux命令列(基礎入門篇)
一、學習前準備
幫助文件
Tab 補全
Tab 補全是非常有用的一個功能,可以用來自動補全命令或檔名,省時準確。
未輸入狀態下連按兩次 Tab 列出所有可用命令
已輸入部分命令名或檔名,按 Tab 進行自動補全,多用你就肯定會喜歡的了。
Linux命令之基礎
範例 inux 常用 options 開關 管理 連續 管理員 linux文件系統 介紹一些基本的linux常用命令以及技巧
參考書目:鳥哥的Linux私房菜
開關機
數據同步寫入磁盤:sync
重啟:reboot(立即重啟)shutdown -r now (立刻重啟)
linux 命令行基礎
編輯模式 根目錄 小寫 文件操作 all 名詞 linu 登錄 提示 命令行基礎
一些名詞
「圖形界面」
「命令行」
「終端」
「shell」
「bash」
安裝使用
Windws: 安裝git, 打開 gitbash
Linux 打開終端
linux命令列學習
awk ~ 匹配符
在pattern部分進行欄位匹配操作。文中包含bin的很多,但要找到以:分割後,第五個匹配bin的使用者名稱,相當於用:將每行分割成陣列,索引5值匹配,則將第一個打印出來
awk -F: '$5 ~ /bin/{print $1}' /etc/passwd
awk NR條件語
如何在Linux 命令列終端分屏
下面介紹兩種終端分屏工具:screen和tmux
一、使用screen分屏(只能上下分屏,不能左右分屏)
(1)安裝工具
在ubuntu系統中使用sudo apt-get install screen 安裝screen工具
(2)使用工具
1,輸入命令scree
RF工具自定義linux命令列命令執行程式碼及資料庫訪問
之前寫了幾次資料庫連線和linux命令列執行的程式碼,在此儲存下。
另考慮到python2的中文編碼問題,註釋等都用簡單英文,見諒~
import paramiko
class Excsshcmd():
ssh = paramiko.SSHClient()
在 Linux 命令列中使用 tcpdump 抓包
tcpdump 是一款靈活、功能強大的抓包工具,能有效地幫助排查網路故障問題。
以我作為管理員的經驗,在網路連線中經常遇到十分難以排查的故障問題。對於這類情況,tcpdump 便能派上用場。
tcpdump 是一個命令列實用工具,允許你抓取和分析經過系統的流量資料包。它通常被用作於網路故障分析工具以及安全
Linux命令列使用matplotlib,報錯_tkinter.TclError: no display name and no $DISPLAY environment variable問題解決
問題
我在Linux命令列使用Python的matplotlib,報錯
File "/usr/lib/python3/dist-packages/matplotlib/pyplot.py", line 1466, in title
return gca().set_titl
服務計算 - 3 Golang開發Linux命令列實用程式 - selpg
文章目錄
Golang開發Linux命令列實用程式 - selpg
1. 介紹
2. 設計與實現
2.1 設計思路
2.2 功能模組劃分與實現
4 參考文獻
Linux命令列內容
命令列內容:
一般模式
移動游標
【ctrl】+【f】
螢幕【向前】移動一頁
【ctrl】+【b】
螢幕【向後】移動一頁
0
這是數字0:移動到這一行的最前面字元處
mongodb linux 命令列部分命令
shell相關命令
輸入help可以看到基本操作命令:
連線
./mongo --port 8000 --host 10.130.161.16
第二種連線方式
mongo IP:埠/資料庫名 -u 使用者名稱 -p 密碼
退出
exit
linux-命令列快捷方式使用
CTRL+P 命令向上翻滾
CTRL+N 命令向下翻滾
CTRL+U 命令列中刪除游標前面的所有字元
CTRL+D 命令列中刪除游標後面的一個字元
CTRL+H 命令列中刪除游標前面的一個字元
CTRL+F 命令列中游標向後移動
CTRL+B 命令列中游標向前移動
C
服務計算3 開發 Linux 命令列實用程式
文章目錄
概述
1.解析引數
2.命令列的'<','>','|'符號
3.執行命令列的命令
4.總結
概述
本次作業參考潘老師的部落格 https://pmlpml.github.io/ServiceComput
Linux命令列與shell指令碼程式設計大全(二)
十一、處理使用者輸入
命令列引數
讀取引數: $0是程式名,$1是第一個引數,$2是第二個引數,以此類推,直到第9個引數$9。當引數個數超過10以後,需要在變數數字周圍加上花括號,如${10},如果輸入到命令列的引數是字串且含有空格,需要使用引號。
#! /bin/bash
echo
Linux命令列與shell指令碼程式設計大全(一)
一、基本 bash shell命令
建立檔案 : touch
連結檔案:符號連結:是一個實實在在的檔案,兩個通過符號連結在一起的檔案,彼此的內容並不相同。使用ln -s命令。
硬連結:會建立獨立的虛擬檔案,其中包含了原始檔案的資訊及位置。但他們從根本上而言是同一個檔案。原始檔案必須事
Linux命令列與shell指令碼程式設計大全(三)
十二、呈現資料
輸入和輸出
標準檔案描述符
0 STDIN 標準輸入
&n
linux 命令列不顯示路徑了,而顯示為-bash-4.1#的兩種解決辦法
問題描述:
linux的命令列介面顯示的不是路徑,而是-bash-4.1#:
原因分析:
出現這個問題的原因是因為沒有配置.bash_profile的問題,或者是我們不小心清空或刪除了.bash_profile檔案。
解決方法
方法一:修改 ~/.bash_profile檔案
1、修改~/.bas