linux_basics

linux的基本原則

  1. 由目的單一的小程序組成,組合小程序完成複雜任務
  2. 一切皆文件
  3. 儘可能避免捕獲用戶接口
  4. 配置文件保存爲純文本格式

文件系統

  • /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

日期時間

  • date
  • clock
  • hwclock
  • cal

查看文本

  • cat
  • tac
  • more
  • less
  • head
  • tail
  • wc

文本處理

  • cut
  • join
  • sed
  • awk
  • tr
  • sort

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中的環境變量

  • printenv
  • env
  • export

特殊權限

  • 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

  • setfacl
    • m: 設定
      • u:uid:perm
      • g:gid:perm
    • x: 取消
      • u:uid
      • g:gid
  • getfacl
相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息