㈠ 什麼是shell
Shell俗稱殼,它提供了用戶與內核進行交互操作的一種介面,它接收用戶輸入的命令並把它送入內核去執行
Shell實際上是一個命令解釋器,它通過解釋用戶輸入的命令並把它傳輸給系統內核去執行。
Shell有自己的編程語言,它允許用戶編寫由shell命令組成的程序。Shell編程語言具有普通編程語言的很多特點,比如它也有循環結構和分支控制結構等。
㈡ 求Bash shell命令
at----安排,檢查,刪除隊列中的工作
cat----連接文件並列印到標准輸出
cd----改變目錄,能處理絕對和相對路徑
chmod----改變文件保護許可權
chown----改變文件的屬主和組
clear----清除屏幕(象DOS中的cls)
cp----拷貝文件
crontab----操作每個用戶的守護程序和執行的時間表
date----列印或設置系統日期和時間
dd----拷貝一個文件(並可以同時轉化它)
df----報告磁碟剩餘空間
----報告磁碟空間使用情況
file----探測文件和目錄類型
find----搜索目錄中文件
grep----在文件中搜索匹配的行並輸出
gzip----壓縮或展開文件
head----顯示文件的前幾行
history----顯示歷史命令記錄
kill----中止一個進程
last----顯示過去多少個用戶或終端登錄到本機器
less----想對於more命令, 用來按頁顯示文件
ln----在文件間建立連接
ls----列出當前目錄下的文件
man----顯示具有一定格式的在線手冊
more----命令能逐頁閱讀文本
mount----安裝一個文件系統
mv----將文件改名
passwd----設置用戶的密碼
ps----命令羅列運行進程
reboot----重新啟動系統
rm----命令用於刪除文件
su----創建和編輯Unix歸檔文件
tar----創建和編輯Unix歸檔文件
touch----改變文件的時間參數
wc----統計一個文件中的位元組數,單詞數,行數
who----查看其他登錄的用戶
which----which--顯示命令的全路徑
ping----命令—確定網路上機器是否可達或到達速率
使用多任務
輸出重定向
了解進程
--------------------------------------------------------------------------------
在linux系統中有兩種操作界面,分別是:X窗口模式(預設為KDE)和控制台模式(Console)。兩中操作界面類似於Windows和DOS。
如果在X窗口模式下想轉變為控制台模式,您只需同時按下Alt+F1(或F2…F6)鍵,屏幕將會出現新的等錄窗口,您可以重新以控制台模式登錄系統。如果在控制台模式下,要想返會X窗口模式,需要您同時按下Ctrl+Alt+F7鍵。
如果沒有啟動X窗口方式,想從控制台方式中啟動X窗口方式,請在控制台方式中輸入:startx(或kdm),就可以啟動X窗口。
在上面兩章中我們已經介紹了X窗口(預設為KDE)的操作,在本章和下一章中我們將主要討論控制台模式下的操作,同時也將會間插相應的KDE操作。
6.1 啟動和關閉系統
啟動系統
如果您在安裝過程中已經安裝了LILO, 您就可以啟動系統,LILO啟動時,屏幕顯示:
LILO:
單擊Tab鍵,屏幕將顯示所有可以啟動的操作系統。鍵入顯示的操作系統名,您就可以啟動相應操作系統。鍵入Linux可啟動BluePoint Linux&127;系統。如果您直接擊回車鍵或等待5秒鍾,同樣可以啟動BluePoint Linux&127;操作系統。
另一種啟動linux系統的方法是:在DOS/WINDOWS系統下運行loadlin.exe。具體使用方法參見相應資料。
登錄程序
Linux系統是多用戶系統。如果想使用系統,就要鑒別使用者身份進行鑒別,這就是所謂的注冊程序。在安裝過程中,我們已經創建了叫root超級用戶帳號。啟動系統後,在登錄命令行,鍵入root,再輸入密碼("Password")。如果密碼正確,登錄成功。
建議: 進入系統後建立第二個帳號(非特權用戶),以便日常使用。
因為root帳號擁有整個系統的資源所有權,是管理帳號而非工作帳號。
如果您要創建工作帳號,需要兩個步驟:
第一步: 創建用戶注冊帳號。
鍵入:adsr login_name
其中login_name是您選擇的注冊帳號(不要使用root)。
第二步: 創建帳號密碼。
鍵入:passwd login_password
其中login_password是您選擇的帳號密碼(最好不要 和root密碼相同)。
如果普通用戶要想使用系統的所有特權,使用su命令,並在root命令行中輸入 root密碼。另外,您還可以使用超級用戶模式文件管理器來獲取系統資源, 使用方法是:
「K菜單」-->」系統應用」-->」文件管理器(超級用戶方式)」
如果您的同事(家庭成員…)要使用您計算機系統,應該為這些用戶創建新的用戶帳號,而不能將root帳號告訴他們。注意:您要充分利用Linux是多用戶操作系統這個優點。
關閉系統
關閉系統的方法有很多,但千萬不要直接關斷電源!
因為,Linux是使用緩存和磁碟(硬碟,軟盤…)來加速輸入/輸出的;如果直接關斷電源,存起來的數據可能沒有真正寫到磁碟,可能會導致數據丟失。
正確關閉系統是下面幾種:
鍵入/sbin/halt命令(或直接鍵入halt),等待系統掛起的消息(systemhalted)再關閉系統
快速關閉系統方法是同時按下Ctrl+Alt+Del鍵(象DOS一樣),系統將卸載所有外圍設備,並等待計算機重初始化時,再關斷電源 。
使用KDM會話。在桌面上任意位置單擊右鍵,選擇「注銷」。再選擇"關閉"系統或"重啟"系統。
如果直接關斷電源或發生掉電,會出現什麼情況呢?Linux重新啟系統時會檢查未正確卸載的磁碟(fsck 操作)。持續幾分鍾後。系統可能才會正確啟動。
6.2 Linux 的shells
一旦進入系統,您將會看到$的提示符,提示您鍵入命令。這個等待命令的程序叫shell,其作用是將指令傳送給Linux的內核。
Linux系統中有許多不同shell: bash,csh,ksh,tcsh,sh,zsh…..。
在BluePoint Linux&127;系統系統中,shell選用"Bash",因為Bash shell簡單並且功能強大。
如果您想知道目前使用的是那種shell,您只要簡單鍵入: echo $SHELL
可以發現系統正在使用的shell類型。
注意:不同的shell有不同的語法。
6.3 使用Bash shell
和DOS系統一樣, Linux系統控制台也採用命令行方式。需要在控制台上輸入命令,才會執行。
快捷方式
通用的鍵盤快捷方式是:
. Ctrl+A 到開始行
. Ctrl+U 清除目前行
. Ctrl+C 停止運行的程序
.使用分號能在同一行中鍵入幾個命令。
.上下鍵能獲取命令歷史記錄。
自動名字補全
在Linux系統下,程序和命令名有時十分長,Bash支持自動名字補全功能。
您開始鍵入命令名字,再擊Tab鍵,系統將為您自動補全命令或程序或目錄名字。
例如: 如果您要使用解壓程序bunzip。鍵入
$bu
接著擊Tab鍵:Bash將顯示所有以bu開始的名字。例如:
buildhash buildin bunzip
鍵入n (bunzip2是唯一名字第三個字元是n),再擊Tab鍵。shell將為您在命令行補全名字,您只要擊回車鍵就可以執行bunzip2命令了。
at命令
at,batch,atq,atrm:安排,檢查,刪除隊列中的工作。
at [-V][-q 隊列][-f 文件名][-mlbv ] 時間
at -c 作業 [作業…]
atq [-V] [-q隊列][-v]
atrm [-V] 作業 [作業…]
batch [-V] [-q隊列] [-f 文件名] [-mv ] [時間]
at在設定時間執行作業。
atq列出用戶排在隊列中的作業,如果是超級用戶,就列出隊列中所有的作業。
atrm 刪除隊列中的作業。
batch 用低優先順序運行作業,只要系統的loadavg(系統平均負載)<1.5(或者在atrun中設定的值),它就可開始執行作業。
超級用戶可以在任何情況下使用at系列的命令。一般用戶使用at系列命令的許可權由文件/etc/at.allow,/etc/at.deny控制。如果/etc/at.allow存在,則只有列在這個文件中的用戶才能使用at系列命令。如果/etc/at.allow文件不存在,則檢查文件/etc/at.deny這個文件。只要不列在這個文件中的用戶都可以使用at系列的命令。預設的配置是文件/etc/at.deny是一個空文件,這表明所有的用戶都可以使用a系列的命令。
例如:
在二天後上午8點執行文件workfile中的作業。
[test@bluepoint /]$at -f workfile 8am+2 days
cat命令
cat---連接文件並列印到標准輸出。
cat常常用來顯示文件,類似於DOS下命令TYPE。
例如:
顯示文件file的內容
[test@bluepoint /]$cat file
將file1,file2連接起來輸出到文件file3中。
[test@bluepoint /]$cat file1 file2>file3
cd命令
cd---改變目錄,能處理絕對和相對路徑。
例如:
假如當前在根目錄中,想進入etc/子目錄。鍵入(相對目錄):
[test@bluepoint /]$cd etc/
如果想進入/usr/bin目錄,鍵入(絕對目錄):
[test@bluepoint /]$cd /usr/bin/
此命令一些實用選項是:
回到父目錄(注意cd和.. 之間有空格)
[test@bluepoint /]$cd ..
回到目前目錄了。
[test@bluepoint /]$cd .
cd ~ 到達個人目錄
[test@bluepoint /]$cd ~
chmod命令
chmod-- 改變文件保護許可權
文件保護控制用戶對文件的訪問權,有三個安全級別:所有者級別,組訪問級別,其它用戶訪問級別。在這三個級別中,又有三種許可權:讀(r),寫(w),執行(x)。(用戶可以使用ls -lg 命令來觀看某一文件的所屬的group)。
對於文件來說讀許可權意味著可以看文件的內容,寫文件權可以修改或刪除文件,執行許可權則可以執行它。對於目錄來說,讀許可權意味可以查看目錄下的內容,寫許可權意味著可以在目錄中建立新文件,並可以從目錄中刪除文件,執行許可權意味著可以從一個目錄轉到另一個目錄。
保護許可權:格式為[ugoa][[+-=][rwxXstugo…]…][….]"ugoa"控制哪些用戶對該文件許可權將會改變:(u)文件的所有者,(g)與文件所有者同組的用戶,(0)其它組的用戶,(a)所有用戶。操作符"+"使得用戶許可權被追加到每個目錄文件。操作符"-"使得用戶許可權被取消,操作符"="使用戶只有這些許可權。"rwxXstugo"選擇新的屬性:(r)讀許可權(w)寫許可權(x)執行許可權(和對目錄的訪問權)(X)只有目標文件對某些用戶是可執行的或該目標文件是目錄時才追加X屬性(s)同時設定用戶或組ID(t)保存程序的文本到交換設備上(u)目標文件屬主(g)目標文件屬主所在的組(o)其它用戶。如果數字來表示屬性,則(0)沒有許可權(1)執行權(2)讀權(4)寫權,然後相加,所以數字屬性的格式應為3個0到7的八進制數,其順序是(u)(g)(o)文件名:以空格分開的要改變許可權的文件列表,支持通配符。
範例:
使所有用戶對文件testfile有執行權
[test@bluepoint /]$chmod a+x testfile
使所有用戶對文件testfile讀權
[test@bluepoint /]$chmod 222 testfile
chown 命令
chown --改變文件的屬主和組。
用戶:可以是用戶名或用戶ID。
組:可以是組名或組的ID。
文件名:以空格分開的要改變許可權的文件列表,支持通配符。
例如:
[test@bluepoint /]$ chown host:test file1
將文件file1的屬主改為host組的test。
clear命令
clear--清除屏幕(象DOS中的cls)。
例如:
[test@bluepoint /] $clear
清除屏幕,提示符將被移到左上角。
cp 命令
cp--拷貝文件
用法:
cp [options] 源文件 目標文件
選項:
-f,--force:強行覆蓋已存在的目標文件
-i,-interactive:在強行覆蓋已存在的目標文件時給出提示。
-R,--recursive:整個目錄拷貝。
例如:
[test@bluepoint /]cp sourcefile destfile
拷貝文件sourcefile到文件destfile。
crontab命令
crontab--操作每個用戶的守護程序和執行的時間表。
crontab file [-u user]--用指定的文件替代目前的crontab。
crontab - [-u user]--用標准輸入替代目前的crontab。
crontab -l [user]--列出用戶目前的crontab。
crontab -e [user]--編輯用戶目前 的crontab 。
crontab -d [user]--刪除用戶目前 的crontab 。
crontab -c dir --指定crontab的目錄。
crontab文件的格式:M H D m d cmd
M:分鍾(0-59)
H:小時(0-23)
D:天(1-31)
m:月份(1-12)
d:一星期內的天(0-6,0為星期天)
cmd:要運行的程序,程序被送入shell執行,這個shell只有USER,HOME,SHELL三個環境變數。
例如:
列出用戶目前的crontab
[test@bluepoint /]$crontab -l
$MIN HOUR DAY MOUTH DAYOFWEEK COMMAND
8 6 * * * clear
[test@bluepoint /]$
date命令
date--列印或設置系統日期和時間
date [-u] [-d datestr] [-s datestr] [--utc][--universal][--date=datestr][--set=datestr] [--help][--version][+FORMAT][MMDDhhmm[[CC]YY][。ss]]
+FORMAT:控制如何顯示日期。
指令: % :%號
n:新行
t:TAB
時間域
%H 小時 (00..23)
%l 小時 (00..12)
%k 小時 (0..23)
%l 小時 (1..12)
%M 小時 (00..59)
%p AM或者PM
%r
㈢ 關於linux命令行,shell命令,vi命令
shell並不是一個所謂在「終端」執行的東西,而是一個linux內核與用戶之間交互的界面,也可以理解成為是一個專業翻譯的角色。
vi不過就是一個文本編輯器罷了,就如同DOS或Windows系統中的Edit一樣,只不過這個vi文本編輯器的功能是可以靠添加模塊來擴展罷了。在unxu或linux中還有一個文本編輯器叫『emacs』,只不過這個編輯器更煩,更難於掌握。
其實linux並不難學,無非就是些常用的『命令』罷了,而且這些所謂的『命令』多半都是以源碼的方式存在在系統中的。所謂『命令行』不過就是調用這些源碼後,然後讓一個叫『shell』的『傢伙』解釋給linux內核去聽。而這些所謂的『命令』統統都在bin或是sbin的目錄下面。
linux在用戶登錄以後,自行會啟動一個shell,所有用戶必須通過shell才能與系統會話。linux的所謂窗口界面,只不過就是系統在用戶登錄後自行調用了一個shell腳本而啟動了Xwindow後的表象罷了。
所謂『命令行』其實就是shell的解釋命令。
㈣ 顯示歷史命令表的所有內容的命令
linux查看歷史命令history
來源:yonggang7的專欄|2014-11-03
1. history作用
linux的history命令的作用是,記錄執行過的命令。 用法: history [n] n為數字,列出最近的n條命令 -c 將目前shell中的所有history命令消除 history [-raw] histfiles -a 將目前新增的命令寫入histfiles, 默認寫入~/.bash_history -r 將histfiles內容讀入到目前shell的history記憶中 -w 將目前history記憶的內容寫入到histfiles
shell > history 34 14-10-28 16:19:24 ll 35 14-10-28 16:19:26 vim test 36 14-10-28 16:19:33 ll 37 14-10-28 16:19:34 ll
展示3行
shell > history 3 1032 14-11-02 16:10:41 history 1033 14-11-02 16:10:46 history |more 1034 14-11-02 16:11:15 history 3
使用! 執行歷史命令。 ! number 執行第幾條命令 ! command 從最近的命令查到以command開頭的命令執行 !! 執行上一條
shell > !1046 history 3 1045 14-11-02 16:22:38 head ~/.bash_history 1046 14-11-02 16:35:37 history 3 1047 14-11-02 16:35:48 history 3 shell > !! history 3 1046 14-11-02 16:35:37 history 3 1047 14-11-02 16:35:48 history 3 1048 14-11-02 16:35:52 history 3 shell > !head head ~/.bash_history #1414484377 cd update/ #1414484377
2. history配置修改
history記錄的行數
shell > echo $HISTSIZE 1000 shell >
默認記錄1000行 配置文件在/etc/profile中修改
HISTSIZE=1000 export HISTSIZE
歷史命令文件記錄在 ~/.bash_history中
想要讓linux的history命令顯示時間,history是默認不帶時間, 在/etc/profile 中增加
export HISTTIMEFORMAT="%y-%m-%d %H:%M:%S "
查看.bash_history
shell > head ~/.bash_history #1414484377 cd update/ #1414484377 ll #1414484388 vim address #1414484439 ll #1414484440 ll shell >
3. 同一賬號同時多次登錄寫入history
普通情況下, 當以bash登錄系統時,系統會從~/.bash_history讀取以前運行的命令 當注銷時,把最新的1000(HISTSIZE)條命令更新到~/.bash_history文件中。 也可以使用history -w強制立刻寫入,僅保留最新的。
當同一賬號,同時登錄多個bash時,只有最後一個退出的會寫入bash_history,其他的都被覆蓋了。
4. Ctrl+r 反向查詢歷史命令
使用Ctrl+r反向查詢歷史命令,將匹配的最新一條顯示出來 如果還想繼續向上查詢,繼續按Ctrl+r
shell > history 3 1048 14-11-02 16:35:52 history 3 1049 14-11-02 16:36:11 head ~/.bash_history 1050 14-11-02 16:41:05 history 3 (reverse-i-search)`his': head ~/.bash_history
地址:http://blog.csdn.net/yonggang7/article/details/40710623
㈤ 怎樣清除Linux的shell命令歷史記錄
有兩種方法:
一、清除 ~/.bash_history中的相關命令行。
二、在bash shell命令行狀態下,執行 HISTSIZE=0
㈥ csh shell模式下利用上下鍵切換歷史命令,命令顯示一直累加怎麼辦
M-p
M-n
這是默認百的快捷度鍵知。
如果要用方道向鍵回,加到答 ~/.emacs
12345678
(defun my-comint-mode-hook () (interactive) (define-key comint-mode-map (kbd "<up>") 'comint-previous-input) (define-key comint-mode-map (kbd "<down>") 'comint-next-input) )(add-hook 'comint-mode-hook 'my-comint-mode-hook)
㈦ Linux下的shell編程 如何替換文件中的內容
可以這樣做:
方法1:sed -i 's/被替換的內容/要替換成的內容/' file
方法2:sed 's/被替換的內容/要替換成的內容/g' file > file.out;mv file.out file。
(7)shell歷史命令擴展閱讀:
Shell編程的常用技巧:
一、自動補齊:在linux中對於命令或路徑,可以TAB鍵進行自動補全,以下事項需要注意:
1、只存在一個該輸入字元開頭的命令或路徑,此時自動補全;
2、存在多個該輸入字元開頭的命令或路徑,此時第一次點擊TAB鍵無效,此時再次點擊TAB會羅列出所有該字元開頭的命令或路徑,繼續輸入直到僅僅剩一個時自動補全;
3、如果命令已經是完整的,TAB鍵則是本來的移動功能;而路徑的話要看命令自身的行為決定後續動作。
二、歷史命令
1、history命令可以顯示歷史執行過的命令;
2、使用!+序號執行該序號對應的命令;
3、使用!+字元執行該字元開頭的最後一次執行的指令。
三、命令別名
1、實現別名:alias ddd="df -Th";
2、刪除別名:unalias ddd;
3、顯示所有別名命令列表:alias;
4、存放位置:~/.bashrc (加入該文件後,重啟後不會消失)。
四、重定向
1、重定向標准輸入:< 命令接收輸入的途徑由鍵盤改為文件;
2、重定向標准輸出:> 將命令的執行結果輸出到指定文件,而不是直接顯示到屏幕;
3、重定向標准輸出:>> 將命令的執行結果追加輸出到指定文件;
4、重定向標准錯誤:2> 清除指定文件的內容,並把標准錯誤信息保存到指定文件;
5、重定向標准錯誤:2>> 標准錯誤信息追加到指定文件;
6、重定向標准輸出和標准錯誤:&> 將標准輸出、標准錯誤信息全部保存到指定文件,而不是直接顯示在屏幕上。
㈧ linux中Shell歷史命令記錄文件的路徑是什麼
路徑/etc/bashrc。在 Linux 下面可以使用 history 命令查看用戶的所有歷史操作,同時 shell 命令操作記錄默認保存在用戶目錄的 .bash_history 文件中。通過這個文件可以查詢 shell 命令的執行歷史。
代碼如下:
HISTFILESIZE=4000
HISTSIZE=4000
HISTTIMEFORMAT='%F %T'
export HISTTIMEFORMAT
注意:
HISTFILESIZE 表示在 .bash_history 文件中保存命令的記錄總數,默認值是 1000;
HISTSIZE 定義了 history 命令輸出的記錄總數;
HISTTIMEFORMAT 定義了時間顯示格式,該格式與 date 命令後的 「+"%F %T"」 是一樣的;
HISTTIMEFORMAT 作為 history 的時間變數將值傳遞給 history 命令。
(8)shell歷史命令擴展閱讀:
顯示歷史命令
history 顯示全部歷史
history 數字 顯示之前執行過的若干命令,例:history 2 顯示執行過的上兩條命令
使用上下箭頭鍵也可以查看上一條根下一條命令,
3.運行歷史命令
!! 運行上一條命令
!88 運行第88條命令
!88 /test 運行第88條命令並在命令後面加上/test
!?CF? 運行上一個包含CF字元串的命令
!ls 運行上一個ls命令
!ls:s/CF/l 運行上一個ls命令,其中把CF替換l
fc 編輯並運行上一個歷史命令
fc 66 編輯並運行第66個歷史命令
fc -e /usr/bin/vim 66 使用vim編輯第66個命令並運行
㈨ 如何 查看xhsell 歷史命令
在每個用戶目錄都有一個.bash_history文件,裡面記錄了該用戶的所有命令操作,無論這個用戶是直接登錄的還是通過xshellssh方式過來的。那麼,首先必然有一個root用戶,所有在/root/.bash_history裡面記錄了root用戶的命令操作,你可以用cat、vim等工具來查看。另外,假設你還有一個用戶叫做XXX,那麼在/home/XXX/.bash_history裡面就記錄了XXX用戶的命令操作。當然,值得注意的一點是,這個文件是可以被用戶更改的,所有還得通過手段來幫助你確認信息,比如系統日誌等等。
㈩ shell如何聯想記憶
history命令:用於顯示歷史記錄和執行過的指令命令。history命令讀取歷史命令文件中的目錄到歷史命令緩沖區和將歷史命令緩沖區中的目錄寫入命令文件。該命令單獨使用時,僅顯示歷史命令,在命令行中,可以使用符號!執行指定序號的歷史命令。例如,要執行第2個歷史命令,則輸入!2。
_istory命令:是被保存在內存中的,當退出或者登錄shell時,會自動保存或讀取。在內存中,歷史命令僅能夠存儲1000條歷史命令,該數量是由環境變數 HISTSIZE進行控制。默認是不顯示命令的執行時間,命令的執行時間,history 已經記錄,只是沒有顯示。
__喝縵氬檠掣鯰沒г諳低成現蔥辛聳裁疵睿梢允褂_oot用戶身份登錄系統,檢查Home目錄下的用戶主目錄下的「.bash_history」文件,該文件記錄了用戶所使用的命令和歷史信息。
__trl+R搜索歷史命令;當你執行了一串相當長的命令之後,你只要用關鍵字搜索一下歷史命令然後重新執行這條命令而不需要將整條命令再輸一遍。方法是:按下Ctrl+R然後輸入關鍵字。如搜索」date」,則顯示歷史的命令中含有」date」的命令
?