"鳥哥的Linux私房菜" 讀後小筆記
2013/10/18 23:23
瀏覽1,677
迴響0
推薦0
引用0
"鳥哥的Linux私房菜" 讀後小筆記
wget [url]:抓檔vipw:編輯/etc/passwd
touch:建立一沒內容的檔案
adduser (自動建立家目錄及group)
useradd
sudo -s:切換成root
su:切換身份
開sudo權限:在/etc/sudoers裡加入username ALL=(ALL) ALL
(用visudo這隻程式修改,會幫檢查格式,比較安全)
權限:
SUID SGID SBIT Uw Ur Ux Gw Gr Gx Ow Or Ox
(前三者為特殊權限,平常不加以設定)
chmod:更改檔案的存取權限
chown:更改檔案的擁有者或群組
chown [owner]:[group] file/directory
chgrp:更改檔案的擁有群組
-R:recursive變更目錄下所有目錄及檔案的權限(以上三指令皆適用)
umask:顯示建立檔案與目錄時,預設拿掉的權限
-S:以Symbol顯示
chattr:設定檔案隱藏屬性(用於系統安全)
lsattr:顯示檔案隱藏屬性
/etc/init.d/networking restart:重新啟動網路卡
/etc/network/interfaces:設定ip, netmask, gateway
/etc/hostname:設定主機名稱
(改完後需執行hostname -F /etc/hostname 才會更新)
/etc/resolv.conf:設定網域名稱, DNS, 搜尋網域
/etc/hosts:設定ip, 網址
檔案搜尋
which:從PATH的環境變數中找執行檔
whereis:找系統中的檔案位址(search by index)
locate:找系統中包含關鍵字的檔案位址(search by index)
find [PATH] [option] [action]:找系統中的檔案位址,支援萬用字元,有很多方便的參數,但是針對硬碟做search,速度較慢。
常用網路相關指令
ifconfig:顯示網路卡組態 (類似windows的ipconfig)
tracepath :查詢由本機到對方主機間的router是否通暢,
但有些router會鎖ICMP,所以可能沒有回應
nslookup :反查網址或IP
netstat:查詢主機目前的連線及哪些port正在listenning
route:檢視路由表
hostname:查詢系統的hostname
-f:查詢FQDN (網址全名)
網路出問題時,以下順序debug,
ping localhost (or ping 127.0.0.1):失敗便是linux網路核心的問題
ping <自己的ip>:若上面沒問題的話,通常也不會有問題,除非網路卡有誤
ping :看看是不是router掛了
ping 168.95.192.1:若不通,代表網路對外路線掛了
特殊權限
SUID:允許使用者暫時擁有file owner的執行權限(如:/etc/passwd),
在檔案屬性中以s顯示在x欄位,使用在檔案上
SGID:少用
SBIT:使用者只能對自己建立的檔案或目錄,具有刪除、更名、移動的權限。(如:/tmp)
以t顯示在x欄位,使用在目錄上
file:查詢檔案類型
apt-get install:安裝
pwd -P:顯示真實目錄所在位置,而非link的位置
ls
-h:以KB,MB...顯示檔案大小
--time=atime:顯示上次檔案被access的時間
--time=ctime:顯示上次檔案屬性被改變的時間
(預設顯示上次檔案內容被改變的時間即mtime)
touch:更改檔案atime及mtime,或開新空白檔
mkdir -p:直接建立多層目錄,原不存在之目錄皆會自動建立
mkdir -m:創建目錄同時設置目錄權限
cp
-a:檔案屬性一起複製,不使用預設屬性,若是目錄亦copy整個目錄結構
-s:複製成捷徑
-u:目標檔與來源檔有差異時,才複製,適合用在備份
mv:搬移檔案
rm:移除檔案
rename:更名
cal:日曆
bc:小計算機
quit (離開)
scale = n (顯示小數點位數)
ctrl+c:結束process
ctrl+d:EOF, exit
ctrl+l:clear
LANG="en" :切換系統語係為英文
man page中的指令:
/:向下搜尋string
?:向上搜尋string
n:找下一個字串目標
N:找上一個字串目標
q:結束man page
man man:可以查到 man page中指令後方括號數字的意義
man -f [command]:簡單顯示該command的用途(equal "whatis"指令)
man -k [string]:印出指令介紹中含有該string的指令
sync:將記憶體中的資料寫入硬碟(常在關機前用)
關機
shutdown -r now:將系統服務關掉後更立即重新開機 (equal "reboot")
shutdown -r +30 ' The system will reboot ':30分鐘後重新關機,並告知所有使用者
shutdown -h +10:十分鐘後關機
shutdown -h 12:10:12:10關機
shutdown -h now:立即關機
shutdown -k ' The system will reboot ':告知所有使用者要關機,但並不真執行
目錄權限
x:可進入
r:可讀,可ls,可cp
檔案種類符號:
-:file
d:directory
l:link
b:儲存設備
c:周邊設備
s:sockets
p:FIFO
目錄配置
/:根目錄
/bin:存放可執行的系統執行檔
/boot:存放kernel
/dev:裝置或周邊設備
/etc:系統各種設定檔,如密碼,服務啟始檔 (最好常備份)
/home:users的家目錄 (最好獨立partition)
/lib:library
/lost+found:存放系統不正常錯誤時所產生的遺失片段
/mnt or /media:光碟機及軟碟機
/proc:虛擬檔案系統,存放記憶體中的重要資料
/root:root的家目錄
/sbin:存放系統管理員專用的系統執行檔
/srv:服務啟動後,服務所需取用的目錄常放置於此
/tmp:暫存檔存放處 (最好獨立partition)
/usr:雷同windows的Program files目錄 (最好獨立partition)
/usr/bin:一般使用者可使用的程式
/usr/sbin:系統管理員專用的程式
/usr/include/:c/c++ header files放置處
/usr/local/:本機端自行安裝軟體的預設目錄
/usr/share:共享文件放置目錄
/usr/share/doc:存放說明文件
/usr/src:Linux的開放源碼
/var:系統中常態性變動的檔案,如log,cache (最好獨立partition)
/var/cache:程式運作過程中的暫存檔
/var/lib:程式執行中所需的library
/var/log:log檔放置區,/var/log/messages總管所有登錄資訊 (常檢查)
/var/lock:被鎖住的資源(有些資源不允許同時使用,如印表機)
/var/run:有些程式啟動後,PID會放置在此目錄下
/var/spool:佇列資料存放處
$PATH:執行檔path變數
PATH = "$PATH":/root :在$PATH append /root 這個path.
基於安全性的理由,PATH不加.(目前目錄),所以要執行目前目錄下的指令要加prefix './'
cat:concatenate
-n:印出行號 (等於nl指令)
-A:顯示所有內容,包含特殊字元
less:同more,但比more好用,可以用pageup向回捲,也可用?向前搜尋string
head:顯示檔案前十行
-n:可設定顯示的行數
tial:顯示檔案最後十行,-n參數同head用法
套件管理
dpkg -l <套件名稱> 查詢套件的安裝資訊
dpkg -l|grep <套件名稱>:查詢包含關鍵字的套件名資訊
dpkg -L <套件名稱>:查詢套件包含的所有已安裝的檔案
apt-get remove <套件名稱> :
刪除套件但不刪除設定檔(並remove不再使用的相依packages)
apt-get --purge remove <套件名稱>:
刪除套件亦刪除設定檔(並remove不再使用的相依packages)
dpkg -r <套件名稱> :刪除套件但不刪除設定檔(不會自動處理相依packages)
dpkg -P <套件名稱>: 刪除套件亦刪除設定檔 (不會自動處理相依packages)
dpkg -c <.deb檔案名稱>:查詢deb套件檔包含的所有檔案
dpkg -I <.deb檔案名稱>:查詢deb套件檔的詳細資訊
dpkg -i <.deb檔案名稱>:安裝deb套件
dpkg -S <欲查詢的檔案名稱>:查詢該檔案有哪些套件提供
dpkg -s <套件名稱>:查詢已安裝套件的詳細資訊
dpkg --configure -a:重新設定之前因中斷等還沒安裝好的套件
dpkg-checkbuilddeps:檢查需要的函式庫
dpkg-buildpackage:編譯套件 (需在原始碼的目錄下執行)
dpkg-reconfigure <套件名稱>:修改套件設定檔
apt-get install <套件名稱>:安裝套件
apt-reconfigure <套件名稱>:重新設定已安裝的套件
apt-get update:
此指令會依照/ect/apt/sources.list裡的套件源去抓套件庫,
並把相關資訊存在/var/lib/apt/lists/下。
所以更改過/etc/apt/sources.list後,要記得執行此指令才能更新本地端的套件庫)
apt-get upgrade:僅更新沒有相依性問題的套件(安全更新,用在常規更新)
apt-get dist-upgrade:更新所有系統套件,若有相依性問題則會自動解決
(有風險的更新,因為系統會自動移除衝突的套件)
-f -y:遇到錯誤也強迫繼續 (高危險)
-s:只模擬安裝,不實際安裝到系統上
apt-get clean:(清除/var/cache/apt/archives的套件暫存檔)
apt-get -b source <套件名稱>:下載原始檔
[包含原始碼(orig.tar.gz), 修正檔(diff.gz), 描述檔及前兩者的MD5 hash值(dsc) ]
apt-get build-dep <套件名稱>:安裝編譯此套件所需要的套件
apt-build install <套件名稱>:最佳化安裝套件 (先apt-build update 更新套件list)
apt-build --reinstall install <套件名稱>:重新最佳化編譯已安裝過的套件
apt-cache search <關鍵字>:可以針對尚未安裝的套件作查詢
apt-cache search <關鍵字1>|grep <關鍵字2>:
找尋套件資訊中含有關鍵字2的關鍵字1套件
apt-cache -n search <關鍵字>:找尋套件名稱含有關鍵字的套件
apt-cache show <套件名稱>:顯示套件詳細資訊及介紹
apt-cache showpkg <套件名稱>:顯示套件相依性及反相依性等資訊
apt-cache showsrc <套件名稱>:取得編譯所需的套件名稱
apt-cache depends <套件名稱>:顯示套件相依性等資訊
apt-cache rdepends <套件名稱>:顯示套件反相依性等資訊
apt-file search :透過已知檔名,來找歸屬之套件
auto-apt run ./configure:若configure遇到缺少的套件,會自動詢問是否安裝
ex2/ex3檔案系統
fdisk [/dev/hda or /dev/sda]:磁碟分割 (編輯partition table)
常用指令:sudo fdisk -l (顯示系統所有的partition)
mke2fs [option] [device]:格式化ex2/ex3 (同Dos下的format)
-j:加入journal (日誌),即以ex3方式格式化
mkfs [option [device:可選擇以特定檔案格式做格式化
-t:選擇特定檔案格式
常用指令:以ls -l /sbin/mkfs* 可以查看系統有的、可以支援的檔案格式
dumpe2fs:印出ex2/ex3檔案系統的資訊
e2fsck:主機突然當機時,用來檢查metadata與實際資料是否一致 (同windows的scandisk)
fsck: 檢查並修復檔案系統,通常用在主機不正常關機或切割新partition時,用來檢metadata與實際資料是否一致。fsck處理完後,有任何錯誤的 檔案都會丟到/lost+found目錄下。執行fsck的partition,切記不可掛載在系統上,否則會有磁碟資料毀損的風險。
tune2fs:調整ex2/ex3檔案系統的參數
df [option]..[File]:顯示磁碟使用資訊
-h:較易閱讀的格式
-T:顯示該partition的file system格式
-i:顯示inode數量
du:估計檔案佔用的空間
-h:較易閱讀的格式
-s:僅顯示總量
常用指令:sudo du -sh /* (顯示根目錄下每個目錄佔用的磁碟大小)
uname:顯示系統資訊
-a:顯示系統核心所有資訊
getent passwd:顯示系統所有使用者,包括LDAP的帳號
(X Window下)
[Ctrl] + [Alt] + [F1] ~ [F6] :文字介面登入 tty1 ~ tty6 終端機
[Ctrl] + [Alt] + [F7] :圖形介面桌面。
引用:http://tw.myblog.yahoo.com/jw!2I.ae0ieQ0bJH5eWZoCQkA--/article?mid=364
你可能會有興趣的文章:
限會員,要發表迴響,請先登入

