1. 程式人生 > >linux就應該這樣學 筆記

linux就應該這樣學 筆記

iso檔案下載映象  http://www.linuxprobe.com/tools 1.4: 重置root管理員密碼 cat /etc/redhat-realease 進入引導頁面時 按下e鍵進入核心編輯介面  在 linux16 引數這行最後面新增 rd.break  然後按下ctrl+x組合鍵來進行修改過的核心程式  30s  after....  mount -o remount,rw /sysroot  chroot /sysroot  passwd  touch /.autorelabel  exit  reboot  mm:linuxprobe  ----------------------------------  RPM包管理 安裝軟體:rpm -ivh file.rpm 升級軟體:rpm -Uvh file.rpm 解除安裝軟體:rpm -e  file.rpm 查詢描述資訊軟體:rpm -qpi  file.rpm 列出軟體檔案資訊:rpm -qpl  file.rpm 查詢檔案屬於哪個RPM的命令格式 ------------------------------------------ yum工具的使用 yum repolist all  列出所有的倉庫 yum list all 列出所有的軟體包 yum info  軟體包名稱 檢視軟體包資訊 yum installl 安裝軟體包 yum reinstall 重新安裝軟體包 yum update yum remove yum clean all yum check-update  yum grouplist  yum groupinstall  1.7  ---------------------------------  systemd  初始化程序    systemd 沒有了執行級別的概念  systemd  適應target 替代了執行級別的概念  0  1                                單使用者  2                                3  3                                多使用者文字  4                                3  5                                多使用者圖形介面  6                                重啟  enmergency            緊急shell  ----------------------- if change(no-grapphical ,multi-user)         ln  -sf /lib/systemd/sytem/muti-user.target                              /etc/systemd/system/default.target -----------rehat6 --------------- service foo start................................systemctl start foo service foo restart service foo stop service foo reload  (重新載入配置檔案,不終止服務) service foo status ------------------------ chkconfig  foo on chkconfig  foo off chkconfig  foo 檢視是否開機自啟 chkconfig --list   檢視各個級別下任務的啟動與禁用情況 ---------------------------強大好用的shell------------------------------ man命令 常用的按鍵 space  next page down   next page up      ex home       head end           tail -----date 設定系統的時間-------------------------- date -s "20170901 8:30:00" ----檢視 今天時當年的第幾天 date "+%j" ---------------wget---------------------------------         wget -c  http://www.baidu.com  斷點續傳         ps -a    --------------top---------------------------- 動態監視程序活動與系統的負載

------------------------pidof   檢視指定程序的pid pid    [引數][服務] eg:pidof sshd ------------------------kill all eg:kill all httpd ------------------------uname 系統的核心版本資訊 ------------------------uptime 系統的負載情況 ------------------------free 系統的記憶體使用量 -------------------------who 當前登入主機的使用者終端資訊 -------------------------last 檢視系統的所有系統登入資訊 -------------------------history  檢視歷史的命令 -------------------------sosrport 收集系統的配置 ------------------------tr  替換文字的資訊     eg:cat     anaconda-ks.cfg  |  tr [a-z] [A-Z] -------------------------WC  -l  行 -w  單詞 -c  位元組數 -------------------------stat 檢視檔案的具體資訊和時間等資訊 -------------------------cut  按列提取資訊 -------------------------diff -------------------------touch  建立空白檔案 或設定檔案的時間touch -a 讀取時間   -m 修改時間 -d 同時修改  “”2017-05-04 15:44” anaconda-ks.cfg ----------------------------------dd命令----------------------------------- 複製或者轉換檔案 dd if = /dev/zero  of=506file  count=1 bs=560m bs  塊的大小 count 複製塊個 個數 ---------iso 檔案的建立 dd  if=/dev/cdrom  of=centos-iso -------------------------file 檢視檔案的型別 -------------------------命令管道符 grep "/sbin/nologin"  /etc/passwd | wc -l --------------------------------------------------- alias  rm  顯示別名 unalias  rm  取消別名 -------------------------- echo $PATH PATH=$PATH:/root/bin/ echo  $PATH -------------------- 把ls命令正常輸出資訊追加到寫入到 error.txt檔案中的命令是是什麼 ls >> error.txt 簡述管道符的作用 把前面的命令的輸出值作為後面命令的輸入值進一步進行處理資訊 bash直譯器的萬用字元中* 表示什麼資訊 零個或者多個 PATH變數的作用是什麼 設定直譯器搜尋執行的命令的路徑 使用什麼命令可以把名為LINUX的一般變數轉換為全域性變數 export LINUX --------------------------------------------VIM中常用的命令 dd  剪下 刪除 游標所在的整行 5dd   剪下 或者刪除 游標所在 後的5行 yy   複製游標所在的整行 5yy  複製游標所在5行 n      顯示搜尋命令的下一個 字元 N    顯示搜尋命令的上一個 字元f u         撤銷上一步的操作 p       將之前刪除 或者 複製的資料 貼上到游標的後面 ------------------------------------------末行模式下可用的命令 :w :  q :  q! : wq! : set nu  顯示行號 :set none  不顯示行號 :命令 執行該命令 :跳轉到該行 -----------------------------------------可用的整數運算子 -ne 是否不等於 -eq 是否等於 -gt 是否大於 -lt  是否小於 -le 是否等於或者小於 -ge  是否大於或者等於 =  比較字串是否相同 !=  比較字串 是否不同 -z  判斷字串是否為空 -----------------------------------------shell 指令碼 vim mkcdrom.shell #!/bin/bash DIR="/media/cdrom" if [! -e $DIR] then mkdir  -p  $DIR fi ----------- [

[email protected]_0_7_centos ~]# at 23:30 at> service httpd start  23:30 at> <EOT> job 1 at 2018-10-23 23:30 [[email protected]_0_7_centos ~]# at -l 1       2018-10-23 23:30 a root [[email protected]_0_7_centos ~]# atrm 1 [[email protected]_0_7_centos ~]# at -l [[email protected]
_0_7_centos ~]# -------------------------------- crontab  -r  -l   -e 分時 日月 星期  指令 ----------------------------- 假設在每週一。三。五凌晨3.25 都需要使用tar 命令把某個網站的 資料目錄進行打包處理,使其作為一個備份檔案 我們可以使用crontab -額來建立任務  為自己建立任務無需使用-u 引數 具體的實現效果引數如crontab  -l  命令結果所示 25 3 * * 1,3,5   /usr/bin/tar -czvf   backup.tar.gz  /home/wwwroot

逗號表示時間段   除號表示 間隔的時間

vim 編輯器的三種模式分別是什麼 答:命令模式 末行模式 與輸入模式 一個完整的shell 指令碼應該哪些內容 答:應該包括指令碼宣告 註釋資訊和可執行語句 分別解釋shell 指令碼$0 and $3 變數的作用 答:在shell 指令碼中 $0 代表指令碼檔案的名稱 $3  則表示該指令碼在執行時接收的第三個引數 if 測試語句包括幾種結構 答:單分支 雙分支 多分支 for 條件迴圈語句的迴圈結構是什麼樣子的 答:for 變數名 in 取值列表 do 命令序列  done", 管理員uid為0 :系統的管理員使用者 系統使用者uid 為 1-999 :linux系統為了避免因某個服務程式 出現漏洞而被黑客提權至整臺伺服器,預設服務程式會有獨立的系統使用者負責執行,進而有效控制被破環範圍 普通使用者uid 從1000開始 :是由管理員建立的用於日常工作的使用者 ------------------ useradd  [選項]  使用者名稱 useradd -d  /home/linux  -u  8888  -s   /sbin/nologin  linuxprobe -d  使用者的家目錄 -u  8888 使用者的uid shell 直譯器  /sbin/nologin   表示該使用者不能登入到系統中 檢視 user 資訊  id linuxprobe --------------------------------- groupadd ronny usermod -G  root  linuxprobe -------修改user 的uid usermod -u  8888  linux [[email protected]_0_7_centos ~]# id  root uid=0(root) gid=0(root) groups=0(root) [[email protected]_0_7_centos ~]# useradd -u 518   song [[email protected]_0_7_centos ~]# id song uid=518(song) gid=518(song) groups=518(song) [[email protected]_0_7_centos ~]# usermod -G root   song [[email protected]_0_7_centos ~]# id song uid=518(song) gid=518(song) groups=518(song),0(root) [[email protected]_0_7_centos ~]# usermod -u 888  song [[email protected]_0_7_centos ~]# id song uid=888(song) gid=518(song) groups=518(song),0(root) [[email protected]_0_7_centos ~]# ----------------------------------- [[email protected]_0_7_centos ~]# passwd -l   song Locking password for user song. passwd: Success [[email protected]_0_7_centos ~]# passwd -u   song Unlocking password for user song. passwd: Success ---------------------- [[email protected]_0_7_centos ~]# passwd  -S song song PS 2018-10-23 0 99999 7 -1 (Password set, SHA512 crypt.) ------顯示使用者 是否被鎖定 以及加密演算法的名稱 ------ [[email protected]_0_7_centos ~]# passwd -l   song Locking password for user song. passwd: Success [[email protected]_0_7_centos ~]# passwd -S   song song LK 2018-10-23 0 99999 7 -1 (Password locked.) ------------------------ userdel -f  -r song ------------------------- -  普通檔案 d 目錄檔案 l  連結檔案 b 塊裝置檔案 c  字元裝置檔案 p  管道檔案 -----檔案許可權 r 4  w 2 x 1 --------------------------- suid  是一種對二進位制程式設定的特殊許可權  s sbit  (sticky bit)  粘滯位  t  只允許操作自己的 檔案 ----------------------------------------------- chattr  檔案的隱藏屬性 i  無法對檔案修改 a 僅允許追加內容  無法覆蓋刪除內容 S  內容在變更後立即同步到硬碟 s  徹底從硬碟中刪除  不可恢復(用0填充原始檔所在硬碟的區域) A 不在修改這個檔案或者目錄的最後訪問時間 ---------- lsattr  顯示檔案的預設許可權 -----------檔案訪問控制列表 setfacl  命令用於管理檔案的ACL規則  格式為 setfacl   可以針對單一使用者或使用者組 單一檔案或目錄來進行讀寫執行許可權的控制 針對目錄檔案需要使用-R 遞迴引數 針對普通檔案則使用 -m  引數  如果想刪除某個檔案的ACL,則可以使用-b  引數    .  變成了 +  意味著檔案已經設定了 acl許可權 getfacl   用於顯示檔案設定的acl 資訊 eg : getfacl    檔名稱 su  -  song   :完全切換到新的使用者 環境變數也是 -----------srv  :一些網路服務的資料檔案的目錄 --------------------------------------------------- 物理設定的命名規則 ide 裝置:/dev/hd[a-d] scsi/sata/u盤  /dev/sd[a-p] 軟碟機                  /dev/fd[0-1] 印表機              /dev/lp[0-15] 光碟機                /dev/cdrom ===================== 檔案系統 ext3    ext4   1eb  可批量分配block xfs     18eb ------------- mount -a  掛載所有在/etc/fstab 中定義的檔案系統 mount -t  指定檔案系統的型別 裝置檔案 掛載目錄 格式型別 許可權選項 是否備份 是否自檢 /dev/sdb   /backup   ext4     defaults   0        0 許可權的選項   rw  suid  dev  exec  auto  nouser  async umount    /dev/sdb     解除安裝掛載項 -------------------------- fdisk     /dev/sdb    >>>>>>mkfs.xfs  /dev/sdb1 du   ---------------建立交換分割槽 mkswap  /dev/sdb2 ---------------------xfs_quota 針對xfs格式的配額命令 -x  專家模式  更多的配置 -c  用於以引數形式設定要執行的命令 ------------------------------------------ edquota  編輯使用者的quota配額限制 ---------------------------ln -s  符號連結 如果不帶  預設 硬連結(不會依賴原檔案) -f  強制建立檔案 -i  覆蓋前詢問 -v 顯示建立的過程 -------------RAID(獨立冗餘磁碟陣列) 1988  加利福尼亞大學伯克利分校 -----------raid 0  串聯  (提高吞吐速度 不具備 備份 錯誤修復) -----------raid 1  相當於整塊備份 -----------raid 5 一塊用於奇偶校驗 -----------raid 10  =raid1+raid0 ------------------------------------mdadm(配置陣列) ------------------------------------LVM(邏輯卷管理器) 部署邏輯卷  物理                卷組                    邏輯卷 掃描           pvscan         vgscan            lvscan 建立            pvcreate        vgcreate       lvcreate 顯示                pvdisplay       vgdisplay      lvdisplay 刪除                    pvremove      vgremove       lvremove 擴充套件                                            vgextend         lvextend 縮小                                            vgreduce           lvreduce ----------------------(1)使其支援lvm技術-------------------------------- pvcreate    /dev/sdb         /dev/sdc   使其支援lvm技術 ----------(2)-把兩塊裝置加入到storage卷組中再檢視卷組狀態-------------- vgcreate  storage  /dev/sdb /dev/sdc vgdisplay ------------------ (3)切割一個約為150mb的邏輯卷裝置 量為單位  -L 150mb   -l  基本單元為單位 一個單元為40m    -l  37    -------------------------- lvcreate -n vo  -l  37  storage lvdisplay (4)將生成的lv 格式化 mkfs.ext4     /dev/storage/vo  (目錄名自動生成) ------------------ mkdir  /linuxprobe mount /dev/storage/vo   /linuxprobe --------------(5) 永久掛載 df -h   檢視掛載狀態 echo   "/dev/storage/vo  /linuxprobe   ext4  default  0 0" >>  /etc/fstab ======================================== 擴容邏輯卷  擴容前 需要解除安裝物理裝置 umount /linuxprobe ----------------------------------- 1)將vo >>290mb lvextend  -L  290M   /dev/storage/vo 2)檢查完整性  並重置硬碟容量 e2fsck   -f /dev/storage/vo resize2fs    /dev/storage/vo 3)重新掛載並檢視掛載狀態 mount -a df -h ============縮小邏輯卷 umount /linuxprobe e2fsck   -f /dev/storage/vo resize2fs    /dev/storage/vo   120M mount -a df -h ---------------邏輯卷快照-------------- page:150