Linux基礎

20140910V1

20141010V2


一、 Linux基礎入門和架構瞭解

          1)Linux操作系統

                 1B=8bit 1KB=1024B 1MB=1024KB 1GB=1024MB

                 操作系統(OS)用於管理與驅動硬件; 內核kernal

                 shell調度內核

                 1971~1973 Bell實驗室的KenThompson利用彙編語言寫成unix前身,後由DennisRitchie以C程序語言進行改寫,稱爲UNIX

                 1977            BillJoy釋出BSD(BerkeleySoftwareDistribution),這些稱爲UNIXlike

                 1984            AndrewTannenbaum製作出Minix操作系統,同年RichardStallman提倡GNU項目,並規範出GPL授權模式

                 1991,芬蘭人LinuxTorvalds開發出Linux系統,GNU軟件開發團隊

                 Linux distributions是"Linux Kernel + Free Software + Documentations(Tools) + 可完全安裝的程序"


          2)Linux根文件系統

                  /boot /dev /dev /etc /home /root /lib /media /mnt /opt /proc /sys /tmp /vrp

                      

          3)shell概念

                 什麼是shell: 用戶使用 shell——>內核——>硬件

                 認識bash: BourneSHell(sh)、sun裏默認的CSHell,商業上常用的KSHell,還有TCSH

                 Bourne Again Shell(bash)這個shell是BourneShell的增強版本

                 操作系統有多少可以使用shell,可以檢查/etc/shells這個文件   

                 type  [-tpa] name

                 -t : file 外部命令 alias 別名所設置的命令 builtin 表示bash內置功能命令 


二、 Linux命令使用和管理

          1)基本命令深入講解

                 首先命令登入的樣式:[用戶名@主機名 ~]$ ,其中~是變量,當前所在目錄,而$則是用戶賬戶提示符,#爲root賬戶提示符。

                 命令執行格式: command [-options] parameter1 parameter2……

                 基礎命令:  date 顯示日期,修改日期

                                      cal   顯示日曆

                                       bc    簡單好用的計算器

                 重要的熱鍵: [Tab],[Ctrl]+c,[Ctrl]+d   

                 查詢功能說明:man,info,--help

                 超簡單文本編輯器:nano

                 正確關機方法: 1. 查看系統使用狀態 who, netstat -a, ps -aux

                                                 2. 將數據同步寫入硬盤 sync

                                                 3. 慣用關機命令 shutdown

                                                      重啓、關機 reboot halt poweroff

                  切換執行等級:init                                                      

          2)用戶權限及權限管理詳解

                 linux文件屬性

                 文件權限 連接數 文件所屬用戶組 文件大小 文件最後被修改時間 文件名 

                 系統語言配置文件位置: /etc/sysconfig/i18n

                 目錄文件權限意義:rxw 4 2 1                  

                 chmod chown chgrp  eg:chmod (u g o a) (+ - =) (rwx) 文件or目錄

                 Linux的賬號與用戶組:uid gid                  

                 用戶組類別: 管理組 普通用戶組                  

                 私有組 基本組 附加組

                 用戶與用戶組                 

                 存放賬號路徑 /etc/passwd 存放密碼路徑/etc/shadow

                  useradd userdel

                  passwd usermod

                  acl

                  su

                  sudo

                  查詢用戶: w who last lastlog

                  用戶對談: write mesg wall

             3)常用文件管理命令

                  文件種類與擴展名:文件種類 普通文件(-)( 純文本文件 二進制文件 數據格式文件)

                                                                             目錄(d)                 

                                                                             連接文件(l) 

                                                                             設備與設備文件(b)( c )

                                                                             套接字(s)

                                                                             管道(p)

                                                           Linux文件擴展名 Linux擴展名沒有真正意義,只是用於幫助瞭解,

                                                                                            Ext2/3文件系統時,單一文件名長度爲255個字符,包含完整路徑名的文件名爲4096字符                                                          

                  Linux目錄配置標準:FHS(Filesystem Hierarchy Standard)                                   

                  相對路徑 從根目錄開始的路徑

                  絕對路徑

                  pwd顯示路徑 cd切換路徑 ls列出文件

                  mkdir創建目錄 rmdir刪除目錄

                  umask 

                  chattr lsattr

                  SUID SGID SBIT                   

                  file查看文件屬性

                  文件查找 where  whereis

                                     locate

                                     find [PATH] [option] [action]      1. 與時間有關的參數:-atime -ctime -mtime

                                                                                              2. 與用戶或用戶組有關的參數:-uid -gid -user -group -nouser -nogroup

                                                                                              3. 與文件權限及名稱有關的參數:-name -size -type -perm

                                                                                              4. 其他可進行的操作:-exec -print                                             

                 rm刪除文件 mv移動文件 cp複製文件 touch創建文件

                 文本處理命令:   cat more less head tail 

        文本編輯器:   vi vim

        VIM按鍵說明: 第一部分 一般模式

                                               h光標左移一個字符,j光標下移一個字符,k光標上移一個字符,l光標右移一個字符

                                               [crtl]+f 相當於page down [crtl]+b 相當於page down

                                               [crtl]+d屏幕向下移動半頁 [crtl]+u 屏幕向上移動半頁

                                               n<space>

                                               0或功能鍵home移動到這一行最前面  $或功能鍵end移動到這一行最後面                                              

                                               H光標移動到屏幕上方第一個字符 M光標移動到屏幕中央行第一個字符 L光標移動到屏幕下方第一個字符 

                                               G移動到這個文件最後一行 nG移動到這個文件第n行 gg移動到第一行 N[enter]光標向下移動n行

                                               /word向下尋找word字符串 ?word向上尋找word字符串 n繼續向下查找 N繼續向上查找

                                               :n1,n2s/word1/word2/g 在n1行到n2行中間查找word1字符串替換爲word2

                                               :1,$s/word1/word2/g     從第一行到最後一行中查找word1字符串並替換爲word2

                                               :1,$s/word1/word2/gc   從第一行到最後一行中查找word1字符串並替換爲word2。替換前提示用戶確認。

                                               x  向後刪除一個字符                X向前刪除一個字符                                      nx連續向後刪除n個字符 

                                               dd刪除光標所在那一行           ndd刪除光標所在向下n行                           d1G刪除光標所在到第一行所有數據

                                               dG刪除光標到最後一行數據 d$刪除從光標所在到該行行尾所有數據 d0刪除從光標所在到該行最前面所有數據

                                               yy複製光標所在的那一行       nyy複製光標所在向下n行                            y1G複製光標所在行到第n行數據

                                               yG複製光標到最後一行數據  y$複製從光標所在到該行行尾所有數據 y0複製從光標所在到該行最前面所有數據

                                               p將已複製數據貼在下一行    P將已經複製數據貼在上一行

                                               j將光標所在行與下一行數據結合成一行 c重複刪除多個數據,例如[10cj] 

                                               u撤銷上一次操作 [ctrl]+r重做上一次操作 .重複前一個操作

                     第二部分 編輯模式

                                               i,I        進入插入模式,從光標所在開始插入

                                               a,A     進入插入模式,從光標所在下一個字符開始插入   

                                               o,O     進入插入模式,從光標所在的下一行開始插入

                                               r,R      進入替換模式,只會替換光標所在的那一個字符

                     第三部分 命令行模式   

                     :w   保存           ZZ                   沒有改動,不保存離開;改動了,保存離開                         

                     :w!  強制保存       :w [filename]        將編輯的文件保存成另一個文件                 

                     :q   離開           :r [filename]        將編輯的數據讀入另一文件

                     :q!  強制離開       :n1,n2 w [filename]  將n1到n2數據保存成filename

                     :wq  保存後離開     :! Command           暫時離開vi到命令行執行command的顯示結果   

                     :set nu   設置行號 

                     :set nonu 取消行號

        vim被編輯時,會生成一個swp文件,如果有人已經在編輯,或不正常關閉,會有提示告警。

                 vim塊選擇工具(visual block)

                                               v字符選擇,光標經過地方反白 V行選擇,光標經過的行反白 [ctrl]+v塊選擇,可以用長方形方式選擇數據

                                               y將反白地方複製起來                  d將反白地方刪除

                  多文本編輯       :n編輯下一個文件                         :N上一個文件                                :files列出目前這個vim打開所有文件

                  多窗口功能       :sp [filename]打開一個新窗口    [ctrl]+w+(jkq)

                  vim環境設置與記錄: ~/.vimrc , ~/.viminfo記錄vim操作記錄


            3) bashshell深入瞭解                   

                 bash shell的功能:    

                 1. [Tab]按一次爲命令補全,按兩次顯示所有命令

                 2. alias        

                 3. histoy,記錄存放在/.bash_history中

                     命令歷史使用技巧 !n !-n !! ![string] ;ctrl+r搜索歷史命令

                 4. 作業控制、前臺、後臺控制(job control,foreground,background)

                 5. 程序腳本(shell script)

                 6. 通配符(wildcard)

                 shell的環境變量: 

                 echo unset

                 變量的設置規則:1.  變量與變量內容以一個“=”連接,如 myname=Vbird

                                                     2.  等號兩邊不能直接接空格符

                                                     3.  變量名稱不能以數字開頭 

                                                     4.  變量內容若有空格字符,可以使用雙引號(能保有特殊字符原有特性)or單引號將變量內容結合起來

                                                     5.  可用轉義字符 \ 

                                                     6.  在一串命令中需要其他命令提供信息使用“`` ,$”,如version=$(uname -r),再echo $version

                                                     7.  爲了增加變量內容可以這樣:PATH="$PATH":/home/bin

                                                     8.  若該變量要在其他子進程執行,則需export PATH

                                                     9.  通常大寫字符爲系統默認變量,自定義的變量使用小寫字符

                                                     10.取消變量方法爲:unset 變量名稱

                 用evn查看環境變量與常見環境變量說明:

                 HOME 代表用戶主文件夾

                 SHELL 目前環境使用的默認shell

                 MISTSIZE 命令歷史緩衝區大小

                 MAIL 收信時系統會去讀取的郵件信箱文件

                 PATH 命令搜索路徑

                 LANG 系統語言環境

                 RANDOM 隨機數的變量

                 也用set查看環境變量

                 $本身也是變量,是目前shell的線程代號(PID),?也是變量,是上一個執行命令所回傳的值

                 export 自定義變量轉成環境變量: export 變量名稱

                 影響顯示結果的語系變量 locale  ;cat /etc/sysconfig/i18n

                 變量鍵盤讀取、數組與聲明:read array declare

                 與文件系統系統及程序的限制關係ulimit: ulimit -a 顯示所有限制                 

        變量內容刪除、替代及替換: eg: echo "this dirctory is $(pwd)"  ; touch file-$(date +%F-%H%M%S).txt 

         終端機的環境設置:stty,set

                                                          組合按鍵 ^c終止目前命令 ^d ^m ^s ^q ^u ^z暫停目前命令

                 通配符與特殊符號: 通配符 * ? [] [-] [^]

                                                          特殊符號 # \ | ; ~ $ & ! /

                                                                            > >> < << 

                                                                            '' "" `` 

                                                                            ()中間爲子shell的起始與結束 {}中間爲命令塊的組合

                 數據流重定向: > < >> <<

                 命令執行判斷依據: ;      不考慮命令相關性,直接執行

                                                          && 前面命令正確執行接下來命令

                                                          ||   前面命令執行錯誤接着執行第二條

                 管道命令(pipe): |  

                 選取命令 grep [-acinv] [--color=auto] '查找字符串' filename 

                           cut '分隔字符' filename 一般用法:cut -d '分隔字符' -f fields

        排序命令:        sort

        重複數據顯示一遍:uniq

        文字統計:        wc

        雙向重定向: tee

                 字符轉換命令 : tr,col,join,paste,expand

                 切割命令:split [-bl] file prefix         eg:split -b 300k /etc/tmermcap termcap

                 參數代換:xargs

                 關於減號-的用途                                                        


          4)grep及正則表達式

                 1. 正則表達式就是處理字符串的方法

                 2. 特殊符號意義:[:alnum:] [:alpha:] [:blank:] [:cntrl:] [:digit:] [:graph:]

                                                     [:lower:] [:print:] [:punct:] [:upper:] [:space:] [:xdigit:] 

                 3. 基礎正則表達式字符

                      ^word word$ \ * [list] [n1-n2] [^list] \{n,m\}

                 4. sed工具

                 5. 擴展正則表達式

                 6. 文件的格式化與相關處理:printf awk

                 7. 文件比較工具

                 8. 文件打印準備

          

          5)運維自動化shell                      

                 腳本格式: shell script 

                   #!/bin/bash

                   #explain

                   path

                   progam 

                  條件判斷:  if...then                                                                                                                 

                                       case...esac

                                       fuction                                         

                  循環判斷: while do done,until do done

                                      for...do...done

                                      for...do...done

              

三、 Linux磁盤及文件系統管理

              Linux最傳統的文件系統使用的是Ext2(現在應該都是Ext3)

            1) 硬盤的組成與分區: 扇區 柱面 

                                                    第一個扇區最重要,裏面有硬盤主引導記錄(MBR),及分區表(partition table)

              /dev/sd[a-p][1-15]: 爲SCSI,SATA,USB,BLASH

              /dev/hd[a-d][1-63]: 爲IDE

             * 主分區與擴展分區最多可以有4個(硬盤的限制)

             * 擴展分區最多只能有一個(操作系統限制)

             * 邏輯分區是由擴展分區持續分出來的分區

             * 能夠被格式化後作爲數據訪問的分區爲主要分區和邏輯分區,擴展分區無法格式化 

             * 邏輯分區數量依操作系統而不同。Linux系統中,IDE硬盤最多59個邏輯分區(5號~63號),SATA硬盤則是11個邏輯分區(5號~15號)

              2)Ext2系統(Linux second extended file system,Ext2fs)

              indoe: 文件權限與文件屬性

              block:  實際數據則放置到data block,另還有一個超級superblock記錄整個文件系統的整體信息

              dumper2fs [-bh] 設備文件名

              ext2文件系統示意圖

啓動扇區 

Boot sector Block group1 Block group2 Block group3 Block groupn...

              inodetable(inode表格),superblock(超級塊)             

              ext2/ext3 文件的訪問與日誌文件系統的功能 

              3)文件系統的簡單操作

              df du

              連接文件ln:  ln -s 源文件 目標文件

              4)新增一塊硬盤: 磁盤分區、格式化、檢驗與掛載

              fdisk,mkfs mke2fs,fsck badblocks, mount

              fdisk -l 設備名稱

              fdisk 設備名 ==>接着出現如下行

              command(m for help): 【輸入m】 (d刪除一個分區 n新增一個分區 p在屏幕上顯示分區表 q離開 w保存)

              partprobe (強制讓內核重新找一次分區表)


              mkfs -t ext3 設備名

              fsck

              mkdir 

              mount 

             

              5)  設置開機掛載/etc/fstab 及/etc/mtab ;特殊設備loop


              6)  內存交換空間swap


              7)  Linux常見壓縮命令: compress; gzip zcat; bzip2 bzcat; tar

                       compress壓縮文件 *.z; gzip壓縮文件          *.gz;   bzip2壓縮文件         *.bz2; 

                       tar打包文件               *.tar;  經過gzip壓縮後打包文件 *.tar.gz; 經過bzip2壓縮後打包文件 *.tar.bz2

              8)  完整備份工具: dump restore 

              9)  光盤寫入工具: mkisofs cdrecord

              10)其他常見的壓縮與備份工具: dd cpio 


四、 企業級yum軟件管理

       rpm

       yum 本地yum平臺搭建     

                   聯網yum搭建

 

五、 Linux使用管理和進程管理

      1)Quota      

      2)raid 

      3)lvm:


      4)crontab: 分 時 日 月 周


      5)進程管理:ps

                ps -l顯示的數據  F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD

                ps aux顯示的數據 USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND

                top

                pstree

                kill


      6)系統資源查看:free uname uptime netstat dmesg vmstat


      7)/proc


      8)SELinux


      9)系統服務 daemons 

         stand_alone

         super daemon 

         daemon的工作形態類型:signal-control interval-control 

         daemon的啓動腳本及配置文件位置: /etc/init.d/* 啓動腳本放置處

                                                                                             /etc/sysconfig/* 各服務的初始化環境配置文件

                                                                                             /etc/xinted.conf,/etc/xinetd.d/* super daemon配置文件

                                                                                             /etc/* 各服務各自的配置文件

                                                                                             /var/lib/*   各服務產生的數據庫

                                                                                             /var/run* 各服務的程序的PID記錄處

                     standalone的啓動方式:

                     superdaemon的啓動方式: 

                     解析super daemon的配置文件: 默認配置文件 xinetd.conf

                                                                                     =

                                                                                     +=  

                                                                                     -=

          /etc/hosts.allow,/etc/hosts.deny管理

          TCP Wrappers特殊功能

          chkconfig:管理系統服務默認開機啓動與否

                     chkconfig --list [服務名稱]

                     chkconfig [--level [0123456]] [服務名稱] [on|off]     

              

      10)日誌與分析

                    常見的日誌文件: /var/log/cron

                                                         /var/log/dmesg

                                                         /var/log/lastlog

                                                         /var/log/maillog或/var/log/mail/*

                                                         /var/log/messages

                                                         /var/log/secure

                                                         /var/log/wtmp,/var/log/faillog

                                                         /var/log/httpd/*,/var/log/news/*,/var/log/samba/*

                   日誌服務所需相關服務daemon與進程: syslogd    主要登錄系統與網絡等服務的信息

                                                                                                 klogd       主要登錄內核產生的各項信息

                                                                                                 logrotate 主要進行日誌文件的輪替功能

                    syslogd:記錄日誌文件的服務

                    syslogd的配置文件 /etc/syslog.conf               

                                                        服務名稱[.=!]信息等級 信息記錄的文件名或設備或主機


                    logrotate

                    logwatch


      11)每週系統備份的腳本    


六、 Linux系統管理員

          1) 啓動流程、管理模塊與loader    

           Linux系統啓動過程:1 加載BIOS的硬件信息與進行自我測試,並依據設置取得第一個可啓動的設備

                                                    2 讀取並執行第一個啓動設備內MBR的boot Loader(即是grub,spfdisk等程序)

                                                    3 依據boot loader的設置加載kernel,kernel會開始檢測硬件與加載驅動程序

                                                    4 在硬件驅動成功後,Kernel會主動調用init進程,而init會取得run-level信息

                                                    5 init執行/etc/rc.d/rc.sysinit文件來準備軟件執行的操作環境

                                                    6 init執行run-level的各個服務啓動(script方式)

                                                    7 init執行/etc/rc.d/rc.local文件

                                                    8 init執行終端機模擬程序mingetty來啓動login進程,最後就等待用戶登錄


七、 Linux精簡系統和內核管理裁剪

      kernel

      grub


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