《Linux學習筆記——整理自馬哥Linux運維》_待完成
阿新 • • 發佈:2019-01-02
ls -l:長格式 -:普通檔案(f) d:目錄檔案 b:塊裝置檔案(block) c:字元裝置檔案(character) l:符號連結檔案(symbolic link file) p:命令管道(pipe) s:套接字檔案(socket) 檔案許可權:9位,每3位一組,每組:rwx讀寫執行,沒有許可權就用-表示 檔案硬連結的次數 檔案屬主(owner) 檔案的屬組(group) 檔案大小(size),預設單位是位元組 時間戳(timestamp),最近一次被修改的時間 訪問:access 修改:modify。檔案內容發生改變。 改變:change。metadata,元資料,檔案屬性。 -h:human readable,做單位轉換 -a:顯示以.開頭的隱藏檔案 .當前目錄 ..當前目錄的上一級目錄 -A:顯示所有檔案,但不顯示.和.. -d:顯示目錄自身屬性 -i:索引節點號 index node, inode -r:逆序顯示 -R:遞迴(recursive)顯示 cd:change directory 不加引數,回到家目錄,home directory cd ~USERNAME:進入指定使用者的家目錄 cd -:在當前目錄和前一次所在目錄之前來回切換 命令型別: 內建命令(shell內建) 外部命令:在檔案系統的某個路徑下有一個與命令名稱相應的可執行檔案 環境變數:命名的記憶體空間 變數賦值 path:使用冒號分割的路徑 o(1):衡量程式執行效率的標準,無論佇列多長,執行效率一樣 type:顯示指定屬於哪種型別 date:時間管理 Linux:rtc,real time clock 硬體時鐘 系統時鐘 ntp:網路時間協議 獲得命令的使用幫助: 內部命令: help COMMAND 外部命令: COMMAND --help 命令手冊:manual man COMMAND:一般對外部命令 whatis COMMAND:檢視命令所在章節 分章節:常見章節有8個 1.使用者命令(/bin, /usr/bin, /usr/local/bin) 2.系統呼叫 3.庫使用者 4.特殊檔案(裝置檔案) 5.檔案格式(配置檔案的語法) 6.遊戲 7.雜項:miscellaneous 8.管理命令(/sbin, /usr/sbin, /usr/local/sbin) <>:必須給定內容 []:可省略 |:多選一 {}:分組,沒有特殊意義 man: name:命令名稱及功能簡要說明 synopsis:用法說明,包括可用選項 description:命令功能的詳盡說明,可能高包括每一個選項的意義 options:說明每一個選項的意義 files:此命令相關的配置檔案 bugs: examples:使用示例 see also:另外參照 翻屏: 向後翻屏:space 向前翻屏:b 向下翻行:enter 向上翻行:k 查詢: /keyword:自前向後 ?keyword:自後向前 n:下一個 N:前一個 根據/和?的n N方向不一樣 q:退出 hwclock -w把系統時間寫入硬體時間 hwclock -s把硬體時間寫入系統時間 線上文件: info COMMAND 文件 /usr/share/doc cal:calender日曆 echo預設列印換行符 printf預設不列印換行符 file命令及其用法: Windows:PE可移植檔案 Linux:ELF可執行可連線檔案 檔案系統: rootfs:根檔案系統,對於每個檔案,都只能從根檔案系統訪問。 FHS:檔案系統層級標準 /boot:系統啟動相關檔案,如核心、initrd、以及grub(bootloader) /dev:裝置檔案 塊裝置:隨機裝置,可以實現隨機訪問的裝置,資料塊 字元裝置:線性裝置,可以實現線性訪問的裝置,按字元為單位 裝置號:主裝置號(major)和次和裝置號(minor) /etc:配置檔案 /home:使用者的家目錄,每一個使用者的家目錄通常預設為/home/USERNAME /root:管理員的家目錄 /lib:庫檔案 靜態庫:.a 動態庫:.dll,.so(shared object) 核心模組檔案(/lib/modules) /media:掛載點目錄,移動裝置 /mnt:掛載點目錄,額外的臨時檔案系統 /misc:雜項 /opt:可選目錄,第三方程式的安裝目錄 /proc:偽檔案系統,核心對映檔案 /sys:偽檔案系統,跟硬體裝置相關的屬性對映檔案,如硬碟 /tmp:臨時檔案 /var:可變化的檔案 /bin:可執行檔案,使用者命令 /sbin:管理命令 /usr:universal shared read-only /usr/bin /usr/sbin /usr/lib /usr/local:第三方程式的安裝目錄 /usr/local/bin /usr/local/sbin /usr/local/lib 命名規則: 1.長度不能超過255個字元 2.不能使用/當檔名 3.嚴格區分大小寫 相對路徑: 絕對路徑: 檔案管理 目錄管理 ls cd pwd mkdir:建立空目錄,路徑的最後一個節點才是我們要建立的目錄 -p:自動建立 -v:verbose詳細資訊 mkdir -pv /mnt/test/{x/m,y} 命令列展開: {a,b}_{c,d} 可以建立a_c,a_d,b_c,b_d 就像(a+b)*(c+d) rmdir(remove directory):刪除空目錄(只能刪除空目錄) -p:自動刪除父目錄 tree:檢視目錄樹 檔案的建立和刪除 touch:可用來建立檔案,但主要目的是為了修改時間戳的 -c:不建立檔案 -a:修改訪問時間 -m:修改修改時間 -t:指定時間 建立檔案可以使用檔案編輯器 nano: rm:刪除檔案 -i:給提示 -f:強行刪除 -r:遞迴刪除 複製和移動檔案 cp:copy SRC DEST 一個檔案到一個檔案 多個檔案到一個目錄 不允許多個檔案複製到一個檔案 不允許一個檔案同時複製多份 目標是一個目錄,將儲存原始檔的名字 目標是一個檔案,將儲存為該檔案的名字 如果源是多個,目標一定是目錄 預設情況下不復制目錄 -r/-R 遞迴複製一個目錄 -p:複製後的檔案保留原始檔的屬組,屬主 -a:保留原始檔的所有屬性,歸檔複製,常用於備份 複製連結,預設複製連結連結的原始檔 -P:保持連結檔案 -i: mv SRC DEST -f:強制目錄存在 -t:目標,再寫源 install:複製檔案指定屬性 -d:建立目錄,-d DIRECTORY... SRC DEST:複製檔案,預設複製過去是有執行許可權的 -m:指定許可權 -t:指定目標,再指定源 源只能是檔案 stat:顯示檔案或檔案系統的狀態資訊 發行版: Fedora, Redhat(Centos), SUSE, Debian(Ubuntu, Mint), Gentoo, LFS(Linux From Scratch) 對系統的操作一般是對其配置檔案進行修改 文字處理:cat, more, less, head, tail, cut, sort, uniq, grep 檢視文字: cat、tac、more、less、head、tail cat:連結並顯示 -n:顯示行號 -E:顯示行結束符 tac:反向顯示 分屏顯示: more:回車一行一行翻,b一屏翻,缺點:翻到最後就直接退出了 less:到最後不會直接退出,按q才退出 head:檢視檔案的前n行 tail:檢視檔案的後n行,預設十行 -f:檢視檔案尾部,不退出,等待顯示後續追加至此檔案的新內容 文字處理: cut,join,sed,awk cut: -d:指定分隔符,預設空格 -f:指定要顯示的欄位, -f 1,3 -f 1-3 文字排序: sort:預設按位的ascii排序,升序 -n:數值排序 -r:降序 -t:欄位分隔符 -k:以哪個欄位為關鍵字排序 -u:相同的行只顯示一次 -f:不區分大小寫 在sort和uniq中,只有相鄰且相同的行才被認為相同的行,不相鄰但相同,被認為不同行 uniq: -c:顯示某行重複的次數 -d:只顯示重複的行 文字統計:wc(word count wc: -l:只顯示行數 -c:位元組數 -m:字元數 -L:最長的一行包含的字元數 字元處理命令: tr:轉換或刪除字元 tr charset1 charset2 無法指定檔案,需要進行輸入重定向 替換大寫: tr 'a-z' 'A-Z' -d:刪除出現在字符集中的所有字元 bash及其特性: shell:外殼 GUI:Gnome,KDE,Xfce CLI:sh,csh,ksh,bash,tcsh,ksh,zsh linux允許一個使用者登入多次,shell都是獨立的 程序:在每個程序看來,當前主機上只存在核心和當前程序 程序是程式的副本,程序是程式執行的例項 使用者工作環境: bash: # $ 1.命令歷史,命令補全 2.管道、重定向 3.命令別名 4.命令列編輯 5.命令列展開 6.檔名通配 7.變數 8.程式設計 命令列編輯: 命令游標跳轉: ctrl+a:到行首 ctrl+e:當行尾 ctrl+d: ctrl+u:刪除游標至行首的內容 ctrl+k:刪除游標至行尾的內容 ctrl+l:清屏 命令歷史: history:檢視命令歷史 -c:清空命令歷史 -d:刪除指定位置的命令 -d 510 3:從510行刪去三個命令 -w:儲存命令歷史至歷史檔案,在使用者的家目錄的.bash_history隱藏檔案中 使用技巧: !n:執行命令歷史中第n條命令 !-n:執行命令歷史中的倒數第n條命令 !!:執行上一條命令 !string:執行命令歷史中以指定字串開頭的命令 !$:引用前一個命令的最後一個引數 esc,.:效果同上 alt+.:效果同上,遠端終端不支援 命令補全: 前提:path環境變數配置正常,唯一標識命令,若不唯一,可以雙敲tab鍵顯示所有該字串開頭的命令 路徑補全:和命令補全相似,但補全機制不一樣 命令別名: alias CMDALIAS='COMMAND [options] [arguments]' 若命令中間有空格,要用引號 命令別名只在當前的shell的生命週期有效 若要永久有效,需要寫入bash的配置檔案 撤銷別名: unalias CMDALIAS 使用命令本身,\COMMAND 命令替換:$(COMMAND) 反引號`COMMAND`,反引號是波浪號底下的 把命令中某個子命令替換為其執行結果的過程 cmd1 [] [] $(cmd2) touch /file$(date +%F-%H-%M-%S) bash支援的引號: ``:命令替換 "":弱引用,可以實現變數替換 '':強引用,不完成變數替換 檔名通配:globbing *:匹配任意長度的任意字元 ?:匹配任意單個字元 []:匹配指定範圍內的任意單個字元 [abc],[a-m],[a-zA-Z],[0-9] [^]:匹配指定範圍外的任意單個字元 [:space:]:空白字元 [:punct:]:標點符號 [:lower:]:小寫字母 [:upper:]:大寫字母 [:alpha:]:大小寫字母 [:digit:]:數字 [:alnum:]:數字和大小寫字母 環境變數: path:命令搜尋路徑 HISTSIZE:命令歷史大小,預設是1000條 shell: 子shell,可以用pstree檢視 退出當前shell:exit 父子之間不一定有關聯關係 控制訊號: ctrl+c shift+pageup/down:翻屏 執行程式 裝置管理 軟體管理 程序管理 網路管理 使用者、組、許可權 安全上下文(secure context) 許可權: r,w,x 檔案: r:可讀,可以使用類似cat等命令檢視檔案 w:可寫,可以編輯或刪除此檔案 x:可執行,exacutable,可以再命令提示符下當作命令提交給核心執行 目錄: r:可以對此目執行ls以列出內部的所有檔案 w:可以在此目錄建立檔案 x:可以使用cd切換進此目錄,也可以使用ls -l檢視內部檔案的詳細資訊 rwx: r--:只讀 r-x:讀和執行 ---:無許可權 0 000,---:無許可權 1 001,--x:執行 2 010,-w-:寫 3 011,-wx:寫和執行 4 100,r--:只讀 5 101,r-x:讀執行 6 110,rw-:讀寫 7 111,rwx:讀寫執行 使用者:uid, /etc/passwd 組:gid, /etc/group 影子口令: /etc/shadow 組: /etc/gshadow 使用者類別: 管理員:uid:0 普通使用者:uid:1-65535 系統使用者:uid:1-499,不允許登入 一般使用者:uid:500-60000 使用者組類別: 基本組:使用者的預設組 附加組:額外組,預設組以外的其他組 私有組(建立使用者時,如果沒有為其指定所屬的組,系統會建立一個與使用者名稱同名的組,為私有組) 管理員組: 普通組: 系統組: 一般組: account:登入名 password:密碼 uid:使用者id gid:基本組id comment:註釋 home dir:使用者家目錄 shell:使用者的預設shell /etc/shadow account:登入名 encrypted password:加密的密碼 使用者名稱;密碼;最近一次修改密碼的時間;最短使用期限;最長使用期限;警告時間;非活動時間;過期時間 加密方法: 對稱加密:加密和解密使用同一個密碼 公鑰加密:每個密碼都成對出現,一個為私鑰(secret key),一個為公鑰(public key) 單向加密:雜湊加密,提取資料特徵碼 1.雪崩效應:初始條件的微小變化,會引起結果的巨大改變 2.定長輸出: md5:Message Digest,128位定長輸出 sha1:Secure Hash Algorithm,160位定長輸出 使用者管理: useradd USERNAME groupadd GRPNAME useradd, userdel, usermod, passwd, chsh, finger, id, chage useradd [options] USERNAME -u uid -g gid(基本組) -G GID...(額外組) -c "COMMENT" -d /path/to/somewhere -s /etc/shells/??? /etc/shells:指定了當前系統可用的安全shell -m -k 環境變數: PATH HISTSIZE SHELL 組管理: groupadd, groupdel, groupmod, gpasswd 許可權管理: chown, chgrp, chmod, umask 解析:名稱解析