linux的基本原則
- 由目的單一的小程序組成,組合小程序完成複雜任務
- 一切皆文件
- 儘可能避免捕獲用戶接口
- 配置文件保存爲純文本格式
文件系統
- /boot: 系統啓動相關的文件,如內核、initrd,以及grub(bootloader)
- /dev: 設備文件
設備文件:
- 塊設備:隨機訪問,數據塊
- 字符設備: 線性訪問,按字符爲單位
- 設備號: 主設備號(major)和次設備號(minor)
- /etc: 配置文件
- /home: 用戶的家目錄, 每個用戶的家目錄一般默認爲/home/$USERNAME
- /root: 管理員的家目錄
- /lib: 庫文件
- 靜態庫, .a結尾
- 動態庫, .dll、.so
- /lib/modules: 內核模塊文件
- /media: 掛載點目錄,移動設備
- /mnt: 掛載點目錄,額外的臨時文件系統
- /opt: 可選目錄,第三方程序的安裝目錄
- /proc: 僞文件系統,內核映射文件
- /sys: 僞文件系統,跟硬件設備相關的屬性映射文件
- /tmp: 臨時文件, /var/tmp
- /var: 可變化的文件
- /bin: 可執行的文件
- /sbin: 管理命令
目錄管理
- ls
- cd
- pwd
- mkdir
- rmdir
- tree
文件管理
- touch
- stat
- file
- rm
- cp
- mv
- nano
日期時間
查看文本
- cat
- tac
- more
- less
- head
- tail
- wc
文本處理
bash支持的引號
- ``: 命令替換
- "": 弱引用,能夠實現變量替換
- '': 強引用, 不徹底變量替換
文件通配符
- *: 任意長度的任意字符串
- ?: 任意單個字符
- []: 匹配製定範圍內的任意單個字符
- [:space:]: 空白字符
- [:punct:]: 標點字符
- [:lower:]: 小寫字母
- [:upper:]: 大寫字母
- [:alpha:]: 大小寫字母
- [:digit:]: 數字
- [:alnum:]: 數字和大小寫字母
- [^]: 匹配指定範圍外的任意單個字符
文件權限
- r: 可讀,可使用相似cat等命令查看文件內容
- w: 可寫, 能夠編輯或刪除文件
- x: 可執行, 在命令提示符下,當作命令提交給內核運行
目錄權限
- r: 能夠對此目錄執行ls以列出內部的文件
- w: 能夠在此目錄建立文件
- x: 可使用cd切換進此目錄, 也可使用
ls -l
查看內部文件的詳情信息
用戶類別
- 管理員: 0
- 普通用戶: 1-65535
- 系統用戶: 1-499
- 通常用戶: 500-65535
用戶組類別
- 管理員組
- 普通組
- 私有組: 建立用戶時,若是沒有爲其指定所屬的組,系統會自動爲其建立一個與用戶同名的組
- 基本組: 用戶的默認組
- 附加組: 默認組之外的其餘組
/etc/passwd文件內容解析
用戶名:密碼:UID:GID:註釋:家目錄:默認shelllinux
/etc/group文件內容解析
組名:密碼:GID:以此組爲其附加組的用戶列表git
/etc/shadow文件內容解析
用戶名:密碼:最近一次修改密碼的時間:最短使用期限:最長使用期限:警告時間:非活動時間:過時時間shell
用戶管理
- useradd
- userdel
- usermod
- passwd: 密碼管理
- chsh: 修改用戶默認的shell
- chfn: 修改註釋信息
- finger: 查看用戶帳號信息
- id: 查看用戶的帳號屬性信息
- change
- pwck: 檢查用戶帳號完整性
組管理
- groupadd
- groupdel
- groupmod
- gpasswd: 爲組設定密碼
權限管理
- chown: 改變文件屬主
- chgrp: 改變文件屬組
- chmod: 修改文件權限
- umask: 遮罩碼
bash的配置文件
- 全局配置
- /etc/profile
- /etc/profile.d/*.sh
- /etc/bashrc
- 我的配置
- ~/.bash_profile
~/.bashrc小程序
- profile類的文件
- bashrc類的文件
- 登陸式shell如何讀取配置文件?
- /etc/profile --> /etc/profile.d/*.sh --> ~/.bash_profile --> ~/.bashrc --> /etc/bashrc
- 非登陸式shell如何讀取配置文件?
- ~/.bashrc --> /etc/basrc --> /etc/profile.d/*.sh
系統設定
- 默認輸出設備: 標準輸出, STDOUT, 1
- 默認輸入設備: 標準輸入, STDINT, 0
- 標準錯誤輸出: STDERR, 2
查看當前shell中的環境變量
特殊權限
- SUID: 運行某程序時,相應進程的屬主是程序文件自身的屬性,而不是啓動者
- chmod u+s file
- chmod u-s file
- SGID: 運行某程序時,相應進程的屬組時程序文件自身屬性,而不是啓動者所屬的基本組
- chmod g+s file
- chmod g-s file
- sticky: 在一個公共目錄,每一個均可以建立文件,刪除本身的文件,但不能刪除別人的文件
- chmod o+t dir
- chmod o-t dir
文件系統訪問列表
FACL: filesystem access control list 利用文件擴展保存額外的訪問控制權限bash