一,本章內容
1,linux系統基本命令
2,常見文件操作命令及其使用方法
3,查看修改系統日期時間
4,查看管理聯線用戶
5,切換用戶命令
6,定位,查找文件和關鍵字命令的使用
7,輸入,輸出相關命令
備註:本Linux系統爲RHEL5.3
二,linux系統基本命令
1,切換工作目錄cd
路徑表示:1,以/爲起點絕對路徑,如/root,/home等
2,以.爲起點相對路徑,”.”表示當前目錄,”..”表示當前目錄的上 一級目錄。如./test,../etc/samba/等
# cd ../ #進入當前目錄的上級目錄
2,查看當前路徑pwd
$ pwd
3,查看文件列表
# ls [option [filename] ]
l:長格式
d:顯示目錄,而非目錄中文件
a:顯示隱藏文件
k:以k字節爲單位顯示文件大小
S:按文件大小排序
h:以直觀方式查看文件列表
# ls -l /dev/sdb1
4,ln文件鏈接命令
ln [option] target LInk_name
# ls -s /home/user1/a /home/user1/test/b #s選項表示軟鏈接
# ls /home/user1/a /home/user1/test/b # 沒有s選項表示硬鏈接
軟鏈接:只是相當於一個快捷方式
硬鏈接:指向同一個存儲區域,多個副本一個改變都發生改變
三,常見文件操作
1,touch創建文件命令
# touch ab #創建空文件ab
#touch -d “6/2/17 21:28” ed #創建並修改文件的時間戳記
2,mkdir創建目錄命令
#mkdir [option] filename
# mkdir test #創建目錄test
#mkdir -p a/b/c/d #選項p可以同時創建一個路徑中的多個目錄
3,mv移動,重命名文件
# mv sou_file dir
# mv a /test
#mv b c d file/ #一次移動多個文件b c d到目錄file中
4,cp複製文件命令
# cp [option] source dir
# cp /etc/d.conf d1.conf #複製的文件權限會發生變化
# cp -R test /file #R選項遞歸複製目錄及目錄中文件
# cp -p /etc/d.conf d1.conf #p選項保持複製的文件權限
5,rm刪除文件
# rm [option] file
r:刪除目錄時將目錄中所有內容一併刪除
f:忽略刪除的目錄中不存在的子目錄,並且刪除時不提醒用戶
# rm -rf test
# rm -rf * #刪除當前目錄中的所有文件
6,rmdir僅能刪除空目錄
# rmdir [option] dir
p:按路徑刪除空目錄
# rmdir file
# rmdir -p a/b/c/d/ #p選項按路徑刪除空目錄
7,file查看文件類型
# file filename
L:追溯源文件查看文件類型
# file a
# file -L /bin/csh
8,文本文件內容相關
1],cat查看文本文件內容
# cat [potion] filename
v:顯示文本內容的同時,也顯示文件中的控制字符
# cat smb.conf
2],tail從文本尾查看文本內容
# tail [potion] filename
n:指定查看的行數
f:動態的顯示文本內容的變化情況
# tail -5 /var/log/message
3],head從文本首行查看文本內容
# head [potion] filename
n:指定查看的行數
# head -5 /var/log/message
4],more ,less 分屏顯示文本內容
less 與 more 類似,但使用 less 可以隨意瀏覽文件,而 more 僅能向前移動,卻不能向後移動,而且 less 在查看之前不會加載整個文件。
# more [potion] filename
# less [potion] filename
這裏主要注意快捷鍵
less指令快捷鍵:
f : 查看下一頁(f爲forward的意思)
b : 查看上一頁(b爲back的意思)
PageDown : 查看下一頁
PageUp : 查看上一頁
d : 查看下半頁
u : 查看上半頁
/pattern:向後查找匹配字符串並高亮顯示,n,N鍵跳轉下一個,上一個匹配字符串。
?pattern:向前查找匹配字符串並高亮顯示
空格鍵 : 向下滾動一頁
回車鍵 : 向下滾動一行
h : 顯示幫助界面
q : 退出less命令
more指令快捷鍵:
按Space鍵:顯示文本的下一屏內容
按Enter鍵:只顯示文本的下一行內容。
按斜線符|:接着輸入一個模式,可以在文本中尋找下一個相匹配的模式。
按h鍵:顯示幫助屏,該屏上有相關的幫助信息。
按b鍵:顯示上一屏內容。
按q鍵:退出more命令交互頁面並返回
9,diff文本內容比較
# diff [option] file1 file2
10,wc文本內容統計
# wc [option] file
四,查看修改系統日期時間
1,date查看日期時間
$ date
$ date +”%F % T” #輸出時間的同時格式化輸出
2,cal 查看日曆
# cal [option] [[mouth] year]
# cal
$ cal 6 2017
3,date ,clock修改時間
Linux使用兩種時鐘,硬件時鐘和操作系統時鐘,如果要修改時鐘,兩種都應修改。
修改時鐘前應先修改時區,可用setup工具或是使用命令tzselect。
# date -s 06/3/17 #使用date的選項s修改當前系統時間
# date -s 15:30:05
# clock -w #將時間同步寫入硬件時鐘
五,查看管理聯線用戶
1,who
# who
2,finger
# finger
3,w
# w
who命令主要用於一般性查看,finger命令側重於用戶個人詳細信息,w命令更側重於輸出用戶使用系統的情況。
4,wall ,write, mesg與聯線用戶通信
1]:wall向所有用戶發送公告
# wall The sysytem is going down!
2]:write 向系統中一個用戶發送
# write root #進入即時消息模式
Hello
3]:mesg n拒絕其他用戶發送來的消息
4]:mesg y重新接受消息
5,fuser斷開與聯線用戶通信
# fuser -k /dev/pts/3 #斷開用戶user1連接
2]:touch 緊急維護,禁止所有用戶登錄,不接受root以外用戶登錄。已經登錄的不會受到影響。
# touch /etc/nologin
六,切換用戶命令
1,su 臨時切換用戶
# su root #普通用戶切換root,需要密碼
# whoami
# exit #切換後可退出
2,sudo 以root用戶身份運行命令
sudo命令不提供root用戶的登錄環境,使用命令時需要全路徑。
# sudo /sbin/ifconfig eth0
七,定位,查找文件和關鍵字命令的使用
1,which 搜索命令
which從當前的環境變量PATH保存的目錄中,查找參數指定的命令位置並以絕對路徑的方式輸出。
# which ifconfig
# echo $PATH
2,locate 文件搜索命令
locate命令用於快速搜索文件和檔案,其搜尋工作依賴於一個事先建立的索引數據庫。因此可能無法搜索到最近新增的文檔。
# locate iptables
# locate a* #查看所有以a開頭的文件
# update #手動更新索引庫
3,whereis 特殊文件搜索命令
whereis命令更擅長搜索一些特殊的文件,包括二進制文件(通常是可執行文件),說明文件和源代碼等,其搜尋工作依賴於一個事先建立的索引數據庫。因此可能無法搜索到最近新增的文檔。
# whereis iptables
4,apropos 關鍵字搜索命令
apropos命令查找與任務相關的指令,相當於man -k
# apropos process #在幫助文檔裏查找與process相關的內容
八,輸入,輸出相關命令
1,echo回顯命令
echo [option] string
E:禁用轉義字符(默認選項)
e:啓用轉義字符
n:輸出結束後不換行
# echo -n “please enter your name:”
2,read 接收用戶輸入
read [[option] parameter] name
a:將輸入的文本按字段放入數組中
d:指定結束符,默認使用換行爲結束符
e:使用ReadLine庫獲取輸入(此時可以使用退格鍵,方向鍵進行簡單的行編輯操作)
n:指定讀取的字符數
p:將該選項指定的字符串輸出到標準錯誤,並讀取輸入
r:將讀取到的字符串按字段放到不同變量中
s:先鎖住屏幕,然後再從標準輸入中讀取字符
t:如果用戶沒有在指定時間內輸入,將結束讀取狀態
u:從指定的文件描述符中讀取
# echo -n “please enter your friend’s name:”; read -a NAME;echo “your friends:${NAME[*]}”
# echo -n “please enter four string:”; read -r V1 V2 V3 V4;echo -e “first:$V1\n
Second:$V2\nthird:$V3\nfourth:$V4”
# SE=y;echo -n “please select yes or no[y|n]”; read -t 8 SE;echo -e “\nINput timeout” #8秒
3,tee 顯示並保存文本
... | tee [options] filename
tee命令將獲取到的文本(通常來自管道)分爲兩個拷貝,一個輸到標準輸出,另一個寫入到指定文件。
a:以追加的形式將數據寫入文件的結尾
i:寫入數據時,不寫入標準錯誤
# date +’%Y%m%d %T | tee -a date_log
# ls -l ab | tee -ia a.txt #簡單篩選,忽略標準錯誤
4,mail 郵件命令
$ mail [option] [-s subject ] [-c c_adress] [-b b-adress] user [-a file]...
n:不讀入設置文件/etc/mail.rc(這個文件允許用戶使用外部地址而不是系統自帶的sendmail發送郵件)
s:設置郵件的主題信息
c:使用一個密件抄送列表
b:使用一個抄送列表
# mail -s “net info” root,user1 <net_info #向user1和root發送主題爲netinfo的郵件
mail查看郵件
h:查看郵件的標題
d:使用該命令加序號可以刪除指定郵件
f:查看當前光標指向的郵件
n:跳轉到指定序號的郵件
q:退出並將已經閱讀的郵件存入文件~/mbox中
x:退出
!:允許使用shell命令
# mail -f /var/spool/mail/user1 #查看用戶user1的未讀郵件
5,exec 啓動新shell
exec shell_command
shell的內建命令exec將並不啓動新的shell,而是用要被執行命令替換當前的shell進程,並且將老進程的環境清理掉,而且exec命令後的其它命令將不再執行。
因此,如果你在一個shell裏面,執行exec ls那麼,當列出了當前目錄後,這個shell就自己退出了,因爲這個shell進程已被替換爲僅僅執行ls命令的一個進程,執行結束自然也就退出了。爲 了避免這個影響我們的使用,一般將exec命令放到一個shell腳本里面,用主腳本調用這個腳本,調用點處可以用bash a.sh,(a.sh就是存放該命令的腳本),這樣會爲a.sh建立一個sub shell去執行,當執行到exec後,該子腳本進程就被替換成了相應的exec的命令。
source命令或者”.”,不會爲腳本新建shell,而只是將腳本包含的命令在當前shell執行。
不過,要注意一個例外,當exec命令來對文件描述符操作的時候,就不會替換shell,而且操作完成後,還會繼續執行接下來的命令。
exec 3<&0:這個命令就是將操作符3也指向標準輸入。
別處,這個命令還可以作爲find命令的一個選項,如下所示:
(1)在當前目錄下(包含子目錄),查找所有txt文件並找出含有字符串”bin”的行
find ./ -name “*.txt” -exec grep “bin” {}
(2)在當前目錄下(包含子目錄),刪除所有txt文件
find ./ -name “*.txt” -exec rm {}