Linux系統管理及服務配置

最近在學習Linux,特此記錄一下

Linux系統管理及服務配置

1.文件管理

1.文件類型(理解)

  • 簡介

    • windows文件類型以後綴區分。

      • exe
      • doc
    • linux文件類型以單個字母區分(文件屬性中)

        - - 普通文件(文本文件,二進制文件,壓縮文件,電影,圖片。。。)
      
        		d 目錄文件(藍色)
        		
        		b 設備文件(塊設備)存儲設備硬盤,U盤 /dev/sda, /dev/sda1
        		
        		c 設備文件(字符設備)打印機,終端 /dev/tty1
        		
        		l 鏈接文件(淡藍色)
        		
        		s 套接字文件
        		
        		p 管道文件
      
  • 示例

      - 示例1
    
      - 查看各式各樣的文件類型。你能找出幾種呢?
    
      [root@tianyun ~]# ll -d /etc/hosts /bin/ls /home /dev/sda /dev/tty1 /etc/grub2.cfg /dev/log /run/dmeventd-client
      
      -rwxr-xr-x. 1 root root 117616 Nov 20 2015 /bin/ls
      
      srw-rw-rw- 1 root root 0 Mar 14 2017 /dev/log
      
      brw-rw---- 1 root disk 8, 0 Mar 14 09:03 /dev/sda
      
      crw--w---- 1 root tty 4, 1 Mar 14 09:03 /dev/tty1
      
      lrwxrwxrwx. 1 root root 22 Dec 21 01:40 /etc/grub2.cfg -> ../boot/grub2/grub.cfg
      
      -rw-r--r-- 1 root root 392 Feb 22 15:51 /etc/hosts
      
      drwxr-xr-x. 10 root root 4096 Mar 14 11:00 /home
    
  • 注意

    • 通過顏色判斷文件的類型是不一定正確的!!!

Linux系統中文件不是必須設置擴展名!!!

2.文件管理命令

  • 1.改變目錄

    • cd [ 絕對路徑和 | 相對路徑]目錄
    • pwd 查看當前目錄
  • 2.創建文件

    • touch 1.txt

cat >1.txt

  • 3.創建目錄

      	- # mkdir dir1
      
      # mkdir    /home/dir2    /home/dir3
      
      # mkdir    -v     /home/dir8/111/22	//顯示創建過程
      
      # mkdir    -pv    /home/dir8/111/222 //包括其父母的創建,不會有任何消息輸出
    
  • 4.查看文件內容

    • 推薦查看的文件

        		- /bin/date
        
        /etc/hosts
        
        /etc/sysconfig/network
        
        /etc/sysconfig/network-scripts/ifcfg-eth0
        
        /etc/passwd
        
        /etc/shadow 
        
        /etc/group
        
        /etc/grub2.cfg
        
        /etc/resolv.conf 
        
        /etc/profile //設置系統環境變量
        
        /etc/bashrc //影響bash shell環境
        
        /var/log/messages //系統主日誌文件
        
        /var/log/secure //跟安全相關的日誌如ssh登錄,本地登錄...
      
    • cat全部

      • cat 文件名

-n 顯示行號

-A 包括控制字符(換行符/製表符)
tac 從最後一行逆序打印

- more翻頁

	- more

- head頭部

	- [root@tianyun ~]# head /etc/passwd

[root@tianyun ~]# head -2 /etc/passwd

- tail尾部

	- [root@tianyun ~]# tail /etc/passwd

[root@tianyun ~]# tail -1 /etc/passwd

[root@tianyun ~]# tail -F /var/log/secure //-F 動態查看文件的尾部

- grep過濾關鍵字

	- # grep 'root' /etc/passwd
  • 5.複製

      - # cp -v install.log /home/dir1	  //-v 顯示詳細信息
      
      # cp -rv /etc /home/dir1    //-r 拷貝文件夾
      
      # cp -rf /etc /tmp    //-f, --force 強制
    
      #-r 遞歸複製文件夾下面所有文件及屬性
      #-i  提示信息
    
  • cp到底是何方神聖?

      	- 
    
      [root@tianyun ~]# type -a cp
      
      cp is aliased to `cp -i'
      
      cp is /bin/cp
    
  • 6.移動

    • mv file1 /home/dir3 將file1移動到/home/dir3

    • mv -t 文件夾1 目標文件夾 ##講目標文件夾轉移到文件夾 與默認相反
    • mv 文件 new文件 將文件更名爲 new 的
  • 7.刪除

    • rm

        	- -r 遞歸
      
        	-f force強制 不顯示任何信息
        	
        	-v 詳細過程
        	
        			[root@tianyun ~]# rm -rf /home/dir10/*      //不包括隱藏文件
      
    • rmdir

      • 刪除空目錄
      • -r 遞歸刪除空目錄
    • 7.查找 find

      • find查找標準參數 find 路徑 參數 文件

        • find / -name 1.txt
      • find -name

        • find -name a.txt
      • 按照文件大小查找 find / -size +1000k 大於1000k大小文件
        -1000k 小於1000k

      • 根據時間查找 find / -mtime -(+)3 查找修改時間三天以(外)內的
        -atime 訪問文件時間
        -ctime 修改狀態的時間

    • 8.grep 文本全局正則查找

      • -i 忽略大小寫

      • -c 只顯示匹配行的數量 查看匹配多少數量

      • -r 遞歸查找子目錄

      • -n 顯示行

        • grep -n ‘字符’ a.txt
      • grep ‘字符’ * 當前目錄下查找所有含有搜索字符的文件

      • 正則

        • cat demo/a.txt | grep ‘1’ 搜索 字母開頭
        • ls | grep ‘^w’ 字母開頭的文件
      • 結合管道符 |

        • ls | grep a 將ls得到的結果交給 grep 篩選
    • 命令查找

      • whereis
      • which
  • 9.鏈接

    • 軟鏈接 -s

      • 應用 ln -s 源文件 鏈接文件

        • 軟鏈接:新建了一塊地址 存放源文件的引用的地址,所以當源文件刪除後,軟鏈接失效 相當於快捷方式
    • 硬鏈接

      • ln 源文件 鏈接文件

        • 硬鏈接:指向源文件的地址,當源文件引用被刪除後,硬鏈接依舊指向源文件地址,指向數據
    • 查看

      • 當 ll 後 文件後面出現 --> 爲軟鏈接
  • 10.修改文件內容

    • 1.圖形文件編輯器1

      • 圖形文件編輯器 gedit
    • 2.文件編輯器2

      • VI 的三個模式

          - 可視模式,按V進入,小v光標自己選取,大V直接選取一行,YYp複製粘貼即可。
        

ctrl+V,上下選擇,然後可以ctrl+> 進行整體縮進。

	- 命令模式

	- 光標定位

	- 光標定位 

		hjkl               //上下左右
		
		0 $               //行首行尾
		
		gg G 			//野獸頁尾
		
		3G 進入第三行  
		
		/string (n N 可以循環的)     //查找字符,n下一個
  • 文本編輯

  • 文本編輯(少量)

      y 複製 yy 3yy ygg yG (以行爲單位)
      
      d 刪除 dd 3dd dgg dG (以行爲單位) 
      
      p 粘貼
      
      x 刪除光標所在的字符
      
      D 從光標處刪除到行尾
      
      u undo撤銷
      
      ^r redo重做
      
      r 可以用來修改一個字符
    
  • 進入其它模式

      a 進入插入模式
      
      i 進入插入模式
      
      o 進入插入模式
      
      A 進入插入模式
      
      
      
      : 進入末行模式(擴展命令模式)
      
      v 進入可視模式
      
      ^v 進入可視塊模式
      
      V 進入可視行模式
      
      R 進入替換模式
    
  • 輸入模式

      	- insert:iaoIAO
    
      - 可視塊模式
    
      	- 塊替換: 選擇塊,r 輸入替換的字符 
    
      塊刪除: 選擇塊,d | x
      
      塊複製: 選擇塊,y
    
      - 擴展命令模式
    
  • 保存退出

      :10 進入第10行 
      
      :w 保存 
      
      :q 退出 
      
      :wq 保存並退出 
      
      :w! 強制保存 
      
      :q! 不保存並退出 
      
      :wq! 強制保存退出
      
      :x 保存並退出 ZZ
    
  • 查找替換

      :範圍 s/old/new/選項 
      
      :1,5 s/root/yang/          從1-5行的root 替換爲yang 
      			-  讀入文件/寫文件(另存爲)
      
      :w 存儲到當前文件
      
      :w /tmp/aaa.txt 另存爲/tmp/aaa.txt 
      
      :1,3 w /tmp/2.txt
      
      :r /etc/hosts 讀入文件到當前行後
      
      :5 r /etc/hosts 讀入文件到第5行後
      	- :set nu 設置行號 
    
      :set ic 不區分大小寫
      
      :set ai 自動縮進
      
      :set list 顯示控制字符
      
      :set nonu 取消設置行號 
    
  • 11.文件基本信息:時間(瞭解)

    • 時間類型

        - 訪問時間:atime,查看內容 
      
        	修改時間:mtime,修改內容
        	
        	改變時間:ctime,文件屬性,比如權限
        	
        	刪除時間:dtime,文件被刪除的時間
      
    • 查詢示例

        [root@tianyun ~]# stat install.log
        
        File: “install.log”
        
        Size: 34793 Blocks: 80 IO Block: 4096 一般文件
        
        Device: 802h/2050d Inode: 65282 Links: 1
        
        Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
        
        Access: 2012-10-23 16:53:20.000000000 +0800
        
        Modify: 2012-10-23 13:49:46.000000000 +0800
        
        Change: 2012-10-23 13:49:52.000000000 +0800
      

ls -l 文件名 僅看的是文件的修改時間

3.文件權限

  • r:read w:write x:exe

  • d  rwx      r-x      r-x
    文件 用戶   用戶所屬組其他用戶  其他任何用戶

  • 更改權限

    • user group other all
      chmod [ugo / a] [±=] [rwx] 文件或者文件夾

    • 方式1

        	- #chmod u -w b.txt 
      
        	 #chomd u-w,o+w b.txt
        	
        	#chmod u=rw btxt  賦給權限
        	
        	#chomd  a -w 文件夾 對所有等級的用戶 減去寫的權限
      
    • 八進制方式

      • r:4 w:2 r:1   從左往右賦值

      • chmod 644 1.txt

        • u=6,g=4,o=4
      • 對於一個文件夾:
        #chmod  777 code

#chmod 006 * 給當前目錄下所有文件其他用戶 賦予讀寫執行權限,並且減去當前用戶,組用戶的所有權限
#chmod -66 減去組,其他用戶的讀寫權限 數字從左往右開始匹配 ogu
- 遞歸  chmod -R 666 code 遞歸的對code 以及code目錄下所有的文件賦予權限

4.用戶與組

  • 用戶

    • 用戶信息

      • 一個用戶必有有一個主組
        一個用戶可以有多個組
        一個組可以有多個用戶

        • 用戶賬戶的信息存放在 /etc/passwd文件中
          超級用戶root(0)
          程序用戶(1-499)
          普通用戶(500-65535)
      • 用戶名 密碼 uid gid 用戶說明 家目錄 shell解釋器
        python : x : 1001 : 1001 : : /home /python : /bin/sh[外鏈圖片轉存失敗(img-r4nNlv4w-1566618018618)(assets/5f1d3e6276a4c4a569345a41b885cff3b227f244b9b083d85b90bc46894ecf55.png)]

      • 用戶名 密碼 最近更改時間 禁止修改密碼的天數 到用戶必須修改密碼的天數 告警更改密碼期限 不活動時間 標誌
        python : 636636 : 17394 : 0 : 99999 : 7 : : :
        [外鏈圖片轉存失敗(img-VDUbkPK6-1566618018622)(assets/1a98857f73802bbe51687a73adf1de047d0ae2505263c2ccc092f2c4c92cc09b.png)]

    • 新建用戶

      • useradd [optional] 用戶名
        -g 指定主組名或組id,必須已經存在的組
        -u 指定用戶的id
        -m 自動建立用戶主目錄
        -d 指定用戶的家目錄
        -s 指定用戶登錄後使用shell,默認是/bin/bash

        • example:
          sudo useradd -m 用戶名
          sudo useradd -m 用戶名 -s /bin/bash
    • 刪除用戶

      • userdel -r 用戶名
        刪除用戶和用戶的家目錄
    • 修改用戶密碼: sudo passwd 用戶名

    • 切換用戶:su 用戶名 新建的用戶由於sh的原因沒有sudo權限

    • 補充

      #啓用root賬戶
      $ sudo password root #根據提示爲root輸入密碼
      必須切換到root用戶
      #設置sudo提升權限的時候不需要輸入密碼,需要修改/etc/sudoers文件

      sudo vi /etc/sudoers
      #也可以使用工具:sudo visudo編輯

      Allow members of group sudo to execute any command

      #將sudo組添加NOPASSWD:
      %sudo ALL=(ALL:ALL) NOPASSWD: ALL
      #然後按esc
      :wq!

      #如果新添加的用戶不屬於sudo組,是不能使用sudo提升權限的,需要將用戶添加到sudo組
      #以屬於sudo組的用戶登錄
      sudo usermod -a -G sudo 用戶名

      如果沒有切換使用此命令恢復:
      pkexec chmod 0440 /etc/sudoers

    • 組信息存放在 /etc/group
    • groupadd 組名

groupdel 組名

groupmod -n 新組名 舊組名

groups 顯示所有組

2.SSH連接

工作原理

  • 服務器啓動的時候自己產生一個祕鑰(768bit),本地的ssh客戶端發送請求到服務器,服務器檢查點客戶端發送的數據和IP地址,確認合法後發送密鑰(768bits)給客戶端,此時客戶端將本地私鑰(256bit)和服務器的公鑰(768bit)結合成密鑰對key(1024bit),發回給服務器端,建立連接通過key-pair數據傳輸。

SSH

  • 簡介

    • 1.SSH是安全的加密協議,用於遠程連接Linux服務器
    • 2.SSH的默認端口是22,安全協議版本是SSH2
    • 3.SSH服務器端主要包含2個服務功能SSH連接和SFTP服務器
    • 4.SSH客戶端包含ssh連接命令和遠程拷貝scp命令等

服務

  • 如何安裝ssh?

    • Sudo apt-get install openssh-server
  • 啓動服務

    • sudo service ssh start / stop
  • 查看服務是否啓動:

    • ps -aux | grep ssh
  • 遠程鏈接

    • sudo ssh -p 端口 用戶名@ip地址

3.vi/vim編輯模式

  • 平時用的最多的vi命令:

    • 移動光標的方法:
    • [Ctrl]+[f]:屏幕向下移動一頁,相當於[PageDown]按鍵。forward
    • [Ctrl]+[b]:屏幕向上移動一頁,相當於[PageUp]按鍵。back
    • 0或功能鍵[Home]:移動到這一行的最前面字符處。
    • $或功能鍵[End]:移動到這一行的最後面字符處。
    • G:移動到這個文件的最後一行。
    • gg:移動到這個文件的第一行,相當於1G.
    • N[Enter]:N爲數字,光標向下移動N行
  • 刪除、複製和粘貼:

    • .:小數點,重複前一個操作。
    • x,X:在一行字中,x爲向後刪除一個字符(相當於[Del]鍵),X爲向前刪除一個字符(相當於[Backspace])。
    • dd:刪除光標所在的一整行。
    • ndd:刪除光標所在的向下n行。
    • yy:複製光標所在的一行。
    • nyy:複製光標所在的向下n行。
    • p,P:p爲將已複製的內容在光標的下一行粘貼,P則爲粘貼在光標的上一行。
    • u:復原前一個操作。
    • [Ctrl]+r:重做上一個操作。
  • 查找和替換:

    • /word:向下尋找一個名稱爲word的字符串。
    • ?word:向上尋找一個名稱爲word的字符串。
    • :n1,n2s/word1/word2/g:在第n1行和n2行之間尋找word1這個字符串,並且將其替換爲word2.
    • :1,$s/word1/word2/g:從第一行到最後一行尋找word1這個字符串,並且將其替換爲word2.
    • :1,$s/word1/word2/gc:從第一行到最後一行尋找word1這個字符串,並且將其替換爲word2.且在替換前顯示提示字符給用戶確認是否需要替換。
  • 一般模式切換到編輯模式:

    • i,I:進入插入模式,i爲從目前光標所在處插入。I爲在目前所在行的第一個非空格字符處開始插入。
    • a,A:進入插入模式。a爲從目前光標所在處的下一個字符處開始插入。A爲從所在行的最後一個字符處開始插入。
    • o,O:進入插入模式。o爲在下一行插入。O爲在上一行插入。
    • r,R:進入替換模式。r只替換光標所在那個字符一次。R會一直替換光標所在字符,直到按下Esc鍵。
  • 一般模式切換到命令行:

    • :set nonu 取消行號
    • :w 新文件名 另存爲新文件名
    • :n1,n2 w 新文件名 將第n1行到n2行的內容另存爲新文件名
    • :r 文件名A 將文件A中的內容讀入到當前文件中
    • :w:將編輯的數據寫入到硬盤中。
    • :q:離開vi.後面加!爲強制離開。
    • :wq:保存後離開。
    • :wq! 爲強制保存後離開。
    • :set nu 設置顯示行號

4.軟件包

壓縮與解壓

  • tar

    • -c 打包
      
      -x 解包
      -v 可視化
      -f指定文件名
      -t 查看包裏的東西
      -z 用gzip對包進行壓縮
      -j 用把bzip2對包進行壓縮
    • Example:
      打包 tar -cvf test.tar 1.txt 2.txt 3.txt
      解包 tar -xvf test.tar
      打包並且壓縮 tar -zcvf 包名 文件/文件夾
      解壓壓縮包 tar -zxvf 包名 -C 指定文件夾
  • gzip

    • 特點:這裏講gzip只能壓縮單個文件,並不是一次只能壓縮一個文件,而是壓縮的單位是單個文件,即並不能將多個文件壓縮成爲一個文件
    • gzip *.txt
      #解壓 gunzip xxx.gz
  • bzip2/bz2

    • bzip2 wq.txt

      • —>xxx.txt.bz2
    • bzip2 xxx.txt —>–→ 刪除源文件 存放的是源文件壓縮後文件

    • 解壓bz2文件:

    • bunzip2 xxx.txt.bz2

    • bzip2 -d xxx.txt.bz2

  • zip

    • zip -r 壓縮包名字 文件1 文件2 文件夾 打壓縮包
    • zip -rm 壓縮包名字 文件1 文件2 文件夾 刪除源文件並打壓縮包
    • unzip 解壓
    • unzip -d 指定的目錄名 mytest.zip

apt / pckg

  • redhat: centos

  •        rpm 軟件包管理
    
  • debian : ubuntu

  •        dpkg  軟件包管理:
    
  • 簡介

    • 雖然我們在使用dpkg時,已經解決掉了 軟件安裝過程中的大量問題,但是當依賴關係不滿足時,仍然需要手動解決,而apt這個工具解決了這樣的問題,linux distribution 先將軟件放置到對應的服務器中,然後分析軟件的依賴關係,並且記錄下來,然後當客戶端有安裝軟件需求時,通過清單列表與本地的dpkg以存在的軟件數據相比較,就能從網絡端獲取所有需要的具有依賴屬性的軟件了。
    • 然而,由於每位用戶所處的網絡環境不同,不可能隨意地訪問各鏡像站點。爲了能夠有選擇地訪問,在Ubuntu系統中,使用軟件源配置文件/etc/apt/sources.list列出最合適訪問的鏡像站點地址。
    • apt簡介:
    • 工作原理:
    • Ubuntu採用集中式的軟件倉庫機制,將各式各樣的軟件包分門別類地存放在軟件倉庫中,進行有效地組織和管理。然後,將軟件倉庫置於許許多多的鏡像服務器中,並保持基本一致。這樣,所有的Ubuntu用戶隨時都能獲得最新版本的安裝軟件包。因此,對於用戶,這些鏡像服務器就是他們的軟件源(Reposity)
  • dpkg是"Debian Package"的簡寫。

    • | dpkg -r 包名 | 卸載軟件包但保留配置信息 |
    • | dpkg -P 包名 | 卸載軟件包聯通配置信息一併卸載 | |
    • | dpkg -l 包名 |查看軟件包
    • | dpkg -l | grep zip |
    • | dpkg -i 包文件名(.deb) 安裝軟件包
    • dpkg -i sogoupinyin_2.2.0.0108_amd64.deb |
  • apt 與 apt-get

    • apt-cache  search   搜索應用程序
      
    • apt-cache show   現實應用程序安裝細節
      
    • apt = apt-get  + apt-cache
      
    • apt  search  
      
    • apt   show
      
    • apt install      ~   apt-get install
      
    • apt  remove   ~  apt-get remove
      
    • apt list 
      

5…shell 語法

### 命令 選項 參數

### [root@localhost ~]# ls

### [root@localhost ~]# ls  -a 

### [root@localhost ~]# ls  -a  /home

### 命令:整條shell命令的主體

### 選項:會影響會微調命令的行爲 //通常以 -, --

### 參數:命令作用的對象 

6. 獲得幫助

HELP

  • 語法

    • 命令 --help
  • 示例(ls --help)

    • ls --help

    • 用法:ls [選項]… [文件]…
    • ls 常見選項
    • -a all,查看目錄下的所有文件,包括隱藏文件
    • -l 長列表顯示
    • -h human 以人性化方式顯示出來
    • -d 只列出目錄名,不列出其他內容
    • -t 按修改時間排序
    • -S 按文件的Size排序
    • -r 逆序排列reverse
    • -i 顯示文件的inode號(索引號)

man

  • 簡介

    • 針對命令幫助,針對配置文件幫助,針對函數幫助
  • man手冊分類

  • 示例2

    • 一般情況是不需要使用章節號,例如:
    • man ls

    • man useradd

baidu, google

7.總結

創建、複製、刪除、移動、查看、編輯


  1. a-z ↩︎

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章