Linux基本命令及操作
-
基本命令
ls命令列:
ls -l(ll) 顯示檔案詳細資訊,windows按檔案字尾名區分檔案型別,
linux不以後綴名區分,字尾名用於使用者區分檔案。
ls 顯示當前目錄下的檔案
pwd 顯示當前使用者所在路徑
ls / 顯示根目錄
ls -a 顯示當前目錄所有檔案(包括隱藏檔案)
路徑的表達方法:
絕對路徑:起始查詢路徑是根目錄
相對路徑:起始查詢路徑是當前路徑
pwd 檢視當前所在路徑
ctrl l 清屏
mkdir directory 建立目錄directory為目錄名
mkdir -p 遞迴建立
remkdir directory 刪除空目錄 directory為目錄名
remkdir -p 遞迴刪除多層空目錄
rm 刪除檔案
rm -r 刪除所有檔案包括目錄
rm -f 忽略提示資訊刪除
rm -ri 新增刪除提示資訊
cp 拷貝檔案
cp -r 拷貝目錄及目錄下的所有檔案
mv 移動目錄(剪下)
cd 改變當前目錄
cd ~ 返回家目錄
cd- 上一次所在路徑
點(.)代表當前目錄 例如:cd .
點點(..)代表當前目錄上一層目錄 例如: cd ..
對檔案操作
touch 若檔案不存在建立檔案,存在則重新整理檔案時間屬性
touch -d "2014-11-11 11:11:11" 檔名(重新整理檔案時間屬性)
touch -r 檔案一 檔案二 (用檔案一的時間重新整理檔案二時間屬性)
rpm -ivh 檔名 安裝壓縮檔案
cat 檔名 檢視檔案內容
cat 檔名
-n 顯示檔案行號
-s不輸出多行空行
more 分頁顯示檔案內容
空格 向下翻頁
b 向上翻頁
q 退出
less 分頁顯示檔案內容,字串匹配
空格/pgdn/f 向下翻頁
b/pgup 向上翻頁
上下箭頭 上下單行滾動
/string 向下匹配string字串
?string 向上匹配string字串
q 退出
head -n 2 檔名 顯示檔案的前n行資料
tail -n 1 檔名 顯示末尾前多少行
tail -f 顯示檔案末尾十行資料並動態重新整理 ctrl+c中斷操作
echo “string”將字串string列印到終端
標準輸出重定向(改變資料的流向)
標準輸出:顯示器
標準輸入:鍵盤
標準錯誤:顯示器
標準輸出重定向:改變資料流向
寫入到檔案
(echo “string”>檔名)
追加寫入到檔案
(echo “string”>>檔名)
壓縮/解壓縮方式
壓縮和解壓縮有好幾種方式,對應多種格式(壓縮檔案內容)
gzip/gunzip
bzip2/bunzip2(壓縮比例最高)
打包(將多個檔案放在一起)
tar
-c打包
-x解包
-z gzip格式壓縮/解壓縮
-j bzip2格式壓縮/解壓縮
-v 顯示詳細的打包/解包資訊
-f 用於指定壓縮包的名稱
tar -czvf 檔名 打包
-xzvf 檔名 解包
cal 檢視日曆
-3查詢三個月(上,本,下)
-全年
bc 計算器
date 顯示當前系統時間
date 顯示當前系統時間
+%s 顯示時間戳
-s 修改系統時間
grep '字串' 檔名 在檔案內匹配字串(找字串)
-i 忽略字串大小寫
-v 反向匹配(即顯示沒有該字串的行)
-R(大寫)當前目錄下所有檔案匹配
find 檔案查詢(找目錄)
-name 按名稱進行查詢
find ./ -name "檔名"(格式)
模糊查詢 find ./ -name "*檔名*"('*':萬用字元)
"檔名*"
"*檔名" 三種格式,根據實際情況選擇
shutdown -h now 立即關機
halt 立即關機
reboot 重啟
常用操作
tab鍵:檔名的自動補全
ctrl+c:中斷當前操作
ctrl+l:清屏(輸入clear也可以)
管道符
'|':連線兩個命令;並且把前一個命令的輸出當作下一個命令的輸入
例如:
head -n 檔名 | tail -n 1 表示先檢視檔案的前n行,再檢視這十行的最後一行
Linux許可權管理:
使用者:普通使用者,root
檔案的許可權管理:
檔案的許可權分使用者(三類許可權)
檔案所有者u 檔案所屬組g 其它使用者o
檔案訪問許可權:
檔案的可讀許可權(瀏覽) 檔案可寫許可權(修改檔案) 檔案可執行許可權(進入)
檔案所有者u 檔案所屬組g 其它使用者o
rwx rwx rwx
umask 許可權數字 檢視或設定檔案的預設建立許可權掩碼 suid sgid??
預設建立檔案的許可權是777
檔案最終許可權演算法是 777&(-umask)
-s 顯示當前使用者建立檔案許可權
chmod 0775(後三位為許可權對應8進位制數) 檔名 修改檔案許可權
chmod u/g/o(+/-)w/r/x 檔名 給指定使用者修改許可權
chown 使用者名稱 檔名 修改檔案所有者
chgrp 使用者組 檔名 修改檔案所屬組
沾滯位:
這個許可權位主要針對於目錄,一個使用者只能刪除自己建立的檔案,
不能刪除別人的檔案
指令格式 chmod t file
useradd 使用者名稱 建立使用者
-m 使用者名稱 建立使用者並新增一個家目錄
userdel 僅刪除使用者名稱,不刪除相關資料
-r 刪除使用者並清理相關資料
kill -u 使用者名稱 關閉該使用者的所有程序並刪除它
常用工具
yum軟體包管理工具
yum list 檢視所有開發包
yum install 安裝指定軟體
yum install irzsz
yum remove 移除軟體包
install gcc、glibc-static、gdb
Vim編輯器:
改變輸入位置
拷貝
貼上
剪下
其它
因為Vim無法使用滑鼠,Vim有不同的操作模式
Vim模式:
總共12種模式:6種基本模式,6種條件模式
常用的有三種模式
插入模式 i:輸入資料
a:游標移動到下一個字元處開始插入
o:在游標所在行下方插入新行
I:游標移動到改行行首
A:游標移動到行尾
O:游標所在行的上方新增新行
普通模式(v):完成各種移動游標,複製貼上
低行模式(esc):完成儲存/退出
w:儲存
wq:儲存並退出
q!:強制退出
ctrl+zz或者 ZZ:直接退出
!pwd:臨時執行一條命令,按回車返回
普通模式下的常用操作:
移動游標位置
hjkl 0 $ w(向前移動一個單詞) b(向後移動一個單詞)
gg 游標移動到文件首行
G 游標移動到文件末尾
ctrl+f 向下翻頁
ctrl+b 向上翻頁
拷貝
yy 複製游標所在行
nyy 從游標所在行開始向下複製n行資料
貼上
p 貼上到游標下一行
P 貼上到游標所在行的上方
剪下/刪除
dd 刪除游標所在行
ndd 從游標所在行開始向下刪除n行資料
dw 從游標所在位置處開始刪除一個單詞
x 刪除一個字元
D 從游標所在位置開始刪除到行尾的資料
其它
u 撤銷上一步操作
ctrl+r 恢復操作
gg=G 全文對齊
vim 常用外掛: taglist ctags
gcc編譯器
gcc file1 -o file2 指定生成的檔名
gcc編譯器執行過程
預處理:展開程式碼及檔案
gcc -E main.c -o main.i
僅預處理
編譯:審查程式碼(糾錯)及生成彙編程式碼
gcc -s main.i -o main.s
僅編譯
彙編:將彙編程式碼轉換成機器指令程式碼
gcc -c main.s -o main.o
僅彙編
連結: 連結所有的.o檔案,生成一個可執行程式
gcc main.o -c main
僅連結
objdump -S 檢視檔案的二進位制程式碼
許可權修改
有些命令user是不能夠進行的,所以當我們要使用這些命令時需要root許可權
su 切換至root許可權 需要輸入密碼
從root切換到user su user_name
Linux下的重要目錄/proc, /sys, /SElinux, /bin, /usr/lib, /usr/local, /var, /tmp
(1)/proc:特殊檔案目錄。這個目錄採用一種特殊的檔案格式(proc格式,核心支援這種格式。其中包括了全部虛擬檔案。它們並不是儲存在磁碟中,也不佔用磁碟空間,當檢視它們時,實際上看到的是記憶體裡的資訊,這些檔案有助於我們瞭解系統內部資訊)。
(2)/sys: 檔案系統訪問 Linux核心
(3)/bin:普通使用者可以使用的命令存放目錄。
/usr/lib:系統使用的函式庫的目錄,程式在執行過程中,需要呼叫一些額外的引數時需要函式庫的協助
(4)/usr/local:存放軟體升級包
(5) /var:內容經常變化的目錄。此目錄下檔案的大小可能改變,如緩衝檔案、日誌檔案、快取檔案等一般會放在這裡。
(6)/tmp:一般使用者或正在執行的程式臨時存放檔案的目錄即臨時檔案,任何人都可以訪問,重要資料不可放置在此目錄下
(7) /SElinux:SELinux是一種基於域-型別模型(domain-type)的強制訪問控制(MAC)安全系統,它由NSA編寫並設計成核心模組包含到核心中,相應的某些安全相關的應用也被打了SELinux的補丁,最後還有一個相應的安全策略。
(8)/etc/:全域性配置檔案存放目錄。系統和程式一般都可以通過修改相應的配置檔案來進行配置。
(9)/root:系統管理員root的家目錄,不放在home目錄下
du, df, top, free, pstack, su, sudo(sudo -, sudo -s), adduser這些命令的作用
du 作用是磁碟空間使用情況,功能是逐級進入指定目錄的每一個子目錄並顯示該目錄佔用檔案系統資料塊的情況,如果沒有指定目錄,則對當前的目錄進行統計。
主要引數:
a:顯示全部目錄和其次目錄下的每個檔案所佔的磁碟空間
s:只顯示各檔案大小的總合
b:大小用bytes來表示
x:跳過在不同檔案系統上的目錄不予統計
a:遞迴地顯示指定目錄中各檔案及子孫目錄中各檔案佔用的資料塊數
top 基本格式df [options]
作用:命令用來顯示執行中的程式程序,使用許可權是所有使用者
主要引數:
d:指定更新的間隔,以秒計算。
q:沒有任何延遲的更新。如果使用者有超級使用者,則top命令將會以最高的優先序執行。
c:顯示程序完整的路徑與名稱。
S:累積模式,會將己完成或消失的子行程的CPU時間累積起來。
s:安全模式。
i:不顯示任何閒置(Idle)或無用(Zombie)的行程。
n:顯示更新的次數,完成後將會退出top。
df 命令用來檢查檔案系統的磁碟空間佔用情況,使用許可權是所有使用者。
主要引數:
-s:對每個Names引數只給出佔用的資料塊總數。
-a:遞迴地顯示指定目錄中各檔案及子目錄中各檔案佔用的資料塊數。若既不指定-s,也不指定-a,則只顯示Names中的每一個目錄及其中的各子目錄所佔的磁碟塊數。
-k:以1024位元組為單位列出磁碟空間使用情況。
-x:跳過在不同檔案系統上的目錄不予統計。
-l:計算所有的檔案大小,對硬連結檔案則計算多次。
-i:顯示inode資訊而非塊使用量。
-h:以容易理解的格式印出檔案系統大小,例如136KB、254MB、21GB。
-P:使用POSIX輸出格式。
-T:顯示檔案系統型別。
free 格式free [-b|-k|-m] [-o] [-s delay] [-t] [-V]
作用:free命令用來顯示記憶體的使用情況,使用許可權是所有使用者。
主要引數:
-b -k -m:分別以位元組(KB、MB)為單位顯示記憶體使用情況。
-s delay:顯示每隔多少秒數來顯示一次記憶體使用情況。
-t:顯示記憶體總和列。
-o:不顯示緩衝區調節列。