在LINUX系統管理中,我們常常管理目錄(mkdir、rmdir 、tree、ls、cd)文件管理(touch 、rm、cp、mv、stat),時鐘管理(date、clock、hwclock)讓我們一起來學習Linux吧。。。
Linux的基本原則:
- 1、由目的單一的小程序組成;組合小程序完成複雜任務;
- 2、一切皆文件;
- 3、儘量避免捕獲用戶接口;
- 4、配置文件保存爲純文本格式;
- GUI接口:
- CLI接口:
- 命令提示符,prompt, bash(shell)
- #: root
- $: 普通用戶
- 命令:
- 命令格式:
- 命令 選項 參數
- 選項:
- 短選項: -
- 多個選項可以組合:-a -b = -ab
- 長選項: --
- 參數:命令的作用對象
- su: switch user
- # su [-l] 用戶名
- passwd:
- 功能:設置密碼
- 密碼要求:
- 1、使用4種類別字符中至少3種;
- 2、足夠長,大於7位;
- 3、使用隨機字符串;
- 4、定期更換;
- 5、循環週期足夠大;
- Shell:
- GUI: Graphic User Interface (圖形用戶界面)
- Windows
- Linux:X-Window (X指的是協議)
- Gnome:C
- KDE:C++
- Xface <輕量級>
- CLI: Command Line Interface (命令行界面)
- sh
- bash
- csh
- ksh
- zsh
- tcsh
- login:
- 用戶名:用戶ID
- 用戶名的命名規則:
- 1、長度不能超過255個字符;
- 2、不能使用/當文件名
- 3、嚴格區分大小寫
- 認證機制:Authentication
- 授權:Authorization
- 審計:Audition (日誌)
- 獲得命令的使用幫助:
- 內部命令:
- help COMMAND
- 外部命令:
- COMMAND --help
- 命令手冊:manual
- man COMMAND
- whatis COMMAND
- 顯示命令摘要信息。
- man date
- DATE(1)
- 分章節:
- 1:用戶命令(/bin, /usr/bin, /usr/local/bin):用戶可以操作的命令或可執行文件。
- 2:系統調用:system call:系統核心可調用的函數與工具等。
- 3:庫用戶:一些常用的函數(function)與函數庫(library)
- 4:特殊文件(設備文件):設備文件的說明。
- 5:文件格式(配置文件的語法):設置文件或某些文件格式。
- 6:遊戲
- 7:雜項(Miscellaneous)
- 8: 管理命令(/sbin, /usr/sbin, /usr/local/sbin):系統管理員可用的管理命令。
- MAN:
- man page的內容頁分成好幾個部分來介紹。前面man date的表格內,以NAME作爲開始,以一個SEE ALSO作爲結束。
- NAME:命令名稱及功能簡要說明
- SYNOPSIS:用法說明,包括可用的選項
- DESCRIPTION:命令功能的詳盡說明,可能包括每一個選項的意義
- OPTIONS:說明每一個選項的意義
- COMMANDS:當這個程序在執行的時候,可以在此程序(軟件)中發出的命令
- FILES:此命令相關的配置文件
- BUGS:是否有相關的錯誤
- EXAMPLES:使用示例
- SEE ALSO:另外參照(與這個命令或數據相關的其它參考說明)
- 翻屏:
- 向後翻一屏:SPACE(空格鍵)
- 向前翻一屏:b
- 向後翻一行:ENTER
- 向前翻一行:k
- 查找:
- /KEYWORD: 向後
- n: 下一個
- N:前一個
- ?KEYWORD:向前
- n: 下一個
- N:前一個
- 當我們不再使用當前manpage文檔時,可選擇q鍵退出。
- 在線文檔:
- info COMMAND
- 文檔:/usr/share/doc
- prompt,命令提示符:
- # command options... arguments...
- 選項:修改命令執行的特性
- 短選項
- 長選項
- 參數:指定命令作用對象
- 文件系統(File system)
- Linux目錄配置標準:
- FHS(Filesystem Hierarchy Standard文件系統層次標準)
- /boot: 系統啓動相關的文件,如內核、initrd,以及grub(bootloader)
- /dev: 設備文件
- 設備文件:字符設備、塊設備
- 塊設備:(硬盤、光盤)隨機訪問,數據塊
- 字符設備:(鍵盤、鼠標)線性訪問,按字符爲單位
- 設備號:主設備號(major device number)和此設備號(minor device number)
- 系統核心就是通過這兩個號碼來判斷設備的。
- /etc:配置文件
- /home:默認用戶的家目錄,每一個用戶的家目錄通常默認爲/home/USERNAME
- ~:表示當前用戶的家目錄
- ~USERNAME:則表示USERNAME的家目錄
- /root:管理員的家目錄;
- /lib:系統使用的函數庫目錄
- 靜態庫, .a
- 動態庫, Windows(.dll), Linux(.so:shared object)
- /lib/modules:內核模塊文件
- /media:掛載點目錄,移動設備
- /mnt:掛載點目錄,額外的臨時文件系統
- /opt:可選目錄,第三方程序的安裝目錄 -> /usr/local/
- /proc:僞文件系統,內核映射文件
- /sys:僞文件系統,跟硬件設備相關的屬性映射文件
- /tmp:臨時文件, /var/tmp
- /var:系統執行過程中經常變化的文件
- /bin: 可執行文件, 用戶命令
- /sbin:管理命令
- /lost+found:系統發生錯誤時,會將一些遺失的片段放置此目錄
- /usr:shared, read-only (全局共享只讀)
- 系統主要程序、圖形界面所需要的文件、額外的函數庫、本機自行安裝的軟件、共享目錄與文件
- /usr/bin、/usr/sbin:一般身份和管理員可執行的文件
- /usr/lib:各應用軟件的函數庫文件
- /usr/local:
- /usr/local/bin
- /usr/local/sbin
- /usr/local/lib
- date:時間管理
- Linux: rtc
- 硬件時鐘:clock hwclock
- 系統時鐘: date
- hwclock
- -w: 以系統時間爲準,將硬件時間改爲系統時間。
- -s: 以硬件時間爲準,將系統時間改爲硬件時間。
- For example:
- 如果系統時間是準確的,硬件時間是不準確的,那我們如何將系統時間和硬件時間改爲一致呢
- # hwclock -w 即可將硬件時間改爲系統時間。
- cal: calendar
- 顯示日曆
- 查看2013年2月份的日曆
- # cal 2 2013
- list: ls (列出指定路徑所有子目錄或文件)
- 列出,列表
- # ls -l
- -rw------- 1 root root 1473 Feb 26 01:01 anaconda-ks.cfg
- -l:長格式(顯示完整信息)
- 文件類型:
- -:普通文件 (f)
- d: 目錄文件
- b: 塊設備文件中可供存儲的接口設備(block)
- c: 字符設備文件,如:鍵盤、鼠標 (character)
- l: 符號鏈接文件(symbolic link file)
- p: 命令管道文件(pipe)
- s: 套接字文件(socket)
- 文件權限:9位,每3位一組 rwx(讀(read),寫(write),執行(excute))
- 第一組:擁有者的權限(owner)
- 第二組:同組的權限(group)
- 第三組:其它非本用戶組的(other)
- 文件硬鏈接的次數
- 文件的屬主(owner)
- 文件的屬組(group)
- 文件大小(size),單位是字節
- 時間戳(timestamp):最近一次被修改的時間
- 訪問:access
- 修改:modify,文件內容發生了改變
- 改變:change,metadata,元數據
- -h:做單位轉換(KB、GB)
- -a: 顯示以.開頭的隱藏文件
- . 表示當前目錄
- .. 表示父目錄
- -A:除.和..以外的當前目錄的所有文件(包括隱藏文件)。
- -d: 顯示目錄自身屬性
- -i: index node, inode 顯示文件的索引節點
- -r: 逆序顯示
- -R: 遞歸(recursive)顯示(將當前目錄中的子文件及子目錄顯示)
- -S:按文件大小排序
- --full-time:以完整的時間模式(年、月、日、時、分)輸出
- cd: Change Directory
- 功能:切換工作目錄
- 選項:
- ~USERNAME: 進入指定用戶的家目錄
- -: 表示前一個工作目錄
- .:表示當前目錄
- ..:表示上一層目錄
- ~:表示“當前用戶身份”所在的家目錄
- For example
- 如果我們當前處在的目錄是/root,我現在想進入/home目錄,該如何操作?
- # cd /home
- # cd ../home 兩者都可以進入/home目錄
- pwd: Printing Working directory
- 功能:顯示當前工作目錄
- 選項:
- -P:顯示出實際路徑,而非使用連接(link)路徑
- 命令類型:
- 內置命令(shell內置),內部,內建
- 外部命令:在文件系統的某個路徑下有一個與命令名稱相應的可執行文件
- type: Bash Shell的內置命令
- -t:type會顯示name是外部命令還是bash內部命令
- file:表示爲外部命令
- alias:表示命令爲命令別名所設置的名稱
- builtin:表示該命令爲bash內置的命令名稱
- -a:在PATH變量定義的路徑中,列出所有含有name的命令,包含alias
- type也可以用來查找命令,類此which命令的作用
- For example:
- [root@station16 ~]# type -p touch
- /bin/touch
- file命令及其用法。
- 辨別文件內容類型
- -b:列出辨別結果時,不顯示文件名稱。
- -c:詳細顯示指令執行過程,便於排錯或分析程序執行的情形。
- -v:顯示版本信息。
- For example
- 我想查看/etc/passwd文件的類型
- # file -b /etc/passwd
- /etc/passwd: ASCII text 表示/etc/passwd是純文本文件
- 目錄創建和刪除
- mkdir:(make directory)
- 功能:創建空目錄
- 選項:
- -p(parents):若所要建立目錄的上層目錄尚未建立,則會一併建立上層目錄。
- -v(verbose):執行時顯示詳細的信息
- -m(mode):設置目錄權限
- For example:
- 一、在/mnt/test/aa/bb,cc目錄並顯示詳細信息
- # mkdir -pv /mnt/text/{aa/bb,cc}
- 二、創建a_b,a_c,d_b,d_c
- # mkdir -pv {a,d}_{b,c}
- # tree:查看目錄樹
- rmdir:(remove directory)
- 功能:刪除空目錄
- 選項:
- -p(parents):刪除指定目錄後,若該目錄的上層目錄已變成空目錄,則將其一併刪除。
- 文件創建和刪除
- touch:
- 功能:修改文件的時間戳
- 選項:
- -a: 只更改訪問時間
- -m:只更改修改時間
- -t:修改指定時間,而非現在時間
- -c:不建立任何文件
- stat
- 功能:顯示文件或文件系統狀態
- 刪除文件:rm
- -i:交互式模式,刪除前詢問是否操作
- -f:強制刪除文件或目錄
- -r:遞歸刪除
- 複製(copy)和移動文件(move)
- 功能:複製文件或目錄,還可以建立連接文件(快捷方式)
- cp SOURCE DEST
- cp file1 file2 file3
- 文件 文件 目錄
- 選項:
- -r:遞歸處理(將指定目錄下的文件與子目錄)
- -i(interactive):交互:覆蓋前詢問
- -f:
- -u:目標文件與源文件有差異時,才複製
- -l:建立硬鏈接(hard link)的連接文件,而非複製文件本身
- -s:複製成符號連接文件(symbolic link),即快捷方式
- -p:與文件的屬性一起復制,而非默認屬性
- -a:歸檔複製,常用於備份
- For example:
- 複製文件/etc/passwd文件到/tmp目錄下,並將它做成軟連接lpasswd
- # cp -s /etc/passwd /tmp/lpasswd
- [root@localhost tmp]# cp -s /etc/passwd /tmp/lpasswd
[root@localhost tmp]# ll
total 4
lrwxrwxrwx 1 root root 11 Feb 27 19:06 lpasswd -> /etc/passwd
[root@localhost tmp]#- mv: move
- 功能:移動文件與目錄、重命名
- 選項:
- -f:強制直接移動而不詢問
- -i:若目標文件(destination)已經存在,就會詢問
- -u:若目標文件存在,且源文件比較新,纔會更新(update)
- -t DEST SRC
- For example:
- 將/tmp/passwd命名爲password
- # mv passwd password
- du:(estimate file space usage)
- 功能:判斷文件空間使用功能
- 選項:
- -s(summarize):僅顯示總計
- -h(human-readable):以K、M、G爲單位顯示
- -m(megabytes):以MB爲單位顯示
- -a(all):顯示目錄中文件的大小
- For example:
- 查看/etc下所有目錄文件總大小
- # du -sh /etc
- 112MB /etc