歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> 關於Linux >> Linux達人計劃

Linux達人計劃

日期:2017/3/1 12:07:46   编辑:關於Linux

1.Linux 應用領域

企業服務器方面

www.netcraft.com 檢測網站後台服務相關信息 (國外站點)

嵌入式應用方面

Android XXXSSHd 遠程安全管理 (QuickSSHd)

Linux 與 Windows 的不同

Linux 嚴格區分大小寫 Linux 所有內容以文件形式保存, 包括硬件 永久存在 不依靠擴展名區分文件 依靠權限 文件類型 擴展名 壓縮文件 .gz .bz2 .tar.bz2 .tgz 二進制軟件包 .rpm 腳本文件 .sh 配置文件 .conf 應用程序不同環境

2. 系統分區類型

主分區 : 最多只能有四個 擴展分區 :
最多只能有一個
主分區加擴展分區最多有四個
不能寫入數據, 只能包含邏輯分區 邏輯分區 :
格式化 在磁盤的特定區域寫入特定數據, 在分區中劃出一片用於存放文件分配表、目錄表等用於文件管理的磁盤空間

分區設備文件名與掛載

Created with Rapha?l 2.1.0 分區格式化為每個分區起設備文件名分配盤符

Linux 樹形結構

/ 根目錄 dev 硬件設備
hd[a-d]: IDE
sd[a-p]: SCSI/SATA/USB 磁盤
cdrom 或 hdc: 光驅
fd[0-1]: 軟盤
lp[0-2]: 打印機 (25 針)
/usb/lp[0-15]: 打印機 (USB)
mouse: 鼠標

掛載

** 把盤符和分區連在一起的過程, 目錄稱為掛載點 (相當於 Windows 的盤符)** 目錄作為盤符 / 根分區 swap 交換分區

CentOS 6.3

手動分區    home boot swap / 
安裝方式    Basic Server
    推薦分區 /boot 啟動分區(200M)
**Xshell** 首先在 Linux 中使用 ifconfig eth0 down 關閉網卡 再使用 ifconfig eth0 192.168.1.2 netmask 255.255.255.0 up 重啟網卡 手動配置 IP 或使用 setup 工具來配置 IP 地址

在 Xshell 中配置連接信息

vi /etc/sysconfig/network-scripts/ifcfg-eth0
ONBOOT=yes // 是否隨著開機啟動

3. 常用命令

命令基本格式

root 超級管理員 
localhost 主機名 
~ 當前所在目錄 
# 管理員用戶 
$ 普通用戶
/root   /home/other

命令 [選項] [參數]
... vi'''

1. 查詢目錄中內容

      ls [選項]
        -a 顯示所有文件 *(包括隱藏文件 .開頭文件)*
        -l 顯示詳細信息
                >- 第一列 權限*(10位基本權限)*
                    -文件類型 *(-文件 d目錄 l軟連接(快捷方式) )*
                        後九位分三組代表權限
                        所有者 u 
                        所屬組 g *相同身份或相同權限的一類用戶*
                        其他人 o 
                    r 讀 w 寫 x 執行
                    . 代表 ACL權限
            >- 第二列 引用計數(被調用 鏈接)
            >- 第三列 所屬者用戶
            >- 第四列 所屬組
            >- 第五列 大小
            >- 第六列 最後一次修改時間
            >- 第七列 文件名

-d 查看目錄屬性
-h 顯示文件大小
-i 顯示 inode

2. 文件處理命令

目錄處理命令

    建立目錄 mkdir
    mkdir 目錄名
        -p 遞歸創建
        mkdir -p abc/def/ggg

切換所在目錄 cd

    cd 目錄
        cd ~ / cd 切換家目錄
        cd -      上次目錄
        cd ..     上一級目錄
        cd .      當前目錄

相對路徑: 參照當前所在目錄
絕對路徑: 從根目錄開始指定, 一級一級遞歸查找
目錄 / 命令補全 Tab 鍵

查詢所在目錄 pwd (打印當前位置)

    刪除空目錄 rmdir
    rmdir 目錄名

    刪除文件或目錄 rm
    rm -rf 文件或目錄
        -r 刪除目錄
        -f 強制 

復制命令 cp

    cp [選項] [原文件或目錄] [目標目錄] 目標目錄後加文件名改名復制 不加名 原名復制
        -r 復制目錄
        -p 連帶文件屬性復制
        -d 若原文件是鏈接文件 則復制鏈接屬性
        -a 相當於 -pdr

剪切命令 mv

    mv [原文件或目錄] [目標目錄]
        同目錄下可以改名

    常見目錄作用
        /       根目錄
        /bin /sbin /usr/bin /usr/sbin   保存系統命令 (s* root用戶打開)
        /boot   啟動目錄保存啟動數據
        /dev    硬件文件
        /etc    配置文件
        /lib    函數庫
        /media /mnt /misc   三個空目錄 作為外接存放設備的掛載 (mnt)
        /proc /sys 內存的掛載點
        /tmp    臨時目錄
        /usr    系統軟件資源目錄
        /var    系統相關文檔目錄

鏈接命令

    鏈接命令 ln
    ln -s [原文件] [目標文件]
        生成鏈接文件 (引用計數加1)
        -s 創建軟鏈接

        硬鏈接
        (具有相同的i節點和存儲block塊,可以看成是同一個文件)
        一個文件的不同接入點
        通過i節點訪問
        不能跨分區
        不能針對目錄使用

        軟鏈接
        (類似Windows快捷方式)
        擁有自己的i節點和block塊 但數據塊中只保存原文件的文件名和j節點號,沒有實際的文件數據
        lrwxrwxrwx l軟鏈接
            軟鏈接權限都為 rwxrwxrwx
        修改任意文件,另一個都改變
        刪除原文件,軟鏈接不能使用
        軟鏈接非當前目錄,原文件要寫絕對路徑

文件搜索命令

locate 文件名
    在後台數據庫中按文件名搜索,搜索速度快
    /var/lib/mlocate    後台數據庫 
    updatedb            強制更新數據庫

    /etc/updatedb.conf 配置文件
    PRUNE_BIND_MOUNTS = "yes"   篩選規則是否生效
    PRUNEFS = ""    篩選規則 (不搜索以下文件系統)
    PRUNENAMES = "" 篩選規則 (不搜索以下後綴名文件)
    PRUNEPATHS = "" 篩選規則 (不搜索以下目錄中)

命令搜索命令

whereis 命令名

搜索系統命令所在路徑 (及幫助文檔)
-b 只查看命令位置
-m 只查看幫助文檔位置

which 命令名

除了命令所在位置還可以查看別名
內置命令 (shell) 沒有獨立的執行文件 例如: cd
環境變量 ($PATH) 內沒有所搜索的命令文件, 就會報錯 (未發現)

find 命令

find [搜索范圍] [搜索條件]
find / -name install.log 根目錄下按文件名搜索
避免大范圍搜索
通配符匹配, 通配符是完全匹配 (雙引號括起來)
* 任意內容
? 任意一個字符
[] 中括號內的任意一個字符 (或)
find -iname #不區分大小寫
find -user #按所有者 -nouser 沒有所有者的文件 (垃圾文件) 內核產生的文件

      find -mtime +10
       (查找十天前修改的文件)
        -10     10天內修改的文件
        10      10天當天修改的文件
        +10     10天前修改的文件
        atime   文件訪問時間
        ctime   改變文件屬性
        mtime   修改文件內容  



      find . -size 25k
        (查找大小為25K的文件)
        -25k    小於25K
        25k     大小為25K
        +25k    大於25K
        10M     大小為10M
默認類型為扇區塊(512K) \ 


      find . -inum 262421
        (查找i節點為262421)


      find /etc -size +20k -a -size -50k
    (查找/etc/目錄下,大於20K並小於50K的文件)
        -a and  邏輯與
        -o or   邏輯或


      find /etc -size +20k -a -size -50k -exec ls -lh {} \;
    (將查找的結果用後面的命令來執行處理 -exec {} \;  固定格式)

grep 命令 字符串搜索

grep [選項] 字符串 文件名
    gerp "size" anaconda-ks.cfg
        -v 取反
        -i 忽略大小寫

find 在系統當中搜索符合條件的文件名, 可以使用通配符來實現完全匹配
grep 在文件當中搜索符合條件的字符串, 可以使用正則表達式來實現包含匹配
文件名稱 通配符 (完全匹配)
文件數據 正則表達式 (包含匹配)

幫助命令

幫助命令 man
(獲取指定命令的幫助)
man ls
name 命令用途
synopsis 格式
description 選項 (簡化)
/d 可自動跳轉到第一個 - d 選項上
n 向下跳轉 shift+n 向上跳轉

man -f 命令
(查看命令級別)
(相當於 whatis 命令)
    man -5 passwd
    man -4 null
    man -8 ifconfig
默認打開最小等級的命令

man -k 命令
#找到和命令相關的所有相關信息
#相當於 apropos 命令

其他幫助命令

命令名 –help
獲取命令選項的幫助

help shell內部命令
    (獲取shell內部命令的幫助)
        whereis cd
        #查看是否是shell內部命令 (無可執行文件)
        help cd
        #獲取內部命令幫助   (內部命令無法使用man單獨獲取幫助)

info
    (獲取詳細幫助文檔)
    -回車     進入幫助子頁面 (帶*)
    -u      返回
    -n      下一個幫助小節
    -p      上一個幫助小節

壓縮與解壓縮命令
常用壓縮格式 .zip .gz .bz2 | .tar.gz .tar.bz2

.zip格式壓縮
    zip 壓縮文件名 源文件
    (壓縮文件)
    不要求,但要使用擴展名,便於區分        
    zip -r 壓縮文件名 目錄
    (壓縮目錄)

.zip格式解壓
    unzip 壓縮文件
    (解壓縮.zip文件)


.gz格式壓縮
    gzip 源文件
    (壓縮為.gz格式的壓縮文件,源文件會消失)

    gzip -c 源文件 > 壓縮文件
    (壓縮為.gz文件,源文件保留)

    gzip -r 壓縮目錄
    (把目錄當中的所有子文件壓縮,但是不能壓縮目錄)

.gz格式解壓縮
    gzip -d 壓縮包名
    (解壓縮文件)
    gunzip 壓縮包名
    gunzip -r 解壓目錄


.bz2格式壓縮
    bzip2 源文件
    (壓縮為.bz2格式的壓縮文件,不保留原文件)
        bzip2 -k 源文件
        (保留源文件)
        (不能壓縮目錄)
.bz2格式解壓縮
    bzip2 -d 壓縮包名
    bunzip 壓縮包名
    (-k 保留源文件)


.tar 打包文件(解決目錄壓縮與解壓縮)
    tar -cvf 打包文件名 源文件
        -c 打包文件
        -v 顯示過程
        -f 指定打包後的打包文件名

    tar -xvf 打包文件名
    (解壓縮)

打包後壓縮與解壓縮
tar -zcvf 壓縮包名. tar.gz 源文件
tar -zxvf 解壓縮包名. tar.gz
tar -jcvf 壓縮包名. tar.bz2 源文件
壓縮多個文件後用空格分隔
在壓縮文件名前加路徑可指定壓縮位置
tar -jxvf 解壓縮包名. tar.bz2
-C 指定解壓位置

tar -ztvf 壓縮包名
tar -jtvf 壓縮包名
    可查看壓縮包

關機和重啟命令

shutdown命令
    shutdown [選項] 時間
    -c 取消前一個命令
    -h 關機
    -r 重啟
    (可以正確保存服務與文件 )

    shutdown -r 05:30 &
    放在後台運行

其他關機命令
    halt
    poweroff
    init 0

其他重啟命令
    reboot
    init 6

系統運行級別
0 關機
1 單用戶
2 不完全多用戶, 不含 NFS 服務 (文件共享服務)
3 完全多用戶 (字符界面)
4 未分配
5 圖形界面 (X)
6 重啟
runlevel #查看之前級別和當前級別
cat /etc/inittab
id:3:initdefault: // 定義系統默認的運行級別

退出登錄命令
    logout
    #注銷

其他常用命令

掛載命令

mount
#查看系統中已經掛載的設備
mount -a
(根據配置文件 /etc/fstab (自動掛載) )
(如果將光驅和U盤寫入文件 光驅內沒有光盤,U盤沒有插入系統 啟動就會不成功)

mount [-t 文件系統] [-o 特殊選項] 設備文件名 掛載點
    -t 文件系統:加入文件系統來指定掛載的類型 ext3 ext4 iso9660(光盤)等文件系統
    -o 特殊選項:可以指定掛載的額外選項
        exec/noexec 是否可以執行可執行文件 默認允許
        remount 重新掛載已經掛載的文件系統 一般用於指定修改特殊權限
    默認已經掛載好的分區 可以省略 設備文件名

掛載光盤
    mkdir /mnt/cdrom
    (建立掛載點)
    mount [-t iso9660] /dev/sr0 /mnt/cdrom
    (掛載光盤 將設備文件掛載到盤符)
    (默認讀寫權限,光盤不可寫 提示權限被迫改變)

卸載光盤
    (必須卸載才可取出光盤)
    umount 設備文件名或掛載點
    umount /mnt/cdrom/

掛載U盤
    fdisk -l
    (查看設備文件名)
    mount -t vfat /dev/sdb1 /mnt/usb/
    (vfat (fat32)文件系統 Linux默認是不支持NTFS文件系統)

用戶登錄查看命令
     w  
     (查看用戶登錄信息 (系統資源情況) )

    who 
    (查看當前登錄用戶)

    last
    (查看系統中所有已登錄的信息 (歷史記錄) )
    (日志文件 /var/log/wtmp (二進制文件) 不可用vi查看 )

    lastlog
    (系統當中的用戶最後登錄時間 )
    (日志文件 /var/log/lastlog )

4.shell基礎

shell概述

系統命令行解釋器(二進制語言) | 接受輸入命令 編譯二進制傳輸給內核
還是一個功能相當強大的編程語言,易編寫,易調試,靈活性較強.

分類

Bourne Shell : 從1979起Unix就開始使用 主文件名為 sh ksh Bash psh zsh Linux中標准版為 Bash C Shell : 主要在BSD版的Unix系統中使用,與C語言類似 csh tcsh
Bash兼容 /etc/shells

腳本執行方式


echo輸出命令
echo [選項] [輸出內容]
空格需要加入雙引號
-e 控制字符(轉義字符) \a 警告音 \b 退格鍵
可輸入十六進制制表符ASCII \x
#輸出顏色 “\e[1;31m ……. \e[0m”
31m 紅色 35m 楊紅 32m 綠色 33m 黃色
echo -e “\e[1;31m 哈哈哈 \e[0m”

第一個腳本
    hello.sh
    #!/bin/bash
    echo -e "\e[1;36m 天上掉下個林妹妹  \e[0m"
執行權限
    通過Bash調用執行腳本
        bash hello.sh
    賦予權限,直接執行
        chmod 755 hello.sh
        ./hello.sh

Bash的基本功能
命令別名與快捷鍵
( 操作簡化,便於記憶 )

alias
(查看系統中默認生效的別名 )
alias ls=’ls –color=never’
(設定別名(臨時生效) alias 別名=’原命令’ )
vi ~/.bashrc
(永久生效 寫入環境變量配置文件 )
source ~/.bashrc 重新調用配置文件,使設置生效

unalias 別名
(刪除別名 (臨時生效) )

生效順序
1. 用絕對路徑或相對路徑執行的命令
2. 執行別名
3. 執行Bash的內部命令
4. 按照$PATH環境變量定義的目錄查找順序找到的第一個命令

常用快捷命令
ctrl+c 強制終止當前命令
ctrl+l 清屏
ctrl+a 光標移到行首
ctrl+e 光標移到行尾
ctrl+u 從光標所在位置刪除到行尾
ctrl+z 把命令放入後台
ctrl+r 在歷史命令中搜索

歷史命令

    history 歷史命令
        history [選項] [歷史命令保存文件]
        -c 清空歷史命令
        -w 把緩存中的歷史命令寫入歷史命令保存文件 ~/.bash_history
    #默認保存1000條
        HISTSIZE=1000
        #vi /etc/profile 環境變量配置文件

    基本調用
        上下箭頭來重復調用
        !n      來執行第n條歷史命令
        !!      重復執行上一條命令
        !字符串 重復執行後一個該串開頭的命令

    Tab鍵
        進行命令(環境變量)和目錄補全(操作路徑)

輸出重定向
(顯示電腦處理的結果)
標准輸入輸出
鍵盤 /dev/stdin 0 標准輸入
顯示器 /dev/sdtout 1 標准輸出
顯示器 /dev/sdterr 2 標准錯誤輸入

輸出重定向

標准輸出重定向
命令 > 文件
以覆蓋的方式,把命令的正確輸出輸出到指定的文件或設備當中.
命令 >> 文件
以追加的方式

標准錯誤輸出重定向
錯誤命令 2>文件
以覆蓋的方式,把命令的錯誤輸出輸出到指定的文件或設備當中.
錯誤命令 2>>文件
以追加的方式

正確輸出和錯誤輸出同時保存
命令 > 文件 2>&1
命令 &> 文件
以覆蓋的方式,把正確的輸出和錯誤輸出都保存到一個文件當中
命令 >> 文件 2>&1
命令 &>> 文件
以追加的方式
ls &> /dev/null (回收站)
命令 >> 文件1 2>> 文件2
正確的追加到文件1,錯誤的追加到文件2

輸入重定向
wc [選項] [文件名]
-c 統計字節數
-w 統計單詞數
-l 統計行數
ctrl+d 中斷統計

命令 < 文件
(把文件作為命令的輸入)
命令 << 標識符
(標識符其中的內容作為該命令執行的內容)

管道符
多命令順序執行
; 命令1;命令2 多個命令順序執行(無論中間是否保存)
&& 命令1&&命令2 邏輯與 當命令1正確執行,則命令2才會執行
|| 命令1||命令2 邏輯或 當命令1正確執行,則命令2不執行
# ls && echo yes || echo no

管道符
命令1 | 命令2
#將命令1的正確輸出作為命令2的操作對象
# ll /etc | more
# netstat -an | grep ESTABLISHED (服務器顯示連接人數)
# netstat -an | grep ESTABLISHED | wc -l (處理行號)

通配符
? 匹配一個任意字符
* 0個或任意多個
[] 匹配中括號內其中一個字符
[-] -代表一個范圍 [a-z]代表匹配一個字母
[^] 邏輯非 表示匹配不上中括號內的一個字符 [^0-9]代表匹配一個不是數字的字符

其他特殊符號

        ''  特殊符號都沒有特殊意義,原樣輸出        
        ""  $ ` \ 都具有特殊意義
        ``  包含系統命令 執行後賦值給變量 等同於 $()
        $  用於調用變量的值 (變量名=變量值)
        #   shell腳本中,#開頭的行代表注釋
        \   轉義符 跟在\之後的特殊符號失去意義,變為普通字符
Copyright © Linux教程網 All Rights Reserved