Linux系統基礎(1篇)

来源:http://www.cnblogs.com/LinuxGeek/archive/2017/06/06/6950980.html
-Advertisement-
Play Games

終端: 用戶與主機交互,必然用到的設備; 物理終端:直接接入本機的顯示器和鍵盤設備;/dev/console 虛擬終端:附加在物理終端之上的以軟體方式虛擬實現的終端,CentOS 6預設啟動6個虛擬終端 Ctrl+Alt+F#: [1,6] 圖形終端:附加在物理終端之上的以軟體方式虛擬實現的終端,但 ...


終端: 用戶與主機交互,必然用到的設備; 物理終端:直接接入本機的顯示器和鍵盤設備;/dev/console 虛擬終端:附加在物理終端之上的以軟體方式虛擬實現的終端,CentOS 6預設啟動6個虛擬終端 Ctrl+Alt+F#: [1,6] 圖形終端:附加在物理終端之上的以軟體方式虛擬實現的終端,但額外會提供桌面環境; 設備文件路徑:/dev/tty# 模擬終端: 圖形界面下打開的命令行介面,基於ssh協議或telnet協議等遠程打開的界面 設備文件:/dev/pts/#    [0,oo) 查看當前的終端設備:tty 互動式介面:啟動終端後,在終端設備附加一個互動式應用程式 GUI: X protocol, window manager, desktop Desktop: GNOME (C, gtk) KDE   (C++, qt) XFCE  (輕量級桌面) CLI: shell程式: sh (bourn) csh  tcsh ksh (korn) bash (bourn again shell), GPL zsh  顯示當前使用的shell: # echo ${SHELL} 顯示當前系統使用的所有shell: # cat /etc/shells 命令提示符:prompt [root@localhost ~]# [root@localhost ~]:PS1 prompt: 管理員:# 普通用戶:$ 命令: 輸入命令,回車: 提請shell程式找到鍵入命令所對應的可執行程式或代碼,並由其分析後提交給內核分配資源將其運行起來; 表現為一個或多個進程; 在shell中可執行的命令有兩類: 內建命令:由shell自帶的,而且通過某命令形式提供; 外部命令:在當前系統的某文件系統路徑下有對應的可執行程式文件; which,whereis 區別內部或外部命令: # type COMMAND 運行命令: 命令格式: COMMAND [OPTIONS...] [ARGUMENTS...] 選項:用於啟用或關閉命令的某個或某些功能; 短選項:-c, 例如:-l, -h 多個短選項可命令使用,例如-l -h, 可寫作-lh; 長選項:--word,例如:--long, --human-readable 參數:命令的作用對象 向命令提供數據; 註意: 1、多選項,以及多參數和命令之間都應該使用空白字元分隔 2、取消命令執行:Ctrl+c 文件系統: C:\Program files\office11\word\word.exe /etc/sysconfig/network-scripts/ifcfg-eth0 文件有兩類數據: 元數據:metadata 數據:data 1、文件名嚴格區分字元大小寫;file1, File1, FILE1是不同的文件; 2、文件名可使用除/以外的任意字元,不建議使用特殊字元; /: 根目錄,路徑分隔符; 3、文件名長度最長不能超過255個字元; 4、所以.開頭的文件,均為隱藏文件; 路徑: 絕對路徑:從根目錄起始的路徑; 相對路徑:對當前位置起始的路徑; 當前位置的表示方式: (1) ./: ./sysconfig/network-scripts (2) 省略上述符號: sysconfig/network-scripts ..:表示當前目錄的上一級目錄 當前目錄:current directory, 也稱作working directory; pwd: printing working directory LSB: Linux Standard Base 命令總結:ls, cd, type, tty, cat, which, whereis, pwd, echo 命令: (1) 文件系統相關: 目錄管理 文件管理 文件查看 文件編輯 (2) 系統管理相關:Linux命令幫助的獲取 外部命令:都有一個可執行程式,位於文件系統某目錄下; which, whereis shell程式搜尋可執行程式文件的路徑定義在PATH環境變數中; # echo $PATH 註意:自左至右 格式:COMMAND [OPTIONS...] [ARGUMENTS...] 內部命令: # help COMMAND 外部命令: (1) # COMMAND --help # COMMAND -h (2) 使用手冊(manual) # man COMMAND (3) 信息頁 # info COMMAND (4) 程式自身的幫助文檔 README INSTALL ChangeLog (5) 程式官方文檔 官方站點:Documentation (6) 發行版的官方文檔 (7) Google 內部命令幫助: # help COMMAND hash命令: shell搜尋到的外部命令的路徑結果會緩存至kv(key-value)存儲中; history命令: 管理命令歷史; 登錄shell時,會讀取命令歷史文件中記錄下的命令:~/.bash_history 登錄進shell後新執行的命令只會記錄在緩存中;這些命令會用戶退出時“追加”至命令歷史文件中; history: -a: 追加本次會話新執行的命令歷史列表至歷史文件中; -d: 刪除歷史中指定的命令; -c: 清空命令歷史; 快捷操作: !#: 調用歷史中第#條命令; !string:調用歷史中最近一個以string開頭的命令; !!: 上一條命令 外部命令幫助獲取: (2) man COMMAND 手冊頁:/usr/share/man man1 ... man8 man1: 用戶命令 man2: 系統調用 man3: C庫調用 man4: 設備文件及特殊文件 man5: 配置文件格式 man6: 游戲 man7: 雜項 man8: 管理類的命令 註意:有些關鍵在不止一個章節中存在幫助手冊; 要查看指定章節中的手冊:man # COMMAND man命令的配置文件:/etc/man.config MANPATH /PATH/TO/SOMEWHERE: 指明新的手冊文件搜索位置 # man -M /PATH/TO/SOMEWHERE COMMAND: 到指定位置下搜索COMMAND命令的手冊頁並顯示之; 幫助手冊中的段落說明: NAME SYNOPSIS DESCRIPTION OPTIONS EXAMPLES AUTHOR REPORTING BUGS SEE ALSO SYNOPSIS: []:可選內容 <>: 必選內容 a|b:二選一 ...: 同一內容可出現多次 man命令的操作方法: Space, ^V, ^f, ^F: 向文件尾翻屏; b, ^B: 向文件首部翻屏; d, ^D: 向文件尾部翻半屏; u, ^U: 向文件首部翻半屏; RETURN, ^N, e, ^E or j or ^J: 向文件尾部翻一行; y or ^Y or ^P or k or ^K:向文件首部翻一行; q: 退出; #:跳轉至第#行; 1G: 回到文件首部 G:翻至文件尾部 文本搜索: /KEYWORD:  以KEYWORD指定的字元串為關鍵字,從當前位置向文件尾部搜索;不區分字元大小寫; n: 下一個 N:上一個 ?KEYWORD: 以KEYWORD指定的字元串為關鍵字,從當前位置向文件首部搜索;不區分字元大小寫; n: 跟搜索命令同方向,下一個 N:跟搜索命令反方向,上一個 (3) info info COMMAND (4) 程式自身的幫助文檔 /usr/share/doc/COMMAND-VERSION (5) 程式官方文檔 (6) 發行版的官方文檔 http://www.redhat.com/docs (7) Google (8) slideshare http://www.slideshare.net/基礎命令: date: date [OPTION]... [+FORMAT]:顯示 FORMAT: 格式符號 %D %F %T        date [MMDDhhmm[[CC]YY][.ss]]:設置        MM: 月分        DD:幾號        hh: 小時        mm: 分鐘        YY: 兩位年份        CCYY: 四位年份        .ss: 秒鐘    Linux的兩種時鐘:     系統時鐘:由Linux內核通過CPU的工作頻率進行的計時;     硬體時鐘:     hwclock: 顯示硬體時鐘     -s, --hctosys     -w, --systohc     cal:日曆 目錄相關的命令: 當前目錄或工作目錄 主目錄,家目錄:HOME root: /root 普通用戶:/home/USERNAME /home/tom ~:用戶的主目錄 cd:  cd 或 cd ~: 回當前用戶的主目錄 cd ~USERNAME: 切換至指定用戶的主目錄 cd -: 在上一個目錄和當前目錄之間來回切換 . .. 相關的環境變數: PWD:保存了當前目錄路徑; OLDPWD:上一次所在目錄路徑; pwd: 顯示當前目錄 ls: list 顯示指定路徑下的文件列表; ls [OPTION]... [DIR]... -a, --all: 顯示所有文件,包括隱藏文件; -l: 長格式 -rw-r--r-- 1 root root 44800 Aug 14 14:32 install.log -rw-r--r--: 最左側的第一位:文件類型 -, d, l, b, c, p, s 後面的9位:訪問許可權,perm 數字:文件被硬鏈接的次數; 左root: 文件的owner 右root: 文件的group 44800:文件的size Aug 14 14:32 : 文件的最近一次被修改的時間 install.log: 文件名 -h, --human-readable:單位換算 -d: 顯示目錄自身的相關屬性;通常要與-l一起使用; -r, --reverse: 逆序顯示 -R, --recursive: 遞歸 stat /PATH/TO/SOMEFILE:獲取指定文件的元數據 文件查看命令:cat, tac cat [OPTION]... [FILE]... -E: 顯示行結束符$ -n: 對顯示出的每一行進行編號 文件內容類型查看命令:file file /PATH/TO/SOMEWHERE 回顯命令:echo -n: 禁止自動添加換行符號; -e: 允許使用轉義符; \n: 換行 \t: 製表符 echo "$VAR_NAME": 變數會替換,雙引號表弱引用 echo '$VAR_NAME': 變數不會替換,強引用 which:顯示命令對應的程式文件路徑 which [OPTION] COMMAND --skip-alias:禁止顯示別名 whatis: 使用mkwhatis命令可將當前系統上所有的幫助手冊及與之對應的關鍵字創建為一個資料庫; 系統管理類命令: 關機: halt, poweroff, shutdown, init 0 重啟: reboot, shutdown, init 6 跟用戶登錄相關: who, whoami, wLinux的文件系統: 根文件系統(rootfs): root filesystem LSB, FHS: (FileSystem Heirache Standard) /etc, /usr, /var, /root, /home, /dev /boot:引導文件存放目錄,內核文件(vmlinuz)、引導載入器(bootloader, grub)都存放於此目錄; /bin:供所有用戶使用的基本命令;不能關聯至獨立分區,OS啟動即會用到的程式; /sbin:管理類的基本命令;不能關聯至獨立分區,OS啟動即會用到的程式; /lib:基本共用庫文件,以及內核模塊文件(/lib/modules); /lib64:專用於x86_64系統上的輔助共用庫文件存放位置; /etc:配置文件目錄(純文本文件); /home/USERNAME:普通用戶家目錄; /root:管理員的家目錄; /media:攜帶型移動設備掛載點; cdrom usb /mnt:臨時文件系統掛載點; /dev:設備文件及特殊文件存儲位置; b: block device,隨機訪問 c: character device,線性訪問 /opt:第三方應用程式的安裝位置; /srv:系統上運行的服務用到的數據; /tmp:臨時文件存儲位置; /usr: universal shared, read-only data; bin: 保證系統擁有完整功能而提供的應用程式; sbin: lib: lib64: include: C程式的頭文件(header files); share:結構化獨立的數據,例如doc, man等; local:第三方應用程式的安裝位置; bin, sbin, lib, lib64, etc, share /var: variable data files cache: 應用程式緩存數據目錄; lib: 應用程式狀態信息數據; local:專用於為/usr/local下的應用程式存儲可變數據; lock: 鎖文件 log: 日誌目錄及文件; opt: 專用於為/opt下的應用程式存儲可變數據; run: 運行中的進程相關的數據;通常用於存儲進程的pid文件; spool: 應用程式數據池; tmp: 保存系統兩次重啟之間產生的臨時數據; /proc: 用於輸出內核與進程信息相關的虛擬文件系統; /sys:用於輸出當前系統上硬體設備相關信息的虛擬文件系統; /selinux: security enhanced Linux,selinux相關的安全策略等信息的存儲位置; Linux上的應用程式的組成部分: 二進位程式:/bin, /sbin, /usr/bin, /usr/sbin, /usr/local/bin, /usr/local/sbin 庫文件:/lib, /lib64, /usr/lib, /usr/lib64, /usr/local/lib, /usr/local/lib64 配置文件:/etc, /etc/DIRECTORY, /usr/local/etc 幫助文件:/usr/share/man, /usr/share/doc, /usr/local/share/man, /usr/local/share/doc Linux下的文件類型: - (f):普通文件; d: 目錄文件; b: 塊設備; c: 字元設備; l: 符號鏈接文件; p: 管道文件; s: 套接字文件;socket; 系統管理類命令: 關機: halt, poweroff, shutdown, init 0 重啟: reboot, shutdown, init 6 跟用戶登錄相關: who, whoami, w 關機或重啟: halt, poweroff reboot -f: 強制,不調用shutdown -p: 切斷電源 shutdown: shutdown [OPTION]...  TIME [MESSAGE] -r: reboot -h: halt -c:cancel TIME:  now: 立刻 +m: 相對時間表示法,從命令提交開始多久之後;例如 +3; hh:mm: 絕對時間表示,指明具體時間; 用戶登錄信息查看命令: whoami: 顯示當前登錄有效用戶; who: 系統當前所有的登錄會話; w: 系統當前所有的登錄會話及所做的操作;bash的基礎特性(1): (1) 命令歷史 history 環境變數: HISTSIZE:命令歷史記錄的條數; HISTFILE:~/.bash_history; HISTFILESIZE:命令歷史文件記錄歷史的條數; history -d OFFSET -c history #: 顯示歷史中最近的#條命令; -a: 手動追加當前會話緩衝區的命令歷史至歷史文件中; 調用歷史中的命令: !#: 重覆執行第#條指令; !!:  !string 調用上一條命令的最後一個參數: !$:  ESC, . Alt+. 控制命令歷史的記錄方式: 環境變數:HISTCONTROL ignoredups:忽略重覆的命令;連續且相同方為“重覆”; ignorespace:忽略所有以空白開頭的命令; ignoreboth:ignoredups, ignorespace; 修改環境變數值的方式:export 變數名="值" 變數賦值:把賦值符號後面的數據存儲於變數名指向記憶體空間; (2) 命令補全 bash執行命令: 內部命令: 外部命令:bash根據PATH環境變數定義的路徑,自左而右在每個路徑搜尋以給定命令名命名的文件,第一次找到即為要執行的命令; 直接補全:Tab,用戶給定的字元串只有一條惟一對應的命令; 以用戶給定的字元串為開頭對應的命令不惟一,則再次Tab會給出列表; (3) 路徑補全 把用戶給出的字元串當做路徑開頭,併在其指定上級目錄下搜索以指定的字元串開頭的文件名; 如果惟一:則直接補全; 否則:再次Tab,給出列表; (4) 命令行展開 ~: 展開為用戶的主目錄 ~USERNAME:展開為指定用戶的主目錄 {}:可承載一個以逗號分隔的列表,並將其展開為多個路徑 /tmp/{a,b} = /tmp/a, /tmp/b /tmp/{tom,jerry}/hi = /tmp/tom/hi, /tmp/jerry/hi (5) 命令的執行結果狀態 成功 失敗 bash使用特殊變數$?保存最近一條命令的執行狀態結果: 0:成功 1-255:失敗 程式執行有兩類結果: 程式的返回值; 程式的執行狀態結果;目錄管理類命令: cd, pwd, ls mkdir, rmdir, tree mkdir [options] /path/to/somewhere -p: 存在於不報錯,且可自動創建所需的各目錄; -v: 顯示詳細信息 -m MODE: 創建目錄時直接指定許可權; tree:  -d: 只顯示目錄 -L level:指定顯示的層級數目 -P pattern: 只顯示由指定pattern匹配到的路徑; rmdir:刪除空目錄 rmdir [OPTION]... DIRECTORY... -v: 顯示過程;文本文件查看類命令: cat, tac more, less, tail, head more more [OPTIONS...] FILE... -d: 顯示翻頁及退出提示 less less [OPTIONS...] FILE... head head [OPTION]... [FILE]... -c #: 指定獲取前#位元組 -n #: 指定獲取前#行 -#: tail  tail [OPTION]... [FILE]... -c #: 指定獲取後#位元組 -n #: 指定獲取後#行 -#: -f: 跟蹤顯示文件新追加的內容;文件的時間戳管理工具: touch 文件:metadata, data 查看文件狀態:stat 三個時間戳: access time:訪問時間,簡寫為atime,讀取文件內容 modify time: 修改時間, mtime,改變文件內容(數據) change time: 改變時間, ctime,元數據發生改變 touch命令: touch [OPTION]... FILE... -a: only atime -m: only mtime -t STAMP: [[CC]YY]MMDDhhmm[.ss] -c: 如果文件不存,則不予創建 文件系統: boot, bin, sbin, lib, lib64, dev, home, root, mnt, media, etc, proc, sys usr var bash的基礎特性: 命令補全 路徑補全 命令歷史 命令行展開: ~, {} 命令的狀態結果 成功:0 失敗:1-255 目錄管理:mkdir, rmdir 文件查看:more, less, tail, head 時間戳管理:touch -a, -m, -t -c文件管理: cp, mv, rm 複製命令:cp cp [OPTION]... [-T] SOURCE DEST        cp [OPTION]... SOURCE... DIRECTORY        cp [OPTION]... -t DIRECTORY SOURCE...        cp SRC DEST        SRC是文件:        如果目標不存在:新建DEST,並將SRC中內容填充至DEST中;        如果目錄存在:        如果DEST是文件:將SRC中的內容覆蓋至DEST中;        此時建議為cp命令使用-i選項;        如果DEST是目錄:在DEST下新建與原文件同名的文件,並將SRC中內容填充至新文件中;        cp SRC... DEST        SRC...:多個文件        DEST必須存在,且為目錄,其它情形均會出錯;        cp SRC DEST        SRC是目錄:        此時使用選項:-r        如果DEST不存在:則創建指定目錄,複製SRC目錄中所有文件至DEST中;        如果DEST存在:        如果DEST是文件:報錯        如果DEST是目錄:        常用選項:        -i:互動式        -r, -R: 遞歸複製目錄及內部的所有內容;        -a: 歸檔,相當於-dR --preserv=all        -d:--no-dereference --preserv=links        --preserv[=ATTR_LIST]        mode: 許可權        ownership: 屬主屬組        timestamp:         links        xattr        context        all        -p: --preserv=mode,ownership,timestamp        -v: --verbose        -f: --force    mv: move,移動文件       mv [OPTION]... [-T] SOURCE DEST       mv [OPTION]... SOURCE... DIRECTORY       mv [OPTION]... -t DIRECTORY SOURCE...              常用選項:        -i: 互動式        -f: 強制    rm: remove,刪除    rm [OPTION]... FILE...    常用選項:    -i: 互動式    -f: 強制刪除    -r: 遞歸    rm -rf     文本編輯器:nano    全屏編輯器bash的基礎特性(2): 1、命令別名(alias) 通過alias命令實現: (1) alias 顯示當前shell進程所有可用的命令別名; (2) alias NAME='VALUE' 定義別名NAME,其相當於執行命令VALUE; 註意:在命令行中定義的別名,僅對當前shell進程有效;如果想永久有效,要定義在配置文件中; 僅對當前用戶:~/.bashrc 對所有用戶有效:/etc/bashrc Note: 編輯配置給出的新配置不會立即生效; bash進程重新讀取配置文件: source /path/to/config_file .  /path/to/config_file 撤消別名:unalias unalias [-a] name [name ...] Note: 如果別名同原命令的名稱,則如果要執行原命令,可使用"\COMMAND"; 2、glob (globbing) bash中用於實現文件名“通配” 通配符:*, ?, [] (1) * 任意長度的任意字元 a*b:  aab, ab, a123b,  abc (2) ? 任意單個字元 a?b: aab ab, a12b, abc (3) [] 匹配指定範圍內的任意單個字元 [0-9] [a-z]:不區分字元大小寫 (4) [^] 匹配指定範圍外的任意單個字元 [^0-9] 專用字元集合: [:digit:]:任意數字,相當於0-9 [:lower:]:任意小寫字母 [:upper:]: 任意大寫字母 [:alpha:]: 任意大小寫字母 [:alnum:]:任意數字或字母 [:space:]: [:punct:]:標點符號 3、bash的快捷鍵 Ctrl+l: 清屏,相當於clear命令; Ctrl+a:跳轉至命令開始處; Ctrl+e:跳轉至命令結尾處; Ctrl+c:取消命令的執行; Ctrl+u: 刪除命令行首至光村所在處的所有內容; Ctrl+k: 刪除游標所在處至命令行尾部的所有內容; 4、bash的的I/O重定向及管道 程式:指令+數據 讀入數據:Input 輸出數據:Output 打開的文件都有一個fd: file descriptor (文件描述符) 標準輸入:keyborad, 0 標準輸出:monitor, 1 標準錯誤輸出:monitor, 2 I/O重定向:改變標準位置 輸出重定向:COMMAND > NEW_POS, COMMAND >> NEW_POS >:覆蓋重定向,目標文件中的原有內容會被清除; >>: 追加重定向,新內容會追加至目標文件尾部; # set -C: 禁止將內容覆蓋輸出至已有文件中; 強制覆蓋:>| # set +C:  2>: 覆蓋重定向錯誤輸出數據流; 2>>: 追加重定向錯誤輸出數據流; 標準輸出和錯誤輸出各自定向至不同位置: COMMAND > /path/to/file.out 2> /path/to/error.out 合併標準輸出和錯誤輸出為同一個數據流進行重定向: &>:覆蓋重定向 &>>:追加重定向 COMMAND > /path/to/file.out 2> &1 COMMAND >> /path/to/file.out 2>> &1 輸入重定向:< tr命令:轉換或刪除字元 tr [OPTION]... SET1 [SET2] HERE Documentation:<< # cat << EOF # cat > /path/to/somefile << EOF 管道: COMMAND1 | COMMAND2 | COMMAND3 |... Note:最後一個命令會在當前shell進程的子shell進程中執行; tee命令: tee [OPTION]... [FILE]...文本處理工具:wc, cut, sort, uniq wc命令: wc [OPTION]... [FILE]... -l: lines -w: words -c: characters cut命令: cut [OPTION]... [FILE]... -d DELIMITER: 指明分隔符 -f FILEDS: #: 第#個欄位 #,#[,#]:離散的多個欄位,例如1,3,6 #-#:連續的多個欄位, 例如1-6 混合使用:1-3,7 --output-delimiter=STRING sort命令: sort [OPTION]... [FILE]... -f: 忽略字元大小寫 -r: 逆序 -t DELIMITER: 欄位分隔符 -k #:以指定欄位為標準排序 -n: 以數值大小進行排序 -u: uniq,排序後去重 uniq命令: uniq [OPTION]... [FILE]... -c: 顯示每行重覆出現的次數; -d: 僅顯示重覆過的行; -u: 僅顯示不曾重覆的行; Note: 連續且完全相同方為重覆用戶和組管理 資源分派: Authentication:認證 Authorization:授權 Accouting:審計 Audition token, identity(username/password) Linux用戶:Username/UID 管理員:root, 0 普通用戶:1-65535 系統用戶:1-499, 1-999 對守護進程獲取資源進行許可權分配; 登錄用戶:500+, 1000+ 互動式登錄; Linux組:Groupname/GID 管理員組:root, 0 普通組: 系統組:1-499, 1-999 普通組:500+, 1000+ Linux安全上下文: 運行中的程式:進程 (process) 以進程發起者的身份運行: root: cat tom: cat 進程所能夠訪問的所有資源的許可權取決於進程的發起者的身份; Linux組的類別: 用戶的基本組(主組): 組名同用戶名,且僅包含一個用戶:私有組 用戶的附加組(額外組): Linux用戶和組相關的配置文件: /etc/passwd:用戶及其屬性信息(名稱、UID、基本組ID等等); /etc/group:組及其屬性信息; /etc/shadow:用戶密碼及其相關屬性; /etc/gshadow:組密碼及其相關屬性; /etc/passwd: name:password:UID:GID:GECOS:directory:shell 用戶名:密碼:UID:GID:GECOS:主目錄:預設shell /etc/group: group_name:password:GID:user_list 組名:組密碼:GID:以當前組為附加組的用戶列表(分隔符為逗號) /etc/shadow 用戶名:加密了的密碼:最近一次更改密碼的日期:密碼的最小使用期限:最大密碼使用期限:密碼警告時間段:密碼禁用期:賬戶過期日期:保留欄位 加密機制: 加密:明文--> 密文 解密:密文--> 明文 單向加密:提取數據指紋 md5: message digest, 128bits sha1: secure hash algorithm, 160bits sha224: 224bits sha256: 256bits sha384: 384bits sha512: 512bits 雪崩效應:初始的條件的微小改變,將會引起結果的巨大改變; 定長輸出: 密碼的複雜性策略: 1、使用數字、大寫字母、小寫字母及特殊字元中至少3種; 2、足夠長; 3、使用隨機密碼; 4、定期更換;不要使用最近曾經使用過的密碼; 用戶和組相關的管理命令: 用戶創建:useradd useradd [options] LOGIN -u UID: [UID_MIN, UID_MAX], 定義在/etc/login.defs -g GID:指明用戶所屬基本組,可為組名,也可以GID; -c "COMMENT":用戶的註釋信息; -d /PATH/TO/HOME_DIR: 以指定的路徑為家目錄; -s SHELL: 指明用戶的預設shell程式,可用列表在/etc/shells文件中; -G GROUP1[,GROUP2,...[,GROUPN]]]:為用戶指明附加組;組必須事先存在; -r: 創建系統用戶 CentOS 6: ID<500 CentOS 7: ID<1000 預設值設定:/etc/default/useradd文件中 useradd -D  -s SHELL 組創建:groupadd groupadd [OPTION]... group_name -g GID: 指明GID號;[GID_MIN, GID_MAX] -r: 創建系統組; CentOS 6: ID<500 CentOS 7: ID<1000 查看用戶相關的ID信息:id id [OPTION]... [USER] -u: UID -g: GID -G: Groups -n: Name 切換用戶或以其他用戶身份執行命令:su su [options...] [-] [user [args...]] 切換用戶的方式: su UserName:非登錄式切換,即不會讀取目標用戶的配置文件; su - UserName:登錄式切換,會讀取目標用戶的配置文件;完全切換; Note:root su至其他用戶無須密碼;非root用戶切換時需要密碼; 換個身份執行命令: su [-] UserName -c 'COMMAND' 選項: -l:“su -l UserName”相當於“su - UserName” 用戶屬性修改:usermod usermod [OPTION] login -u UID: 新UID -g GID: 新基本組 -G GROUP1[,GROUP2,...[,GROUPN]]]:新附加組,原來的附加組將會被覆蓋;若保留原有,則要同時使用-a選項,表示append; -s SHELL:新的預設SHELL; -c 'COMMENT':新的註釋信息;
您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • PowerShell是運行在windows平臺的腳本,而Bash是運行在linux平臺的腳本 現在bash能做的事情,PowerShell也能做,PowerShell的強大之處是它可以管理windows伺服器(特別是域domain),現在的開源PowerShell 也可以管理Linux和Mac(通過 ...
  • 1、ext4文件系統在SSD硬碟是最快的 2、IO的演算法修改成noop,操作系統本身不做處理,讓SSD本身處理 echo noop > /sys/block/sdb/queue/scheduler 3、echo 4096 > read_ahead_kb 表示事先預讀數據的Kb數,預設是128 4、e ...
  • 一、NFS服務簡介 NFS是Network File System的縮寫,即網路文件系統。一種使用於分散式文件系統的協定,由sun公司開發,於1984年向外公佈。功能:通過網路讓不同的機器、不同的操作系統能夠彼此分享個別數據,讓應用程式在客戶端通過網路訪問位於服務端磁碟中的數據,是在類Unix系統間 ...
  • 有些文件不喜歡被修改,可以用chattr命令把他鎖定。如lnmp中現在目錄的文件.user.ini,虛擬主機中不喜歡客戶刪除某個目錄等等。 ...
  • 現代操作系統普遍採用虛擬記憶體管理(Virtual Memory Management)機制,這需要處理器中的MMU(Memory Management Unit,記憶體管理單元)提供支持。首先引入 PA 和 VA 兩個概念。 1.PA(Physical Address) 物理地址 如果處理器沒有MMU ...
  • HMODULE getCurrModuleHandle(){ MEMORY_BASIC_INFORMATION info; ::VirtualQuery((LPCVOID)(&getCurrModuleHandle), &info, sizeof(info)); return (HMODULE)in ...
  • 自動安裝wdcp腳本,支持Centos 很多會員在購買伺服器後不會掛載和安裝環境,抽空測試了個腳本,提供給像我一樣的小白使用,希望你會喜歡! ...
  • Linux磁碟管理 I/O Ports: I/O設備地址; 一切皆文件: open(), read(), write(), close() 塊設備:block,存取單位“塊”,磁碟 字元設備:char,存取單位“字元”,鍵盤 設備文件:關聯至一個設備驅動程式,進而能夠跟與之對應硬體設備進行通信; 設 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...