一個寫得很好的Linux學習筆記

 linux目錄架構
/       根目錄
/bin         常用的命令   binary   file   的目錄
/boot       存放系統啓動時必須讀取的檔案,包括核心   (kernel)   在內
          /boot/grub/menu.lst       GRUB設置
          /boot/vmlinuz       內核
          /boot/initrd           核心解壓縮所需   RAM   Disk
/dev         系統周邊設備          
/etc         系統相關設定文件
          /etc/DIR_COLORS       設定顏色
          /etc/HOSTNAME       設定用戶的節點名
          /etc/NETWORKING       只有YES標明網絡存在
          /etc/host.conf   文件說明用戶的系統如何查詢節點名
          /etc/hosts   設定用戶自已的IP與名字的對應表
          /etc/hosts.allow   設置允許使用inetd的機器使用  
          /etc/hosts.deny   設置不允許使用inetd的機器使用
          /etc/hosts.equiv   設置遠端機不用密碼
          /etc/inetd.conf   設定系統網絡守護進程inetd的配置
          /etc/gateways   設定路由器
          /etc/protocols   設定系統支持的協議
          /etc/named.boot   設定本機爲名字服務器的配置文件
          /etc/sysconfig/network-scripts/ifcfg-eth0       設置IP
          /etc/resolv.conf         設置DNS    
          /etc/X11     X   Window的配置文件,xorg.conf   或   XF86Config   這兩個   X   Server   的設定檔
          /etc/fstab         記錄開機要mount的文件系統
          /etc/inittab   設定系統啓動時init進程將把系統設置成什麼樣的runlevel
          /etc/issue   記錄用戶登錄前顯示的信息
          /etc/group   設定用戶的組名與相關信息
          /etc/passwd   帳號信息
          /etc/shadow   密碼信息
          /etc/sudoers   可以sudo命令的配置文件
          /etc/securetty   設定哪些終端可以讓root登錄
          /etc/login.defs   所有用戶登錄時的缺省配置
          /etc/exports   設定NFS系統用的
          /etc/init.d/       所有服務的預設啟動   script   都是放在這裡的,例如要啟動或者關閉
          /etc/xinetd.d/     這就是所謂的   super   daemon   管理的各項服務的設定檔目錄
          /etc/modprobe.conf       內核模塊額外參數設定
          /etc/syslog.conf       日誌設置文件
/home       使用者家目錄
/lib         系統會使用到的函數庫
          /lib/modules       kernel   的相關模塊
          /var/lib/rpm       rpm套件安裝處  
/lost+found         系統不正常產生錯誤時,會將一些遺失的片段放置於此目錄下
/mnt           外設的掛載點
/media       與/mnt類似
/opt           主機額外安裝的軟件
/proc         虛擬目錄,是內存的映射
            /proc/version       內核版本
              /proc/sys/kernel       系統內核功能
/root         系統管理員的家目錄
/sbin         系統管理員才能執行的指令
/srv           一些服務啟動之後,這些服務所需要取用的資料目錄
/tmp           一般使用者或者是正在執行的程序暫時放置檔案的地方
/usr           最大的目錄,存許應用程序和文件
        /usr/X11R6:       X-Window目錄  
        /usr/src:         Linux源代碼
        /usr/include:系統頭文件
        /usr/openwin   存放SUN的OpenWin  
        /usr/man   在線使用手冊
        /usr/bin                       使用者可執行的   binary   file   的目錄
        /usr/local/bin           使用者可執行的   binary   file   的目錄
        /usr/lib                       系統會使用到的函數庫
        /usr/local/lib           系統會使用到的函數庫
        /usr/sbin                     系統管理員才能執行的指令
        /usr/local/sbin         系統管理員才能執行的指令
/var       日誌文件
        /var/log/secure         記錄登入系統存取資料的檔案,例如   pop3,   ssh,   telnet,   ftp   等都會記錄在此檔案中
        /var/log/wtmp             記錄登入者的訊息資料,   last
        /var/log/messages     幾乎系統發生的錯誤訊息
        /var/log/boot.log     記錄開機或者是一些服務啟動的時候,所顯示的啟動或關閉訊息
        /var/log/maillog       紀錄郵件存取或往來(   sendmail   與   pop3   )的使用者記錄
        /var/log/cron             記錄   crontab   這個例行性服務的內容
        /var/log/httpd,   /var/log/news,   /var/log/mysqld.log,   /var/log/samba,   /var/log/procmail.log:
        分別是幾個不同的網路服務的記錄檔
 
 
 
一些常用的基本命令:
uname   -a         查看內核版本              
ls   -al         顯示所有文件的屬性
pwd                   顯示當前路徑                
cd   -         返回上一次目錄           cd   ~         返回主目錄
date   s             設置時間、日期                    
cal             顯示日曆           cal   2006
bc                     計算器具                              
man     &   info           幫助手冊
locale           顯示當前字體           locale   -a         所有可用字體           /etc/sysconfig/i18n設置文件
LANG=en         使用英文字體                        
sync               將數據同步寫入硬盤                
shutdonw   -h   now   &   half   &   poweroff     關機
reboot           重啓                                      
startx     &     init   5       進入圖形介面
/work     &   ?work         向上、下查找文檔內容
chgrp             改變檔案羣組     chgrp   testing   install.log        
chown           改變所屬人       chown   root:root   install.log
chmod             改變屬性           chmod   777   install.log           read=4     write=2     execute=1
cp       複製       cp   filename
rm       刪除文件     rm   -rf   filename       強制刪除文件
rmdir       刪除文件夾
mv     移動         mv   123.txt   222.txt     重命名
mkdir           創建文件夾
touch           創建文件     更新當前時間
cat               由第一行開始顯示           cat   |more     分頁
nl                 在內容前加行號
more     &     less       一面一面翻動
head   -n   filename       顯示第N行內容
tail   -n   filename     顯示後N行內容
od                 顯示非純文檔
df   -h   顯示分區空間
du     顯示目錄或文件的大小
fdisk       分區設置         fdisk   -l   /dev/hda     顯示硬盤分區狀態
mkfs         建立各種文件系統     mkfs   -t   ext3     /dev/ram15      
fsck         檢查和修復LINUX檔案
ln             硬鏈接       ln   -s     軟件鏈接
whereis       查找命令
locate         查找
find             查找       find   /   -name   "***.*** "
which           查看工具
whoami         顯示當前用戶
gcc   -v         查看GCC版本
chattr   +i   filename     禁止刪除       chattr   -i   filename     取消禁止
lsattr         顯示隱藏檔屬性
updatedb     更新資料庫
mke2fs         格式化       mkfs   -t   ext3  
dd   if=/etc/passwd   of=/tmp/passwd.bak         備份
mount           列出系統所有的分區
mount   -t   iso9660   /dev/cdrom   /mnt/cdrom       掛載光盤
mount   -t   vfat   /dev/fd0   /mnt/floppy               掛載軟盤
mount   -t   vfat   -o   iocharset=utf8,umask=000   /dev/hda2   /mnt/hda2       掛載fat32分區
mount   -t   ntfs   -o   nls=utf8,umask=000   /dev/hda3   /mnt/hda3                   掛載ntfs分區
Linux-NTFS   Project:   http://linux-ntfs.sourceforge.net/
umount   /mnt/hda3     缷載
ifconfig       顯示或設置網絡設備
service   network   restart       重啓網卡    
ifdown   eth0     關閉網卡
ifup   eth0         開啓網卡
clear         清屏
history         歷史記錄               !55     執行第55個指令
stty       設置終端         stty   -a
fdisk   /mbr       刪除GRUB
at           僅進行一次的工作排程
crontab       循環執行的例行性命令         [e]編輯,[l]顯示,[r]刪除任務
&               後臺運行程序         tar   -zxvf   123.tar.gz   &   ---------> 後臺運行
jobs         觀看後臺暫停的程序       jobs   -l
fg             將後臺程序調到前臺       fg   n   ------> n是數字,可以指定進行那個程序
bg             讓工作在後臺運行
kill         結束進程         kill   -9   PID           [9]強制結束,[15]正常結束,[l]列出可用的kill信號
ps   aux     查看後臺程序      
top           查看後臺程序       top   -d   2         每兩秒更新一次                 top   -d   2   -p10604       觀看某個PID
                top   -b   -n   2   >   /tmp/top.txt   -----> 將   top   的資訊進行   2   次,然後將結果輸出到   /tmp/top.txt        
pstree       以樹狀圖顯示程序         [A]以   ASCII   來連接,   [u]列出PID,   [p]列出帳號
killall       要刪除某個服務         killall   -9   httpd
free             顯示內存狀態           free   -m     --------> 以M爲單位顯示
uptime         顯示目前系統開機時間
netstat       顯示網絡狀態         netstat   -tulnp------> 找出目前系統上已在監聽的網路連線及其   PID
dmesg           顯示開機信息         demsg   |   more
nice             設置優先權             nice   -n   -5   vi   &   -----> 用   root   給一個   nice   植為   -5   ,用於執行   vi  
renice         調整已存在優先權
runlevel     顯示目前的runlevel
depmod         分析可載入模塊的相依性
lsmod           顯示已載入系統的模塊
modinfo       顯示kernel模塊的信息
insmod         載入模塊
modprobe       自動處理可載入模塊
rmmod           刪除模塊
chkconfig       檢查,設置系統的各種服務           chkconfig   --list   -----> 列出各項服務狀態
ntsysv           設置系統的各種服務
cpio             備份文件
 

壓縮命令:
  *.Z             compress   程式壓縮的檔案;  
  *.bz2         bzip2   程式壓縮的檔案;  
  *.gz           gzip   程式壓縮的檔案;  
  *.tar         tar   程式打包的資料,並沒有壓縮過;  
  *.tar.gz   tar   程式打包的檔案,其中並且經過   gzip   的壓縮
compress   filename     壓縮文件     加[-d]解壓     uncompress
gzip   filename       壓縮     加[-d]解壓     zcat   123.gz   查看壓縮文件內容
bzip2   -z   filename     壓縮     加[-d]解壓       bzcat   filename.bz2     查看壓縮文件內容
tar   -cvf   /home/123.tar   /etc     打包,不壓縮
tar   -xvf   123.tar       解開包
tar   -zxvf   /home/123.tar.gz     以gzip解壓
tar   -jxvf   /home/123.tar.bz2     以bzip2解壓
tar   -ztvf   /tmp/etc.tar.gz       查看tar內容
cpio   -covB     >   [file|device]       份份
cpio   -icduv   <   [file|device]       還原
 
vi一般用法
一般模式                             編輯模式                                     指令模式
h   左                               a,i,r,o,A,I,R,O                           :w   保存
j   下                                 進入編輯模式                                 :w!   強制保存
k   上                                 dd   刪除光標當前行                       :q!   不保存離開
l   右                                 ndd   刪除n行                                   :wq!   保存後離開
0   移動到行首                 yy   複製當前行                                 :e!   還原原始檔
$   移動到行尾                 nyy   複製n行                                     :w   filename   另存爲
H   屏幕最上                     p,P   粘貼                                           :set   nu   設置行號
M   屏幕中央                     u     撤消                                             :set   nonu   取消行號
L   屏幕最下                     [Ctrl]+r   重做上一個動作               ZZ   保存離開
G   檔案最後一行             [ctrl]+z   暫停退出                         :set   nohlsearch       永久地關閉高亮顯示
/work   向下搜索                                                                       :sp   同時打開兩個文檔  
?work   向上搜索                                                                       [Ctrl]+w   兩個文檔設換
gg   移動到檔案第一行                                                             :nohlsearch         暫時關閉高亮顯示
 
認識SHELL
alias         顯示當前所有的命令別名             alias   lm= "ls   -al "       命令別名         unalias   lm   取消命令別名
type             類似which
exprot         設置或顯示環境變量
exprot   PATH= "$PATH ":/sbin     添加/sbin入PATH路徑
echo   $PATH         顯示PATH路徑
bash             進入子程序
name=yang           設定變量
unset   name         取消變量
echo   $name         顯示變量的內容
myname= "$name   its   me "       &       myname= '$name   its   me '           單引號時$name失去變量內容
ciw=/etc/sysconfig/network-scripts/           設置路徑
env             列出所有環境變量
echo   $RANDOM         顯示隨意產生的數
set             設置SHELL
PS1= '[/u@/h   /w   /A   #/#]/$   '           提示字元的設定
      [root@linux   ~]#   read   [-pt]   variable           -----------讀取鍵盤輸入的變量
      參數:
      -p     :後面可以接提示字元!
      -t     :後面可以接等待的『秒數!』
declare         聲明   shell   變量
ulimit   -a       顯示所有限制資料
  ls   /tmp/yang   &&   echo   "exist "   ||   echo   "not   exist "
  意思是說,當   ls   /tmp/yang   執行後,若正確,就執行echo   "exist "   ,若有問題,就執行echo   "not   exist "  
  echo   $PATH   |   cut   -d   ': '   -f   5               以:爲分隔符,讀取第5段內容
  export   |   cut   -c   10-20             讀取第10到20個字節的內容
  last   |   grep   'root '         搜索有root的一行,加[-v]反向搜索
  cat   /etc/passwd   |   sort         排序顯示
  cat   /etc/passwd   |   wc             顯示『行、字數、字節數』
正規表示法
[root@test   root]#   grep   [-acinv]   '搜尋字串 '   filename
              參數說明:
              -a   :將   binary   檔案以   text   檔案的方式搜尋資料
              -c   :計算找到   '搜尋字串 '   的次數
              -i   :忽略大小寫的不同,所以大小寫視為相同
              -n   :順便輸出行號
              -v   :反向選擇,亦即顯示出沒有   '搜尋字串 '   內容的那一行!
  grep   -n   'the '   123.txt           搜索the字符   -----------搜尋特定字串              
  grep   -n   't[ea]st '   123.txt         搜索test或taste兩個字符---------利用   []   來搜尋集合字元
  grep   -n   '[^g]oo '   123.txt           搜索前面不爲g的oo-----------向選擇   [^]  
  grep   -n   '[0-9] '   123.txt     搜索有0-9的數字
  grep   -n   '^the '   123.txt   搜索以the爲行首-----------行首搜索^
  grep   -n   '^[^a-zA-Z] '   123.txt     搜索不以英文字母開頭
  grep   -n   '[a-z]$ '   123.txt         搜索以a-z結尾的行----------   行尾搜索$
  grep   -n   'g..d '   123.txt           搜索開頭g結尾d字符----------任意一個字元   .  
  grep   -n   'ooo* '   123.txt           搜索至少有兩個oo的字符---------重複字元   *
sed         文本流編輯器         利用腳本命令來處理文本文件
awd         模式掃描和處理語言
  nl   123.txt   |   sed   '2,5d '       刪除第二到第五行的內容
diff           比較文件的差異
cmp             比較兩個文件是否有差異
patch         修補文件
pr               要打印的文件格式化
 

 
帳號管理
/etc/passwd         系統帳號信息
/etc/shadow         帳號密碼信息         經MD5   32位加密
          在密碼欄前面加『   *   』『   !   』禁止使用某帳號
/etc/group           系統羣組信息
/etc/gshadow
newgrp         改變登陸組
useradd     &     adduser         建立新用戶     --------->   useradd   -m   test     自動建立用戶的登入目錄
                    useradd   -m   -g   pgroup   test   ---------> 指定所屬級
/etc/default/useradd       相關設定
/etc/login.defs               UID/GID   有關的設定
passwd         更改密碼   ----------->   passwd   test
usermod       修改用戶帳號
userdel       刪除帳號   -----------> userdel   -r   test
chsh             更換登陸系統時使用的SHELL       [-l]顯示可用的SHELL;[-s]修改自己的SHELL
chfn             改變finger指令顯示的信息
finger         查找並顯示用戶信息
id                 顯示用戶的ID   ----------->     id   test
groupadd       添加組
groupmod       與usermod類似
groupdel       刪除組
su   test         更改用戶       su   -         進入root,且使用root的環境變量
sudo               以其他身份來執行指令
visudo           編輯/etc/sudoers             加入一行『   test   ALL=(ALL)   ALL   』
                      %wheel   ALL   =   (ALL)   ALL                               系統裏所有wheel羣組的用戶都可用sudo
                      %wheel   ALL   =   (ALL)   NOPASSWD:   ALL           wheel羣組所有用戶都不用密碼NOPASSWD
              User_Alias   ADMPW   =   vbird,   dmtsai,   vbird1,   vbird3                   加入ADMPW組
              ADMPW   ALL   =   NOPASSWD:   !/usr/bin/passwd,   /usr/bin/passwd   [A-Za-z]*,   /
              !/usr/bin/passwd   root             可以更改使用者密碼,但不能更改root密碼   (在指令前面加入   !   代表不可)
PAM   (Pluggable   Authentication   Modules,   嵌入式模組)
who   &   w           看誰在線                                          
last                 最近登陸主機的信息
lastlog           最近登入的時間         讀取   /var/log/lastlog  
talk                 與其他用戶交談
write               發送信息         write   test       [ctrl]+d   發送
mesg                 設置終端機的寫入權限         mesg   n   禁止接收           mesg   y  
wall                 向所有用戶發送信息         wall   this   is   q   test
mail                 寫mail      
/etc/default/useradd         家目錄默認設置
quota             顯示磁盤已使用的空間與限制           quota   -guvs   -----> 秀出目前   root   自己的   quota   限制值
                      quota   -vu       查詢
quotacheck       檢查磁盤的使用空間與限制           quotacheck   -avug     -----> 將所有的在   /etc/mtab   內,含有   quota   支援的   partition   進行掃瞄
                          [-m]   強制掃描    
          quota一定要是獨立的分區,要有quota.user和quota.group兩件文件,在/etc/fstab添加一句:
          /dev/hda3   /home   ext3   defaults,usrquota,grpquota   1   2
          chmod   600   quota*                   設置完成,重啓生效
edquota         編輯用戶或羣組的quota     [u]用戶,[g]羣組,[p]複製,[t]設置寬限期限  
                      edquota   -a   yang               edquota   -p   yang   -u   young   -----> 複製        
quotaon         開啓磁盤空間限制           quotaon   -auvg   --------> 啟動所有的具有   quota   的   filesystem
quotaoff       關閉磁盤空間限制           quotaoff   -a     --------> 關閉了   quota   的限制
repquota   -av           查閱系統內所有的具有   quota   的   filesystem   的限值狀態
Quota   從開始準備   filesystem   的支援到整個設定結束的主要的步驟大概是:
1、設定   partition   的   filesystem   支援   quota   參數:
由於   quota   必須要讓   partition   上面的   filesystem   支援才行,一般來說,   支援度最好的是   ext2/ext3   ,
其他的   filesystem   類型鳥哥我是沒有試過啦!   啟動   filesystem   支援   quota   最簡單就是編輯   /etc/fstab   ,
使得準備要開放的   quota   磁碟可以支援   quota   囉;
2、建立   quota   記錄檔:
剛剛前面講過,整個   quota   進行磁碟限制值記錄的檔案是   aquota.user/aquota.group,  
要建立這兩個檔案就必須要先利用   quotacheck   掃瞄才行喔!
3、編輯   quota   限制值資料:
再來就是使用   edquota   來編輯每個使用者或羣組的可使用空間囉;
4、重新掃瞄與啟動   quota   :
設定好   quota   之後,建議可以再進行一次   quotacheck   ,然後再以   quotaon   來啟動吧!

開機流程簡介
1、載入   BIOS   的硬體資訊,並取得第一個開機裝置的代號;  
2、讀取第一個開機裝置的   MBR   的   boot   Loader   (亦即是   lilo,   grub,   spfdisk   等等)   的開機資訊;  
3、載入   Kernel   作業系統核心資訊,   Kernel   開始解壓縮,並且嘗試驅動所有硬體裝置;  
4、Kernel   執行   init   程式並取得   run-level   資訊;  
5、init   執行   /etc/rc.d/rc.sysinit   檔案;  
6、啟動核心的外掛模組   (/etc/modprobe.conf);  
7、init   執行   run-level   的各個批次檔(   Scripts   );  
8、init   執行   /etc/rc.d/rc.local   檔案;  
9、執行   /bin/login   程式,並等待使用者登入;  
10、登入之後開始以   Shell   控管主機。  
在/etc/rc.d/rc3.d內,以S開頭的爲開機啓動,以K開頭的爲關閉,接着的數字代表執行順序
GRUB   vga設定
彩度/解析度     640x480     800x600     1024x768     1280x1024       bit  
        256                 769             771             773               775             8   bit  
      32768               784             787             790               793           15   bit  
      65536               785             788             791               794           16   bit  
      16.8M               786             789             792               795           32   bit  

./configure         檢查系統信息               ./configure   --help   |   more     幫助信息
make   clean           清除之前留下的文件
make                       編譯
make   install       安裝
rpm   -q     -----> 查詢是否安裝                           rpm   -ql   ------> 查詢該套件所有的目錄
rpm   -qi   -----> 查詢套件的說明資料               rpm   -qc[d]   -----> 設定檔與說明檔
rpm   -ivh     ----> 安裝                                         rpm   -V     --------> 查看套件有否更動過
rpm   -e     ------> 刪除                                         rpm   -Uvh   -------> 升級安裝    
--nodeps   -----> 強行安裝                                 --test   -----> 測試安裝 
 

發佈了65 篇原創文章 · 獲贊 7 · 訪問量 24萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章