Linux學(xué)習(xí)筆記

Linux
習(xí)慣問題:

  1. 在vim編輯時(shí),按了ctrl + s后拓挥,再按ctrl + q就可以繼續(xù)執(zhí)行了。
    ctrl + s 表示停止向終端輸出
    ctrl + q 表示恢復(fù)向終端輸出

  2. 重啟reboot

  3. vi和vim使用方法
    打開一個(gè)文件:vi/vim xxx.xxx
    進(jìn)入插入模式:i/a
    進(jìn)入命令行模式:按Esc
    退出:q(沒有修改的退出) w(保存) wq(保存并退出) q!(強(qiáng)制退出芽隆,不保存修改)

  4. vi\vim快捷鍵
    1)拷貝當(dāng)前行 yy葫隙,拷貝當(dāng)前行下的5行 5yy,并粘貼(p)
    2)刪除當(dāng)前行 dd驱证,刪除當(dāng)前行下的5行 5dd
    3)在文件中查找某個(gè)單詞[命令行下/關(guān)鍵字延窜,回車查找,輸入n就是查找下一個(gè)]
    4)設(shè)置文件的行號(hào)抹锄,取消文件的行號(hào) [命令行下 :set nu 和 :set nonu]
    5)編輯 /etc/profile文件逆瑞,使用快捷鍵到底文檔的最末行[G]和最首行[gg]
    6)在一個(gè)文件中輸入 "hello",然后又撤銷這個(gè)動(dòng)作 u
    7)編輯 /etc/profile文件伙单,并將光標(biāo)移動(dòng)到20行 輸入20 再shift+g
    PS:命令的執(zhí)行都是在正常模式获高,而不是插入模式下進(jìn)行。

  5. 關(guān)機(jī)&重啟命令
    shutdown
    shutdown -h now :立即關(guān)機(jī)
    shutdown -h 1 :1分鐘后關(guān)機(jī)
    shutdown -r now :立即重啟
    halt :直接使用吻育,效果等價(jià)于關(guān)機(jī)
    reboot :重啟系統(tǒng)
    sync :把內(nèi)存的數(shù)據(jù)同步到磁盤上念秧,防止丟失數(shù)據(jù)
    PS:當(dāng)關(guān)機(jī)或重啟時(shí),都應(yīng)先執(zhí)行一次sync指令布疼,把內(nèi)存的數(shù)據(jù)寫入磁盤摊趾,防止數(shù)據(jù)丟失

  6. 用戶的登錄和注銷
    1)登錄時(shí)盡量不用root賬號(hào)登錄,因?yàn)樗窍到y(tǒng)管理員游两,擁有最大權(quán)限砾层,避免操作失誤,可以利用普通用戶登錄贱案,登錄后再用"su - 用戶名"命令來切換成系統(tǒng)管理員身份
    2)在提示符下輸入 logout即可注銷用戶梢为,只對(duì)遠(yuǎn)程登錄有用

  7. 用戶管理
    1)添加用戶 useradd [選項(xiàng)] 用戶名 如:useradd guest 就會(huì)創(chuàng)建一個(gè)guest用戶
    當(dāng)創(chuàng)建用戶成功后,會(huì)自動(dòng)的創(chuàng)建和用戶同名的家目錄
    也可以通過useradd -d 指定目錄 新的用戶名轰坊,給新創(chuàng)建的用戶指定家目錄
    2)指定/修改密碼
    a. passwd 用戶名
    b. 輸入新的密碼
    c. 再次確認(rèn)輸入的密碼
    3)刪除用戶
    a. userdel 用戶名
    b. 刪除用戶铸董,但保留家目錄 :userdel 用戶名
    c. 刪除用戶,同時(shí)刪除家目錄 :userdel -r 用戶名
    在刪除用戶時(shí)肴沫,我們一般不會(huì)把家目錄刪除掉
    4)查詢用戶信息 :id 用戶名
    5)切換用戶
    a. su - 用戶名
    b. su 用戶名
    c. exit 退出切換的用戶粟害,回到root用戶上
    PS: su [user]切換到其他用戶,但是不切換環(huán)境變量颤芬,su - [user]則是完整的切換到新的用戶環(huán)境囤屹。
    6)查看當(dāng)前登錄用戶/使用用戶:whoami

  8. 用戶組
    1)增加組:groupadd 組名
    2)刪除組:groupdel 組名
    3)創(chuàng)建用戶的同時(shí)附屬的指定的組中:useradd -g 組名 用戶名
    4)修改用戶組:usermod -g 用戶組 用戶名
    5)/etc/passwd 用戶配置文件,記錄用戶的各種信息
    如:zwj:x:1002:1003::/home/zwj:/bin/bash
    root:x:0:0::/home/root:/bin/bash
    用戶名:口令:用戶id:組id::家目錄:shell
    每行的含義:用戶名:口令:用戶標(biāo)識(shí)號(hào):組標(biāo)識(shí)號(hào):注釋性描述:主目錄:登錄shell
    6)/etc/shadow 口令配置文件
    每行的含義:登錄名:加密口令:最后一次修改時(shí)間:最小時(shí)間間隔:最大時(shí)間間隔:警告時(shí)間:不活動(dòng)時(shí)間:失效時(shí)間:標(biāo)志
    7)/etc/group 組配置文件挥下,記錄Linux包含的組的信息
    每行的含義:組名:口令:組標(biāo)識(shí)號(hào):組內(nèi)用戶列表

  9. Linux的運(yùn)行級(jí)別
    0:關(guān)機(jī)
    1:?jiǎn)斡脩簦ㄕ一貋G失密碼)
    2:多用戶無網(wǎng)絡(luò)服務(wù)
    3:多用戶有網(wǎng)絡(luò)服務(wù)
    4:系統(tǒng)未使用保留給用戶
    5:圖形界面
    6:系統(tǒng)重啟
    常用運(yùn)行級(jí)別是3和5哪亿,要修改的運(yùn)行級(jí)別可改文件/etc/inittab的id:5:initdefault:這一行中的數(shù)字
    命令:init[0123456]
    1)切換到指定運(yùn)行級(jí)別的指令
    systemctl set-default multi-user.target
    systemctl set-default graphical.target
    2)查看當(dāng)前的運(yùn)行級(jí)別的指令
    systemctl get-default

  10. 幫組指令
    1)man 指令
    2)help 指令

  11. 文件目錄指令
    1)pwd 顯示當(dāng)前工作目錄的絕對(duì)路徑
    2)ls 顯示路徑下的所有文件和目錄
    ls -a 顯示當(dāng)前目錄所有的文件和目錄,包括隱藏的菱魔。
    ls -l 以列表的方式顯示信息
    ls -a -l 以列表的形式顯示所有文件和目錄留荔,包括隱藏的
    ls -al 和ls -a -l功能一致
    3)cd 切換目錄
    cd ~ 回到自己的家目錄
    cd .. 回到上一級(jí)路徑
    cd / 回到根路徑
    cd ../home 回到上一級(jí)路徑下home目錄中
    cd /home 回到根目錄下的home目錄中
    4)mkdir 創(chuàng)建目錄
    mkdir /home/dog 在/home路徑下創(chuàng)建dog目錄(只能創(chuàng)建單級(jí)目錄)
    mkdir -p /home/animal/tiger 在/home路徑下創(chuàng)建animal目錄并在animal目錄下創(chuàng)建tiger目錄(創(chuàng)建多級(jí)目錄)
    5)rmdir 刪除目錄
    rmdir /home/dog 刪除/home目錄下的dog目錄(刪除的是一個(gè)空目錄)
    rm -r /home/dog(刪除一個(gè)非空目錄,dog目錄下有一個(gè)test.txt文件)
    6)touch 文件名 創(chuàng)建一個(gè)空文件
    touch 1.txt 創(chuàng)建一個(gè)1.txt的空文件
    touch 1.txt 2.txt 創(chuàng)建了1.txt和2.txt兩個(gè)文件
    7)cp 拷貝文件
    語(yǔ)法:cp [選項(xiàng)] source dest
    cp aaa.txt bbb/ 把當(dāng)前目錄下aaa.txt文件拷貝到當(dāng)前目錄下的bbb目錄下(拷貝單個(gè)文件到指定的目錄中)
    cp -r test/ zwj/ 把當(dāng)前目錄下的test目錄拷貝到當(dāng)前目錄下的zwj目錄下(循環(huán)拷貝內(nèi)容到指定的目錄下)
    \cp -r test/ zwj/ (強(qiáng)制覆蓋)把當(dāng)前目錄下的test目錄拷貝到當(dāng)前目錄下的zwj目錄下(循環(huán)拷貝內(nèi)容到指定的目錄下)
    cp -r first/. second/ 把路徑first下面的內(nèi)容拷貝到second目錄下澜倦,如first目錄下有a.txt和b.txt兩個(gè)文件聚蝶,second目錄下為空杰妓,結(jié)果是second目錄下有a.txt和b.txt兩個(gè)文件
    8)rm 移除文件或目錄
    語(yǔ)法:rm [選項(xiàng)] 要?jiǎng)h除的文件或目錄
    rm aaa.txt 刪除當(dāng)前目錄下的aaa.txt文件(需要確認(rèn))
    \rm aaa.txt 強(qiáng)制刪除當(dāng)前目錄下的aaa.txt文件(不需要確認(rèn))
    rm -f aaa.txt 強(qiáng)制刪除當(dāng)前目錄下的aaa.txt文件(不需要確認(rèn))
    rm -r bbb 刪除當(dāng)前目錄下的bbb目錄,依次進(jìn)入目錄進(jìn)行刪除
    \rm -r bbb (強(qiáng)制刪除)刪除當(dāng)前目錄下的bbb目錄碘勉,依次進(jìn)入目錄進(jìn)行刪除
    rm -rf bbb (強(qiáng)制刪除)刪除當(dāng)前目錄下的bbb目錄巷挥,依次進(jìn)入目錄進(jìn)行刪除
    9)mv 移動(dòng)文件
    語(yǔ)法:mv 移動(dòng)文件與目錄或重命名
    mv oldNameFile newNameFile 重命名
    mv /temp/movefile /targetFolder 移動(dòng)文件
    10)cat 查看文件內(nèi)容,以只讀的方式
    語(yǔ)法:cat [選項(xiàng)] 要查看的文件
    常用選項(xiàng):
    -n :顯示行號(hào)
    cat /etc/profile 查看/etc/profile文件
    cat -n /etc/profile 查看/etc/profile文件验靡,并顯示行號(hào)
    cat -n /etc/profile | more 查看/etc/profile文件倍宾,并顯示行號(hào),分頁(yè)顯示胜嗓,回車顯示下一行凿宾,空格鍵顯示下一頁(yè)
    11)more 基于vi編輯器的文本過濾器,它以全屏幕的方式按頁(yè)顯示文本的內(nèi)容
    more 要查看的文件
    回車顯示下一行兼蕊,空格鍵顯示下一頁(yè)
    Ctrl+b 顯示上一頁(yè)
    q 退出
    12)less 分屏查看文件內(nèi)容初厚,與more指令類似,但是比more指令更加強(qiáng)大孙技,并不是一次將整個(gè)文件加載之后顯示产禾,對(duì)于顯示大型文件具有較高的效率。
    less 要查看的文件
    回車顯示下一行牵啦,空格鍵顯示下一頁(yè)
    Ctrl+b 顯示上一頁(yè)
    q 退出
    13)> 指令和 >> 指令
    > 輸出重定向亚情,會(huì)將文件原來的內(nèi)容覆蓋
    >> 追加,不會(huì)覆蓋文件原來的內(nèi)容哈雏,而是追加到文件的尾部
    基本語(yǔ)法:
    a. ls -l > 文件 列表的內(nèi)容寫入文件a.txt中(覆蓋寫)
    ls -l > a.txt 將ls -l 的顯示內(nèi)容覆蓋寫入到a.txt文件楞件,如果文件不存在,就創(chuàng)建該文件裳瘪。
    b. ls -al >> 文件 列表的內(nèi)容追加到文件aa.txt的末尾
    ls -l >> b.txt 將ls -l 的顯示內(nèi)容追加寫入到b.txt文件土浸,如果文件不存在,就創(chuàng)建該文件彭羹。
    c. cat 文件1 > 文件2 將文件1的內(nèi)容覆蓋到文件2中
    d. echo "內(nèi)容" >> 文件
    e. cal >> /home/mycal 將當(dāng)前日歷信息追加到/home/的mycal文件中
    14)cal 顯示當(dāng)前日歷
    15)echo 輸出內(nèi)容到控制臺(tái)
    echo 輸出的內(nèi)容 輸出普通文本
    echo $PATH 輸出環(huán)境變量路徑
    16)head 顯示文件的開頭部分黄伊,默認(rèn)情況下head指令顯示文件的前10行內(nèi)容
    語(yǔ)法:
    head 文件 查看文件頭10行內(nèi)容
    head -n 5 文件 查看文件前5行內(nèi)容
    head -n 5 /etc/profile 查看/etc/profile的前面5行內(nèi)容
    17)tail 用于輸出文件中尾部的內(nèi)容,默認(rèn)情況下tail指令顯示文件的后10行內(nèi)容
    語(yǔ)法:(和head類似)
    tail 文件 查看文件后10行內(nèi)容
    tail -n 5 文件 查看文件后5行內(nèi)容
    tail -f 文件 實(shí)時(shí)追蹤該文檔的所欲更新派殷,工作中經(jīng)常使用
    tail -n 5 /etc/profile 查看/etc/profile的后面5行內(nèi)容
    18)ln 創(chuàng)建源文件的軟鏈接也叫符號(hào)鏈接还最,類似于windows里的快捷方式
    ln -s 源文件或目錄 軟鏈接名
    ln -s /root/ myroot
    rm -rf myroot 刪除軟鏈接,刪除時(shí)毡惜,軟鏈接后面不能加/
    19)history 查看已經(jīng)執(zhí)行過歷史命令拓轻,也可以執(zhí)行歷史命令
    history 顯示所有執(zhí)行過的歷史指令
    history 10 顯示最近執(zhí)行的10個(gè)指令
    !178 執(zhí)行歷史指令中178的指令

  12. 時(shí)間日期類型的指令
    1)date 顯示當(dāng)前日期
    date +%Y 顯示當(dāng)前年份
    date +%m 顯示當(dāng)前月份
    date +%d 顯示當(dāng)前是哪一天
    date "+%Y-%m-%d %H:%M:%s" 顯示年月日時(shí)分秒
    date +%y 顯示年份的最后兩個(gè)數(shù),如:2018经伙,就會(huì)顯示18
    date -s 字符串時(shí)間 設(shè)置日期指令
    date -s "2018-04-12 12:20:00" 把時(shí)間設(shè)置成2018年4月12日12點(diǎn)20分
    2)cal 查看日歷指令
    cal 顯示當(dāng)前的日歷
    cal 2020 顯示2020年全年的日歷

  13. 搜索查找類指令
    1)find 將從指定目錄向下遞歸的遍歷各個(gè)子目錄扶叉,將滿足添加的文件或目錄顯示在終端
    find 搜索范圍 選項(xiàng)
    選項(xiàng):
    -name<查詢方法> 按照指定的文件名查找模式查找
    -user<用戶名> 查找屬于指定用戶名所有文件
    -size<文件大小> 按照指定的文件大小查找文件,+n大于 -n小于 n等于
    find /home -name hello.txt
    find /opt -user nobody 查找/opt目錄下,用戶名為nobody的文件
    find / -size +20M 查找整個(gè)Linux系統(tǒng)下大于20M的文件
    find /opt *.txt 查找/opt目錄下辜梳,所有.txt文件
    2)locate 快速定位文件路徑
    使用locate之前需要調(diào)用updatedb命令更新數(shù)據(jù)庫(kù)
    locate 文件名
    3)grep和管道符號(hào)| grep過濾查找粱甫,管道符“|”表示將前一個(gè)命令的處理結(jié)果輸出傳遞給后面的命令處理
    grep 選項(xiàng) 查找內(nèi)容 源文件
    選項(xiàng):
    -n 顯示匹配行及行號(hào)
    -i 忽略字母大小寫
    cat hello.txt | grep -n yes 在hello.txt文件中泳叠,區(qū)分大小寫查找"yes"所在行作瞄,并顯示行號(hào)
    cat hello.txt | grep -ni yes 在hello.txt文件中,不區(qū)分大小寫查找"yes"所在行危纫,并顯示行號(hào)
    4)

  14. 壓縮解壓類指令
    1)gzip/gunzip gzip只能用于壓縮文件宗挥,gunzip只能用于解壓文件
    gzip 文件名 壓縮文件,只能將文件壓縮為*.gz文件
    gunzip 文件.gz 解壓縮文件命令
    gzip /home/hello.txt 將/home/路徑下的hello.txt壓縮成hello.txt.gz文件种蝶,壓縮后hello.txt文件就不存在了
    gunzip /home/hello.txt.gz 將/home/路徑下的hello.txt.gz文件解壓成hello.txt文件
    2)zip/unzip zip用于壓縮文件契耿,unzip用于解壓文件,這個(gè)在項(xiàng)目打包中很有用
    zip 選項(xiàng) XXX.zip 將要壓縮的內(nèi)容 壓縮文件和目錄的命令
    選項(xiàng):
    -r 遞歸壓縮螃征,即壓縮目錄
    unzip 選項(xiàng) XXX.zip 解壓縮文件
    選項(xiàng):
    -d 目錄 指定解壓后文件的存放目錄
    zip -r mypackage.zip /home/ 將/home/路徑下的所有文件進(jìn)行壓縮成mypackage.zip文件
    unzip -d /opt/tmp/ mypackage.zip 將mypackage.zip解壓到/opt/tmp/路徑下
    3)tar 是打包指令搪桂,最后打包的文件是.tar.gz的文件
    tar 選項(xiàng) xxx.tar.gz 打包的內(nèi)容 打包目錄,壓縮后的文件格式.tar.gz
    選項(xiàng):
    -c 產(chǎn)生tar打包文件
    -v 顯示詳細(xì)信息
    -f 指定壓縮后的文件名
    -z 打包同時(shí)壓縮
    -x 解包.tar文件
    tar -zcvf a.tar.gz a1.txt a2.txt 壓縮多個(gè)文件盯滚,將/home/a1.txt 和 /home/a2.txt 壓縮成 a.tar.gz
    tar -zcvf myhome.tar.gz /home/ 將/home 的文件夾壓縮成 myhome.tar.gz
    tar -zxvf a.tar.gz 將a.tar.gz解壓到當(dāng)前目錄
    tar -zxvf myhome.tar.gz -C /opt/ 將myhome.tar.gz 解壓到 /opt/ 目錄下踢械,解壓到指定的目錄下要事先存在,不然會(huì)報(bào)錯(cuò)
    4)

  15. Linux的目錄結(jié)構(gòu):https://blog.csdn.net/m0_38044196/article/details/72844025
    ______________
    |------/bin User Binaries 用戶的二進(jìn)制文件魄藕,包含了二進(jìn)制可執(zhí)行文件
    |------/sbin System Binaries 系統(tǒng)的二進(jìn)制文件
    |------/etc Configuration Files 配置文件内列,包含所有程序所需的配置文件,也包含了用于啟動(dòng)/停止單個(gè)程序的啟動(dòng)和關(guān)閉shell腳本
    |------/dev Device Files 設(shè)備文件背率,包括終端設(shè)備话瞧、USB或連接到系統(tǒng)的任何設(shè)備
    |------/proc Process Information 進(jìn)程信息,包含系統(tǒng)進(jìn)程的相關(guān)信息
    |------/var Variable Files 變量文件寝姿,包括系統(tǒng)日志/var/log交排、包和數(shù)據(jù)庫(kù)文件、電子郵件/var/mail饵筑、打印隊(duì)列/var/spool个粱、鎖文件/var/lock、啟動(dòng)的臨時(shí)文件/var/tmp
    /-------|------/tmp Temporary Files 臨時(shí)文件翻翩,包含系統(tǒng)和用戶創(chuàng)建的臨時(shí)文件都许,當(dāng)系統(tǒng)重啟時(shí),這個(gè)目錄下的文件將被刪除
    |------/usr User Programs 用戶程序嫂冻,包含二進(jìn)制文件胶征、庫(kù)文件、文檔和二級(jí)程序的源代碼桨仿,/usr/bin中包含用戶程序的二進(jìn)制文件睛低,/usr/sbin系統(tǒng)管理員的二進(jìn)制文件
    |------/home Home Directories 所有用戶用home目錄來存儲(chǔ)他們的個(gè)人檔案
    |------/boot Boot Loader Files 包含引導(dǎo)加載程序相關(guān)的文件,內(nèi)核的initrd、vmlinux钱雷、grub文件位于/boot下
    |------/lib System Libraries 系統(tǒng)庫(kù)骂铁,包含支持位于/bin和/sbin下的二進(jìn)制文件的庫(kù)文件
    |------/opt Optional add-on Apps 可選的附加應(yīng)用程序,opt代表可選的
    |------/mnt Mount Directory 掛載目錄罩抗,臨時(shí)安裝目錄拉庵,系統(tǒng)管理員可以掛載文件系統(tǒng)
    |------/media Removable Devices 可移動(dòng)媒體設(shè)備,用于掛載可移動(dòng)設(shè)備的臨時(shí)目錄套蒂。
    |------/srv Service Data 服務(wù)數(shù)據(jù)钞支,包含服務(wù)器特定服務(wù)相關(guān)的數(shù)據(jù)
    ________________

  16. Linux組相關(guān)內(nèi)容 在Linux中的每個(gè)用戶必須屬于一個(gè)組,不能獨(dú)立于組外操刀。在Linux中每個(gè)文件有所有者烁挟、所有組、其他組的概念
    1)文件/目錄所有者 一般為文件的創(chuàng)建者骨坑,誰(shuí)創(chuàng)建了該文件撼嗓,就自然的成為該文件的所有者。
    1.1)查看文件的所有者 當(dāng)某個(gè)用戶創(chuàng)建了一個(gè)文件后欢唾,文件所在的所有人默認(rèn)為該用戶
    ls -ahl 查看文件所有者命令且警,a:all h:humen l:list
    創(chuàng)建一個(gè)組police,再創(chuàng)建一個(gè)用戶tom匈辱,將tom放進(jìn)police組振湾,然后用tom創(chuàng)建一個(gè)ok.txt文件
    a. groupadd police
    b. useradd -g police tom
    c. su - tom
    d. touch ok.txt
    e. ls -ahl
    1.2)修改文件的所有者
    chown 用戶名 文件名
    使用root創(chuàng)建一個(gè)apple.txt,然后將其所有者改為tom
    a. touch apple.txt
    b. chown tom apple.txt
    c. ls -ahl
    2)文件/目錄所在組 當(dāng)某個(gè)用戶創(chuàng)建了一個(gè)文件后亡脸,文件所在的組默認(rèn)為用戶所在的組
    2.1)查看文件/目錄所在組
    ls -ahl 查看文件所有者命令押搪,a:all h:humen l:list(同查看文件的所有者命令)
    2.2)修改文件/目錄所在組
    chgrp 組名 文件名
    使用root用戶創(chuàng)建文件orange.txt,看看當(dāng)前這個(gè)文件屬于哪個(gè)組浅碾,然后將這個(gè)文件所在組大州,修改到police組
    a. touch orange.txt
    b. ls -ahl
    c. chgrp police orange.txt
    d. ls -ahl
    3)更改用戶所在的組 在添加用戶時(shí),可以指定將該用戶添加到哪個(gè)組中垂谢,同樣的用root的管理權(quán)限可以改變某個(gè)用戶所在組厦画。
    3.1)usermod -g 組名 用戶名
    3.2)usermod -d 目錄名 用戶名 改變?cè)撚脩舻卿浀某跏寄夸?br> 創(chuàng)建一個(gè)土匪組(bandit),將tom從原來所在的police組滥朱,修改到bandit(土匪)組

  17. 權(quán)限管理
    1)權(quán)限的基本介紹
    ls -l中顯示的內(nèi)容如下:
    -rwxrw-r-- 1 root root 1213 Feb 2 09:39 abc
    0-9 10 11 12 13 14 15
    0-9位說明:
    a. 第0位確定文件類型(d(目錄), -(普通文件), c(字符設(shè)備根暑,如鍵盤、鼠標(biāo)), b(塊文件徙邻,如硬盤), l(軟鏈接))
    b. 第1-3位確定所有者(該文件的所有者)擁有該文件的權(quán)限排嫌。---->user
    c. 第4-6位確定所屬組(同用戶組)擁有該文件的權(quán)限。---->group
    e. 第7-9位確定其他用戶擁有該文件的權(quán)限缰犁。------>other
    ps: r:4 w:2 x:1 rwx:7
    rwx作用到文件:
    r:read讀權(quán)限淳地,可以讀取怖糊,查看
    w:write寫權(quán)限,可以修改颇象,但是不代表可以刪除該文件伍伤,刪除一個(gè)文件的前提是對(duì)該文件所在的目錄有寫權(quán)限,才能刪除該文件
    x:execute執(zhí)行權(quán)限遣钳,可以被執(zhí)行
    -:沒權(quán)限
    rwx作用到目錄:
    r:read讀權(quán)限扰魂,可以讀取,ls查看目錄內(nèi)容
    w:write寫權(quán)限耍贾,可以修改阅爽,目錄內(nèi)創(chuàng)建+刪除+重命名目錄
    x:execute執(zhí)行權(quán)限路幸,可以進(jìn)入該目錄
    -:沒權(quán)限
    10:如果是文件荐开,表示硬鏈接的數(shù)量,一般值為1简肴;如果是目錄晃听,代表著目錄下的子目錄個(gè)數(shù)(其中有兩個(gè)目錄是隱藏的:. 和 ..)
    11:所有者
    12:所屬組
    13:大小
    14:最后修改時(shí)間
    15:名稱
    2)權(quán)限管理 chmod 通過chmod指令,可以修改文件或者目錄權(quán)限
    2.1)+砰识、-能扒、=變更權(quán)限
    u:所有者,g:所有組辫狼,o:其他人初斑,a:所有人(u, g, o的總和)
    a. chmod u=rwx,g=rx,o=x 文件目錄名 給文件或目錄設(shè)置權(quán)限r(nóng)wxrx---x
    b. chmod o+w 文件目錄名 給文件或目錄的其他人增加執(zhí)行權(quán)限
    c. chmod a-x 文件目錄名 給所有的用戶都去掉一個(gè)執(zhí)行權(quán)限
    chmod u=rwx,g=rx,o=rx abc 給abc文件設(shè)置所有者讀寫執(zhí)行、所屬組讀執(zhí)行膨处、其他人讀執(zhí)行的權(quán)限
    chmod u-x,g+w abc 給abc文件的所有者去除執(zhí)行權(quán)限见秤,增加組寫的權(quán)限
    chmod a+r 給abc文件的所有用戶添加讀的權(quán)限
    2.2)通過數(shù)字變更權(quán)限
    r:4,w:2真椿,x:1 rwx=4+2+1=7
    chmod u=rwx,g=rx,o=x 文件名
    相當(dāng)于 chmod 751 文件名
    chmod 755 /home/abc.txt 將/home/abc.txt文件的權(quán)限修改成rwxr-xr-x鹃答,使用數(shù)字的方式實(shí)現(xiàn)
    3)修改文件所有者
    3.1)chown newowner file 改變文件的所有者
    3.2)chown newowner:newgroup file 改變文件的所有者和所有組
    -R 如果是目錄,則使其下的所有子文件或目錄遞歸生效
    chown tom /home/abc.txt 將/home/abc.txt 文件的所有者改為tom
    chown -R tom /home/kkk 將/home/kkk 目錄下所有的文檔和目錄的所有者都修改成tom
    4)修改文件所有組
    4.1)chgrp newgroup file 改變文件的所屬組
    -R 如果是目錄突硝,則使其下的所有子文件或目錄遞歸生效
    chgrp bandit abc.txt 把a(bǔ)bc.txt文件的所在組修改成bandit(土匪)組
    chgrp -R bandit kkk 把kkk目錄下所有的文檔和目錄的所在組都修改成bandit(土匪)組
    5)權(quán)限管理實(shí)踐
    police, bandit
    jack,jerry:警察
    xh,xd:土匪
    (1) 創(chuàng)建組police和bandit
    (2) 創(chuàng)建用戶jack测摔、jerry、xh解恰、xq
    (3) jack創(chuàng)建了一個(gè)文件锋八,自己可以讀寫,本組人可以讀护盈,其他人沒有任何權(quán)限
    (4) jack修改該文件挟纱,讓其他人可以讀,本組人可以讀寫
    (5) xh投靠警察黄琼,看看是否可以讀寫
    a. groupadd police
    b. groupadd bandit
    c. useradd -g police jack
    d. useradd -g police jerry
    e. useradd -g bandit xh
    f. useradd -g bandit xq
    g. jack: touch jack01.txt
    h. jack: chmod 640 jack01.txt
    i. jack: chmod g+w,o+r jack01.txt
    j. root: usermod -g police xh
    k.
    ps: 文件夾對(duì)應(yīng)成員的權(quán)限為r-x時(shí)樊销,用戶才能進(jìn)入該目錄

  18. crond 任務(wù)調(diào)度 進(jìn)行定時(shí)任務(wù)的設(shè)置
    1)概述
    任務(wù)調(diào)度:是指系統(tǒng)在某個(gè)時(shí)間執(zhí)行的特定的命令或程序整慎。
    任務(wù)調(diào)度分類:1.系統(tǒng)工作:有些重要的工作必須周而復(fù)始的執(zhí)行。如病毒掃描等
    2.個(gè)別用戶工作:個(gè)別用戶可能希望執(zhí)行某些程序围苫,比如對(duì)mysql數(shù)據(jù)庫(kù)的備份
    2)基本語(yǔ)法
    crontab [選項(xiàng)]
    常用選項(xiàng):
    -e 編輯crontab定時(shí)任務(wù)
    -l 查詢crontab任務(wù)
    -r 刪除當(dāng)前用戶所有的crontab任務(wù)
    crontab -e 編輯一個(gè)定時(shí)任務(wù)裤园,在保存退出后就開始執(zhí)行
    crontab -l 列出當(dāng)前有哪些任務(wù)調(diào)度
    crontab -r 刪除所有的任務(wù)調(diào)度
    service crond restart 重啟任務(wù)調(diào)度
    3)入門案列
    設(shè)置任務(wù)調(diào)度文件:/etc/crontab
    設(shè)置個(gè)人任務(wù)調(diào)度。執(zhí)行crontab -e命令剂府。
    接著輸入任務(wù)到調(diào)度文件
    如:/1 * * * * ls -l /etc/ > /tmp/to.txt
    意思說每小時(shí)的每分鐘執(zhí)行l(wèi)s -l /etc/ > /tmp/to.txt命令
    參數(shù)細(xì)節(jié)說明
    項(xiàng)目 含義 范圍
    第一個(gè)"
    " 一小時(shí)當(dāng)中的第幾分鐘 0-59
    第二個(gè)"" 一天當(dāng)中的第幾小時(shí) 0-23
    第三個(gè)"
    " 一個(gè)月當(dāng)中的第幾天 1-31
    第四個(gè)"" 一年當(dāng)中的第幾月 1-12
    第五個(gè)"
    " 一周當(dāng)中的星期幾 0-7
    參數(shù)特殊符號(hào)說明
    * 代表任何時(shí)間拧揽,比如第一個(gè)""就代表著一小時(shí)中每分鐘都執(zhí)行一次的意思。
    , 代表著不連續(xù)的時(shí)間腺占。比如"0 8,12,16 * * * 命令"淤袜,就代表著在每天的8點(diǎn)0分,12點(diǎn)0分衰伯,16點(diǎn)0分都執(zhí)行一次命令
    - 代表連續(xù)的時(shí)間范圍铡羡。比如"0 5 * * 1-6 命令",代表著周一到周六凌晨5點(diǎn)0分執(zhí)行命令
    /n 代表著每隔多久執(zhí)行一次意鲸。比如"/10 * * * * 命令"烦周,代表每隔10分鐘就執(zhí)行一次命令
    步驟:
    a. crontab -e
    b. 輸入:
    /1 * * * * ls -l /etc/ >> /tmp/to.txt
    c. 保存退出后就生效
    d. 在每一分鐘都會(huì)自動(dòng)的調(diào)用 ls -l /etc/ >> /tmp/to.txt 命令
    特定時(shí)間執(zhí)行案列
    45 22 * * * 命令 在每天22點(diǎn)45分執(zhí)行命令
    0 17 * * 1 命令 在每周一的17點(diǎn)0分執(zhí)行命令
    0 5 1,15 * * 命令 在每月的1號(hào)15號(hào)的5點(diǎn)0分執(zhí)行命令
    40 4 * * 1-5 命令 在每周一到周五的4點(diǎn)40分執(zhí)行命令
    */10 4 * * * 命令 在每天的4點(diǎn)每隔10分鐘執(zhí)行一次命令
    0 0 1,15 * 1 命令 在每月1號(hào)和15號(hào),每周1的0點(diǎn)0分都會(huì)執(zhí)行一次命令
    4)應(yīng)用實(shí)例
    案例1:每隔1分鐘怎顾,就將當(dāng)前的日期信息读慎,追加到/tmp/mydate 文件中
    a. 先編寫一個(gè)文件 /home/mytask1.sh
    date >> /tmp/mydate
    b. 給mytask1.sh 一個(gè)可執(zhí)行權(quán)限
    chmod 744 mytask1.sh
    c. crontab -e
    d. */1 * * * * /home/mytask1.sh
    e. 成功
    案例2:每隔1分鐘,將當(dāng)前日期和日歷都追加到/home/mycal 文件中
    a. 先編寫一個(gè)文件 /home/mytask2.sh
    date >> /tmp/mycal
    cal >> /tmp/mycal
    b. 給mytask1.sh 一個(gè)可執(zhí)行權(quán)限
    chmod 744 mytasks.sh
    c. crontab -e
    d. */1 * * * * /home/mytask2.sh
    e. 成功
    案例3:每天凌晨2:00將mysql數(shù)據(jù)庫(kù)testdb槐雾,備份到文件中 mydb.bak夭委。
    a. 先編寫一個(gè)文件 /home/mytask3.sh
    /usr/local/mysql/bin/mysqldump -uroot -proot testdb > /tmp/mydb.bak
    b. 給mytask1.sh 一個(gè)可執(zhí)行權(quán)限
    chmod 744 mytask3.sh
    c. crontab -e
    d. 0 2 * * * /home/mytask3.sh
    e. 成功

  19. Linux磁盤分區(qū)、掛載
    1)分區(qū)基礎(chǔ)知識(shí)
    分區(qū)的方式:
    1.1)mbr分區(qū):
    1. 最多支持四個(gè)主分區(qū)
    2. 系統(tǒng)只能安裝在主分區(qū)
    3. 擴(kuò)展分區(qū)要占一個(gè)主分區(qū)
    4. MBR最大只支持2TB募强,但擁有最好的兼容性
    1.2)gtp分區(qū):
    1. 支持無限多個(gè)主分區(qū)(但操作系統(tǒng)可能限制株灸,比如window下最多128個(gè)分區(qū))
    2. 最大支持18EB的大容量(1EB=1024PB,1PB=1024TB)
    3. window7 64位以后支持gtp
    2)Linux分區(qū)
    原理介紹:
    2.1)Linux來說無論有幾個(gè)分區(qū)钻注,分給哪一目錄使用蚂且,它歸根結(jié)底就只有一個(gè)根目錄,一個(gè)獨(dú)立且唯一的文件結(jié)構(gòu)幅恋,Linux中每個(gè)分區(qū)都是用來組成整個(gè)文件系統(tǒng)的一部分杏死。
    2.2)Linux采用了一種叫“載入”的處理方法,它的整個(gè)文件系統(tǒng)中包含了一整套的文件和目錄捆交,且將一個(gè)分區(qū)和一個(gè)目錄聯(lián)系起來淑翼。這時(shí)要載入的一個(gè)分區(qū)將使它的存儲(chǔ)空間在一個(gè)目錄下獲得。
    lsblk -f 查看系統(tǒng)的分區(qū)和掛載的情況
    lsblk 可以查看分區(qū)的大小
    ps:記憶命令的方法:老師不離開 lsblk
    3) 掛載的經(jīng)典案例
    需求是給我們的Linux系統(tǒng)增加一個(gè)新的硬盤品追,并且掛載到/home/newdisk
    3.1)如何增加一塊硬盤
    a. 虛擬機(jī)添加硬盤 通過虛擬機(jī)操作添加玄括,然后重啟centos系統(tǒng)
    在[虛擬機(jī)]菜單中,選擇[設(shè)置]肉瓦,然后在設(shè)備列表中添加硬盤遭京,然后一路[下一步]胃惜,中間只有選擇磁盤大小的地方需要修改,直到完成哪雕,然后重啟系統(tǒng)(才能識(shí)別)船殉!
    b. 分區(qū) fdisk /dev/sdb
    開始分區(qū)后輸入n,然后選擇p斯嚎,分區(qū)類型為主分區(qū)利虫。兩次回車默認(rèn)剩余全部空間。最后輸入w寫入分區(qū)并退出堡僻,若不保存退出輸入q糠惫。
    c. 格式化 mkfs -t ext4 /dev/sdb1
    d. 掛載 先創(chuàng)建一個(gè)目錄/home/newdisk,掛載mount /dev/sdb1 /home/newdisk
    e. 設(shè)置可以自動(dòng)掛載(永久掛載钉疫,當(dāng)你重啟系統(tǒng)硼讽,仍然可以掛載到/home/newdisk)
    1. vim /etc/fstab
    2. 添加一個(gè)掛載記錄,如:/dev/sdb1 /home/newdisk ext4 default 0 0
    3. mount -a
    ps: 卸載磁盤的命令 umount /home/newdisk
    4)磁盤情況查詢
    4.1)查詢系統(tǒng)整體磁盤使用情況
    df -h
    4.2)查詢指定目錄的磁盤占用情況
    du 選項(xiàng) /目錄
    選項(xiàng):
    -s 指定目錄占用大小匯總
    -h 帶計(jì)量單位
    -a 含文件
    --max-depth=1 子目錄深度
    -c 列出明細(xì)的同時(shí)陌选,增加匯總值
    案例:查詢/opt/目錄的磁盤占用情況理郑,深度為1
    du -ach --max-depth=1 /opt/
    4.3)磁盤情況-工作實(shí)用指令
    1)統(tǒng)計(jì)/home文件夾下文件的個(gè)數(shù)
    ls -l /home | grep "^-" | wc -l
    2)統(tǒng)計(jì)/home文件夾下目錄的個(gè)數(shù)
    ls -l /home | grep "^d" | wc -l
    3)統(tǒng)計(jì)/home文件夾下文件的個(gè)數(shù)蹄溉,包括子文件夾里的文件
    ls -lR /home | grep "^-" | wc -l
    4)統(tǒng)計(jì)文件夾下目錄的個(gè)數(shù)咨油,包括子文件夾里的
    ls -lR /home | grep "^d" | wc -l
    5)以樹狀顯示目錄結(jié)構(gòu)
    tree 顯示根目錄下的文件及目錄樹形結(jié)構(gòu)
    tree 目錄 顯示指定目錄下的文件及目樹形錄結(jié)構(gòu)

  20. Linux網(wǎng)絡(luò)配置
    1)Linux網(wǎng)絡(luò)配置原理圖(含虛擬機(jī))
    目前我們的網(wǎng)絡(luò)配置采用的是NAT模式。
    2)查看網(wǎng)絡(luò)IP和網(wǎng)關(guān)
    3)ping 測(cè)試主機(jī)之間網(wǎng)絡(luò)連通
    4)Linux網(wǎng)絡(luò)環(huán)境配置
    4.1)自動(dòng)獲取
    缺點(diǎn):Linux啟動(dòng)后悔自動(dòng)獲取IP柒爵,缺點(diǎn)是每次自動(dòng)獲取的ip可能不一樣役电,這個(gè)不適用于做服務(wù)器,因?yàn)槲覀兊姆?wù)器的ip需要是固定的棉胀。
    4.2)指定固定的ip
    直接修改配置文件來指定IP法瑟,并可以連接到外網(wǎng)(程序員推薦),編輯vi /etc/sysconfig/network-scripts/ifcfg-eth0
    要求:將ip地址配置成靜態(tài)的唁奢,ip地址為192.168.184.130
    ps:修改后需要重啟一下服務(wù)霎挟,有兩種方式:
    1. 重啟系統(tǒng)
    2. 重啟網(wǎng)絡(luò)服務(wù) :service network restart

  21. 進(jìn)程管理
    1)基本介紹
    1.1)在Linux中,每個(gè)執(zhí)行的程序(代碼)都稱為一個(gè)進(jìn)程麻掸。每一個(gè)進(jìn)程都分配一個(gè)ID號(hào)酥夭。
    1.2)每一個(gè)進(jìn)程,都會(huì)對(duì)應(yīng)一個(gè)父進(jìn)程脊奋,而這個(gè)父進(jìn)程可以復(fù)制多個(gè)子進(jìn)程熬北。例如www服務(wù)器
    1.3)每個(gè)進(jìn)程都可能以兩種方式存在的。前臺(tái)與后臺(tái)诚隙,所謂前臺(tái)進(jìn)程就是用戶目前的屏幕上可以進(jìn)行操作的讶隐。后臺(tái)進(jìn)程則是實(shí)際在操作,但由于屏幕上無法看到的進(jìn)程久又,通常使用后臺(tái)方式執(zhí)行巫延。
    1.4)一般系統(tǒng)的服務(wù)都是以后臺(tái)進(jìn)程的方式存在效五,而且都會(huì)常駐在系統(tǒng)中,知道關(guān)機(jī)才結(jié)束炉峰。
    2)顯示系統(tǒng)執(zhí)行的進(jìn)程
    基本介紹:
    ps命令用來查看目前系統(tǒng)中火俄,有哪些正在執(zhí)行,以及它們執(zhí)行的情況讲冠」峡停可以不加任何參數(shù)。
    ps顯示的信息選項(xiàng):
    PID 進(jìn)程識(shí)別號(hào)
    TTY 終端機(jī)號(hào)
    TIME 此進(jìn)程所消耗cpu時(shí)間
    CMD 正在執(zhí)行的命令或進(jìn)程名
    ps -a 顯示當(dāng)前終端的所有進(jìn)程信息
    ps -u 以用戶的格式顯示進(jìn)程信息
    ps -x 顯示后臺(tái)進(jìn)程運(yùn)行的參數(shù)
    說明:查看進(jìn)程使用的指令是 ps竿开,一般來說使用的參數(shù)是 ps -aux

    ps詳解:
    a. 指令:ps -aux | grep xxx
    USER    PID    %CPU    %MEM    VSZ    RSZ    TTY    STAT    START    TIME    COMMAND
    System V展示風(fēng)格
    USER:用戶名陳
    PID:進(jìn)程號(hào)
    %CPU:進(jìn)程占用CPU的百分比
    %MEM:進(jìn)程占用物理內(nèi)存的百分比
    VSZ:進(jìn)程占用的虛擬內(nèi)存大小(單位:KB)
    RSS:進(jìn)程占用的物理內(nèi)存大小(單位:KB)
    TTY:終端名稱谱仪,縮寫
    STAT:進(jìn)程的狀態(tài) S:休眠 s:是會(huì)話的先導(dǎo)進(jìn)程 N:擁有比普通優(yōu)先級(jí)更低的優(yōu)先級(jí) R:正在運(yùn)行 D:短期等待 Z:僵尸進(jìn)程 T:被跟蹤或被停止
    START:進(jìn)程的啟動(dòng)時(shí)間
    TIME:進(jìn)程使用cpu的總時(shí)間
    COMMAND:?jiǎn)?dòng)進(jìn)程所用的命令和參數(shù),如果過長(zhǎng)會(huì)被截?cái)囡@示
    

    3)應(yīng)用實(shí)例
    要求:以全格式顯示當(dāng)前所有的進(jìn)程否彩,查看進(jìn)程的父進(jìn)程
    ps -ef 是以全格式顯示當(dāng)前所有的進(jìn)程
    -e 顯示所有進(jìn)程 -f 全格式
    ps -ef | grep xxx
    是BSD風(fēng)格
    UID:用戶ID
    PID:進(jìn)程ID
    PPID:父進(jìn)程ID
    C:CPU用于計(jì)算機(jī)執(zhí)行優(yōu)先級(jí)的因子疯攒。數(shù)值越大,表明進(jìn)程是CPU密集型運(yùn)算列荔,執(zhí)行優(yōu)先級(jí)會(huì)越低敬尺;數(shù)值越小,表明進(jìn)程是I/O密集型運(yùn)算贴浙,執(zhí)行優(yōu)先級(jí)會(huì)提高
    STIME:進(jìn)程啟動(dòng)的時(shí)間
    TTY:完整的終端名稱
    TIME:CPU時(shí)間
    CMD:?jiǎn)?dòng)進(jìn)程所用的命令和參數(shù)
    思考:如果我們希望查看sshd進(jìn)程的父進(jìn)程號(hào)是多少砂吞,應(yīng)該怎樣查詢?
    ps -ef | grep sshd
    4)終止進(jìn)程kill和killall
    4.1)介紹
    若是某個(gè)進(jìn)程執(zhí)行一般需要停止時(shí)崎溃,或是已消耗了很大的系統(tǒng)資源時(shí)蜻直,此時(shí)可以考慮停止該進(jìn)程,使用kill命令來完成此項(xiàng)任務(wù)袁串。
    4.2)基本語(yǔ)法
    kill 選項(xiàng) 進(jìn)程號(hào) 通過進(jìn)程號(hào)殺死進(jìn)程
    killall 進(jìn)程名稱 通過進(jìn)程名稱殺死進(jìn)程概而,也支持通配符,這在系統(tǒng)因負(fù)載過大而變得很慢時(shí)很有用
    4.3)常用選項(xiàng)
    -9 表示強(qiáng)迫進(jìn)程立即停止
    4.4)最佳實(shí)踐
    案例1:踢掉某個(gè)非法登錄用戶
    a. ps -aux | grep sshd 找到對(duì)應(yīng)的進(jìn)程id
    b. kill 4010 kill掉進(jìn)程id對(duì)應(yīng)的進(jìn)程
    案例2:終止遠(yuǎn)程登錄服務(wù)sshd囱修,在適當(dāng)時(shí)候再次重啟sshd服務(wù)
    a. ps -aux | grep sshd 找到對(duì)應(yīng)的進(jìn)程id
    b. kill 3908 kill掉進(jìn)程id對(duì)應(yīng)的進(jìn)程
    案例3:終止多個(gè)gedit編輯器[killall赎瑰,通過進(jìn)程名陳來終止進(jìn)程]
    a. killall gedit
    案例4:強(qiáng)制殺掉一個(gè)終端
    a. ps -aux | grep bash 查到終端對(duì)應(yīng)的進(jìn)程ID
    b. kill -9 4090 強(qiáng)制kill掉進(jìn)程id對(duì)應(yīng)的進(jìn)程
    4.5)查看進(jìn)程樹pstree
    基本語(yǔ)法:
    pstree 選項(xiàng) 可以更加直觀的來看進(jìn)程信息
    選項(xiàng):
    -p :顯示進(jìn)程的PID
    -u :顯示進(jìn)程的所屬用戶
    應(yīng)用場(chǎng)景:
    案例1:請(qǐng)你樹狀的形式顯示進(jìn)程的pid
    pstree -p
    案例2:請(qǐng)你樹狀的形式顯示用戶的id
    pstree -u
    PS:安裝pstree的指令是:yum install psmisc
    5)服務(wù)(service)管理
    5.1)介紹
    服務(wù)(service)本質(zhì)就是進(jìn)程,但是是運(yùn)行在后臺(tái)的破镰,通常都會(huì)監(jiān)聽某個(gè)端口餐曼,等待其他程序的請(qǐng)求,比如(mysql,sshd,防火墻等)啤咽,因此我們又稱為守護(hù)進(jìn)程晋辆,是Linux中非常重要的知識(shí)點(diǎn)。
    5.2)service管理指令
    service 服務(wù)名 start | stop | restart | reload | status
    在centos7.0后不再使用service宇整,而是用systemctl
    5.3)使用案例
    1)查看當(dāng)前防火墻的狀況瓶佳,關(guān)閉防火墻和重啟防火墻。
    5.4)細(xì)節(jié)討論
    1)關(guān)閉或者啟用防火墻后鳞青,立即生效霸饲。[telnet 測(cè)試某個(gè)端口即可]
    2)這種方式知識(shí)臨時(shí)生效为朋,當(dāng)重啟系統(tǒng)后,還是回歸以前對(duì)服務(wù)器的設(shè)置厚脉。
    3)如果希望設(shè)置某個(gè)服務(wù)自啟動(dòng)或關(guān)閉永久生效习寸,要使用chkconfig指令
    5.5)查看服務(wù)名:
    方式1:使用setup->系統(tǒng)服務(wù) 就可以看到
    方式2:/etc/init.d/服務(wù)名稱
    ls -l /etc/init.d/ 列出系統(tǒng)有哪些服務(wù)
    5.6)服務(wù)的運(yùn)行級(jí)別(runlevel):
    1)查看或者修改默認(rèn)級(jí)別:vi /etc/inittab
    2)Linux系統(tǒng)有7種運(yùn)行級(jí)別(runlevel):常用的級(jí)別是3和5
    運(yùn)行級(jí)別0:系統(tǒng)停機(jī)狀態(tài),系統(tǒng)默認(rèn)運(yùn)行級(jí)別不能設(shè)為0傻工,否則不能正常啟動(dòng)
    運(yùn)行級(jí)別1:?jiǎn)斡脩艄ぷ鳡顟B(tài)霞溪,root權(quán)限,用于系統(tǒng)維護(hù)中捆,禁止遠(yuǎn)程登陸
    運(yùn)行級(jí)別2:多用戶狀態(tài)(沒有NFS)鸯匹,不支持網(wǎng)絡(luò)
    運(yùn)行級(jí)別3:完全的多用戶狀態(tài)(有NFS),登陸后進(jìn)入控制臺(tái)命令行模式
    運(yùn)行級(jí)別4:系統(tǒng)未使用泄伪,保留
    運(yùn)行級(jí)別5:X11控制臺(tái)殴蓬,登陸后進(jìn)入圖形GUI模式
    運(yùn)行級(jí)別6:系統(tǒng)正常關(guān)閉并重啟,默認(rèn)運(yùn)行級(jí)別不能設(shè)為6蟋滴,否則不能正常啟動(dòng)
    3)開機(jī)的流程說明:
    開機(jī)->BIOS->/boot->init進(jìn)程->運(yùn)行級(jí)別->運(yùn)行級(jí)別對(duì)應(yīng)的服務(wù)
    4)chkconfig指令
    介紹:
    通過chkconfig命令可以給各個(gè)運(yùn)行級(jí)別設(shè)置自啟動(dòng)/關(guān)閉
    基本語(yǔ)法
    a. 查看服務(wù) chkconfig --list | grep xxx
    b. chkconfig 服務(wù)名 --list
    c. chkconfig --level 5 服務(wù)名 on/off
    PS: 在Centos7.0 開始染厅,換成了systemctl命令,具體操作請(qǐng)找度娘
    如:chkconfig --list -> systemctl list-unit-files
    chkconfig --level 5 sshd off -> systemctl disable sshd.service
    chkconfig --level 5 sshd on -> systemctl enable sshd.service
    chkconfig --list | grep sshd -> systemctl list-dependencies sshd
    應(yīng)用實(shí)例:
    案例1:請(qǐng)顯示當(dāng)前系統(tǒng)所有服務(wù)的各個(gè)運(yùn)行級(jí)別的運(yùn)行狀態(tài)
    chkconfig --list
    案例2:請(qǐng)查看sshd服務(wù)的運(yùn)行狀態(tài)
    service sshd status
    案例3:將sshd服務(wù)在運(yùn)行級(jí)別5下設(shè)置為不自動(dòng)啟動(dòng)津函,看看有什么效果肖粮?
    chkconfig --level 5 sshd off
    案例4:當(dāng)運(yùn)行級(jí)別為5時(shí),關(guān)閉防火墻
    chkconfig --level 5 iptables off
    案例5:在所有運(yùn)行級(jí)別下球散,關(guān)閉防火墻
    chkconfig iptables off
    案例6:在所欲運(yùn)行級(jí)別下尿赚,開啟防火墻
    chkconfig iptables on
    使用細(xì)節(jié):
    a. chkconfig重新設(shè)置服務(wù)后自啟動(dòng)或關(guān)閉,需要重啟機(jī)器reboot才能生效
    6)動(dòng)態(tài)監(jiān)控進(jìn)程
    6.1)介紹
    top與ps命令很相似蕉堰,他們都用來顯示正在執(zhí)行的進(jìn)程。top與ps最大的不同之處悲龟,在于top在執(zhí)行一段時(shí)間可以更新正在運(yùn)行的進(jìn)程屋讶。
    6.2)基本語(yǔ)法
    top 選項(xiàng)
    6.3)選項(xiàng)說明
    -d 秒數(shù) 指定top命令每隔幾秒更新。默認(rèn)是3秒须教,在top命令的交互模式當(dāng)中可以執(zhí)行的命令皿渗。
    -i 使top不顯示任何閑置或者僵尸進(jìn)程
    -p 通過指定監(jiān)控進(jìn)程ID來僅僅監(jiān)控某個(gè)進(jìn)程的狀態(tài)
    6.4)交互操作說明
    P 以cpu使用頻率排序,默認(rèn)就是此項(xiàng)
    M 以內(nèi)存的使用頻率排序
    N 以PID排序
    q 退出top
    6.5)應(yīng)用案例
    案例1:監(jiān)視特定用戶
    top: 輸入此命令轻腺,按回車鍵乐疆,查看執(zhí)行的進(jìn)程
    u: 然后輸入"u"回車,再輸入用戶名贬养,即可
    案例2:終止指定的進(jìn)程
    top: 輸入此命令挤土,按回車鍵,查看執(zhí)行的進(jìn)程
    k: 然后輸入"k"回車误算,再輸入要結(jié)束
    案例3:指定系統(tǒng)狀態(tài)更新的時(shí)間(每隔10秒自動(dòng)更新)
    top -d 10
    6.6)top顯示的內(nèi)容解釋
    top 20:51:22 up 3:22, 3USERS, load average: 0.35, 0.24, 0.30
    (當(dāng)前時(shí)間仰美,系統(tǒng)運(yùn)行時(shí)間迷殿,當(dāng)前登錄系統(tǒng)用戶數(shù)量,負(fù)載均衡(三個(gè)數(shù)加在一起除以3超過0.7時(shí)咖杂,說明系統(tǒng)有點(diǎn)不穩(wěn)定了))
    Tasks: 204 total, 1 running, 203 sleeping, 0 stopped, 0 zombine
    (總?cè)蝿?wù)數(shù)量庆寺,正在運(yùn)行的任務(wù)數(shù)量,掛載的任務(wù)數(shù)量诉字,停止懦尝,僵尸)
    Cpu(s): 0.8%us, 0.5%sy, 0.0%ni, 98.7%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
    (用戶占用的cpu,系統(tǒng)占用的cpu壤圃,导披,空閑的,)
    Mem: 2038376K total, 783520k used, 1254856k free, 29636k buffers
    (內(nèi)存的總大小埃唯,使用了多少撩匕,還有多少空閑,)
    Swap: 2097148k total, 0k used, 2097148k free, 389404k cached
    (內(nèi)存不夠用了才會(huì)用swap分區(qū))
    7)監(jiān)控網(wǎng)絡(luò)狀態(tài)
    查看系統(tǒng)網(wǎng)絡(luò)情況netstat
    7.1)基本語(yǔ)法
    netstat 選項(xiàng)
    netstat -anp | more 常用指令墨叛,查看所有網(wǎng)絡(luò)服務(wù)
    7.2)選項(xiàng)說明
    -an 按一定順序排列輸出
    -p 顯示哪個(gè)進(jìn)程在調(diào)用
    7.3)應(yīng)用實(shí)例
    請(qǐng)查看服務(wù)名為sshd的服務(wù)的信息
    7.4)檢測(cè)主機(jī)連接命令ping:
    是一種網(wǎng)絡(luò)檢測(cè)工具止毕,它主要是用檢測(cè)遠(yuǎn)程主機(jī)是否正常,或是兩部主機(jī)間的介質(zhì)是否為斷漠趁、網(wǎng)線是否脫落或網(wǎng)卡故障
    如:ping對(duì)方ip地址
    7.5)

  22. RPM和YUM
    1)rpm包的管理
    1.1)介紹
    一種用于互聯(lián)網(wǎng)下載包的打包及安裝工具扁凛,它包含在某些Linux發(fā)布版本中。它生成具有.RPM擴(kuò)展名的文件闯传。
    RPM是RedHat Package Manager(RedHat軟件包管理工具)的縮寫谨朝,類似windows的setup.exe,這一文件格式名稱雖然打上了RedHat的標(biāo)志甥绿,但理念是通用的字币。
    1.2)rpm包的簡(jiǎn)單查詢指令:
    查詢已安裝的rpm列表 rpm -qa | grep xxx
    1.3)rpm包名基本格式
    一個(gè)rpm保命:firefox-45.0.1-1.el6.centos.x86_64.rpm
    名稱:firefox
    版本號(hào):45.0.1-1
    適用操作系統(tǒng):el6.centos.x86_64 表示centos6.x的64位系統(tǒng)
    如果是i686、i386表示32位系統(tǒng)共缕,noarch表示通用
    1.4)rpm包的其它查詢指令:
    rpm -qa 查詢所安裝的所有rpm軟件包
    rpm -qa | more 分頁(yè)顯示
    rpm -qa | grep XX 如:rpm -qa | grep firefox

        rpm -q 軟件包名        查詢軟件包信息
        rpm -q firefox
        
        rpm -qi 軟件包名    查詢安裝的rpm包軟件的信息
        rpm -qi file
        
        rpm -ql 軟件包名    查詢r(jià)pm包的文件安裝到哪里去了
        rpm -ql firefox
        
        rpm -qf 文件全路徑名    查詢某個(gè)文件屬于哪個(gè)rpm包
        rpm -qf /etc/passwd
        rpm -qf /root/install.log
    1.5)卸載rpm包
        基本語(yǔ)法:
            rpm -e RPM包的名稱
        應(yīng)用案例
            1)刪除firefox軟件包
        細(xì)節(jié)討論
            1)如果其他軟件包依賴于你要卸載的軟件包洗出,卸載時(shí)則會(huì)產(chǎn)生錯(cuò)誤信息。
                如:rpm -e foo
                removing these packages would break dependencies:foo is needed by bar-1.0-1
            2)如果我們就是要?jiǎng)h除foo這個(gè)rpm包图谷,可以增加參數(shù)--nodeps翩活,就可以強(qiáng)制刪除,但是一般不推薦這樣做便贵,因?yàn)橐蕾囉谠撥浖某绦蚩赡軣o法運(yùn)行
                如:rpm -e --nodeps foo
    1.6)安裝rpm包
        基本語(yǔ)法:
            rpm -ivh RPM包全路徑名稱
        參數(shù)說明:
            i=install 安裝
            v=verbose 提示
            h=hash      進(jìn)度條
        應(yīng)用實(shí)例:
            1)演示卸載和安裝firefox瀏覽器
                a. 先找到firefox的安裝rpm包菠镇,需要掛載上我們安裝centos的iso文件朦促,然后到/media/下去找rpm包潘悼。
                b. cp firefox-45.0.1-1.el6.centos.x86_64.rpm /opt/
                c. rpm -ivh firefox-45.0.1-1.el6.centos.x86_64.rpm
    

    2)yum
    介紹:
    YUM是一個(gè)Shell前端軟件包管理器框往〖睦牵基于RPM包管理离熏,能夠從指定的服務(wù)器自動(dòng)下載RPM包并且安裝琼讽,可以自動(dòng)處理依賴性關(guān)系糠聪,并且一次安裝所有依賴的軟件包郊艘。
    yum的基本指令:
    查詢yum服務(wù)器是否有需要安裝的軟件
    yum list | grep XX 軟件列表
    安裝指定的yum包
    yum install XXX 下載安裝
    yum應(yīng)用實(shí)例:
    案例:請(qǐng)使用yum的方式來安裝firefox
    a. 先查看一下firefox rpm 在yum 服務(wù)器上是否存在
    yum list | grep firefox
    b. 安裝
    yum install firefox 會(huì)安裝最新版本

  23. Linux之JavaEE定制篇
    1)概述
    如果在Linux下進(jìn)行JavaEE的開發(fā),我們需要安裝如下軟件:
    mysql-5.6.14.tar.gz
    jdk-7u79-linux-x64.gz
    eclipse-jee-mars-2-linux-gtk-x86_64.tar.gz
    apache-tomcat-7.0.70.tar.gz
    2)安裝JDK
    安裝步驟
    a. 先將軟件通過xftp5上傳到/opt/路徑下
    b. 解壓縮到/opt/路徑下
    c. 配置環(huán)境變量的配置文件vim /etc/profile
    d. JAVA_HOME=/opt/jdk1.7.0_79
    e. PATH=/opt/jdk1.7.0_79/bin:PATH f. export JAVA_HOME PATH g. 需要注銷用戶出嘹,環(huán)境變量才能生效 測(cè)試是否安裝成功 編寫一個(gè)簡(jiǎn)單的hello.java 輸出"hello, world!" 3)安裝tomcat 安裝步驟 a. 解壓縮到/opt/路徑下 tar -zxvf apach-tomcat-7.0.70.tar.gz b. 啟動(dòng)tomcat ./startup.sh 先進(jìn)入tomcat的bin目錄:cd apach-tomcat-7.0.70/bin/ c. 開放端口席楚,這樣外網(wǎng)才能訪問tomcat vim /etc/sysconfig/iptables 增加一行:A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT 重啟防火墻:service iptables restart 測(cè)試是否安裝成功 在windows或linux下訪問http://linuxip:8080 4)Eclipse安裝 安裝步驟 a. 解壓縮到/opt/路徑下 tar -zxvf eclipse-jee-mars-2-linux-gtk-x86_64.tar.gz b. 啟動(dòng)eclipse,配置jre和server c. 編寫hello world程序并測(cè)試 d. 編寫jsp頁(yè)面税稼,并測(cè)試 5)mysql5.6的安裝和配置烦秩,安裝包地址:https://pan.baidu.com/s/1powjyUaS_Sh__ydReComRw CentOS 6.8 下編譯安裝MySQL5.6.14 概述: 通過源代碼安裝高版本的5.6.14 正文: 一:卸載舊版本 使用下面的命令檢查是否安裝有MySQL Server rpm -qa | grep mysql 有的話通過下面的命令來卸載掉 目前我們查詢到的是這樣子的: [root@hsp ~]#rpm -qa | grep mysql mysql-libs-5.1.73-7.el6.x86_64 如果查詢到了,就刪除吧 rpm -e mysql_libs // 普通刪除模式 rpm -e --nodeps mysql_libs // 強(qiáng)力刪除模式郎仆,如果使用上面命令刪除時(shí)只祠,提示有依賴的其他文件,則用該命令可以對(duì)其進(jìn)行強(qiáng)力刪除 二:安裝MySQL 安裝編譯代碼需要的包 yum -y install make gcc-c++ cmake bison-devel ncurses-devel 下載MySQL 5.6.14 [這里我們已經(jīng)下載好了扰肌,看軟件文件夾]抛寝,MySQL 5.6.14的路徑: 進(jìn)入mysql壓縮包所在的路徑:cd /opt/ tar -zxvf mysql-5.6.14.tar.gz cd mysql-5.6.14 編譯安裝[源碼-》編譯] cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DSYSCONFDIR=/etc -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock -DMYSQL_TCP_PORT=3306 -DENABLED_LOCAL_INFILE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci 編譯并安裝 make && make install 整個(gè)過程需要30分鐘左右。 三:配置MYSQL 設(shè)置權(quán)限 使用下面的命令查看是否有mysql用戶及用戶組 cat /etc/passwd 查看用戶列表 cat /etc/group 查看用戶組列表 如果沒有就創(chuàng)建 groupadd mysql useradd -g mysql mysql 修改/usr/local/mysql權(quán)限 chown -R mysql:mysql /usr/local/mysql 初始化配置曙旭,進(jìn)入安裝路徑(再執(zhí)行下面的指令)盗舰,執(zhí)行初始化配置腳本,創(chuàng)建系統(tǒng)自帶的數(shù)據(jù)庫(kù)和表 cd /usr/local/mysql scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql 注:在啟動(dòng)MySQL服務(wù)時(shí)桂躏,會(huì)按照一定次序搜索my.cnf钻趋,先在/etc/目錄下查找,找不到則會(huì)搜索"basedir/my.cnf"剂习,在本例中就是/usr/local/mysql/my.cnf蛮位,這是新版MySQL的配置文件的默認(rèn)位置!

    注意:在CentOS 6.8 版操作系統(tǒng)的最小安裝完成后鳞绕,在/etc/目錄下會(huì)存在一個(gè)my.cnf失仁,需要將此文件更名為其他的名字,如:/etc/my.cnf.bak猾昆,否則陶因,該文件會(huì)干擾源碼安裝的MySQL的正確配置,造成無法啟動(dòng)垂蜗。
    mv /etc/my.cnf /etc/my.cnf.bak
    
    啟動(dòng) MySQL
    添加服務(wù),拷貝服務(wù)腳本到init.d目錄解幽,并設(shè)置開機(jī)啟動(dòng)
    [注意在/usr/local/mysql下執(zhí)行]
    cp support-files/mysql.server /etc/init.d/mysql
    chkconfig mysql on
    service mysql start            啟動(dòng)MySQL
    
    執(zhí)行下面的命令修改root密碼
    cd /usr/local/mysql/bin
    ./mysql -uroot
    mysql>SET PASSWORD = PASSWORD('root');
    通過vim /etc/profile贴见,添加環(huán)境變量
    
    PS:CentOS 7 MySQL安裝,親測(cè)可用:https://www.cnblogs.com/chxuyuan/p/7707392.html
    

    6)

  24. Linux之大數(shù)據(jù)定制篇
    大數(shù)據(jù)定制篇-Shell編程
    1)為什么要學(xué)習(xí)Shell編程
    1.1)Linux運(yùn)維工程師在進(jìn)行服務(wù)器集群管理時(shí)躲株,需要編寫Shell程序來進(jìn)行服務(wù)器管理片部。
    1.2)對(duì)于JavaEE和Python程序員來說,工作的需要霜定,你的老大會(huì)要求你編寫一些Shell腳本進(jìn)行程序或是服務(wù)器的維護(hù)档悠,比如編寫一個(gè)定時(shí)備份數(shù)據(jù)庫(kù)的腳本廊鸥。
    1.3)對(duì)于大數(shù)據(jù)程序員來說,需要編寫Shell程序來管理集群辖所。
    2)Shell是什么
    Shell是一個(gè)命令行解釋器惰说,它為用戶提供了一個(gè)向Linux內(nèi)核發(fā)送請(qǐng)求以便運(yùn)行程序的界面系統(tǒng)級(jí)程序,用戶可以用Shell來啟動(dòng)缘回、掛起吆视、停止甚至是編寫一些程序。
    3)Shell編程快速入門---Shell腳本的執(zhí)行方式
    a. 腳本格式要求
    1)腳本以#!/bin/bash開頭
    2)腳本需要有可執(zhí)行權(quán)限
    b. 編寫第一個(gè)Shell腳本
    需求說明
    創(chuàng)建一個(gè)Shell腳本酥宴,輸出hello world
    1. 編寫一個(gè)shell文件:vim myShell.sh
    2. 輸入內(nèi)容
    #!/bin/bash
    echo "hello,world"
    保存并退出
    3. 更改權(quán)限啦吧,使之有可執(zhí)行的權(quán)限
    chmod 744 myShell.sh
    4. 執(zhí)行可執(zhí)行文件,即myShell.sh文件
    ./myShell.sh
    c. 腳本的常用執(zhí)行方式
    方式1(輸出腳本的絕對(duì)路徑或相對(duì)路徑)
    1)首先要賦予helloworld.sh 腳本的+x權(quán)限(可執(zhí)行)
    chmod u+x helloworld.sh
    2)執(zhí)行腳本
    ./helloworld.sh
    方式2(sh+腳本)
    說明:不用賦予腳本+x權(quán)限拙寡,直接執(zhí)行即可授滓。
    sh helloworld.sh
    4)Shell的變量
    4.1)Shell的變量的介紹
    1)Linux Shell中的變量分為:系統(tǒng)變量和用戶自定義變量。
    2)系統(tǒng)變量:HOME肆糕、PWD般堆、SHELL、USER等等
    比如:echo HOME 等等 3)顯示當(dāng)前Shell中所有變量: set 4.2)Shell變量的定義 基本語(yǔ)法: 1)定義變量:變量=值 2)撤銷變量:unset 變量 3)聲明靜態(tài)變量:readonly變量擎宝,注意:不能unset 快速入門: 案例1:定義變量A A=100 定義變量A echo "A=A" 輸出變量A的值
    結(jié)果:A=100
    案例2:撤銷變量A
    unset A 注銷變量A
    echo "A=A" 輸出變量A的值 結(jié)果:A= 案例3:聲明靜態(tài)的變量B=2郁妈,不能unset readonly B=2 定義靜態(tài)變量 echo "B=B" 輸出靜態(tài)變量
    unset B 注銷靜態(tài)變量,會(huì)出錯(cuò)绍申,靜態(tài)變量不能注銷
    echo "B=B" 案例4:可把變量提升為全局環(huán)境變量噩咪,可提供其他shell程序使用 4)定義變量的規(guī)則 a. 變量名稱可以由字母、數(shù)字和下劃線組成极阅,但是不能以數(shù)字開頭胃碾。 b. 等號(hào)兩側(cè)不能有空格 c. 變量名稱一般習(xí)慣為大寫 5)將命令的返回值賦給變量(重點(diǎn)) a. A=`ls -la` 反引號(hào),運(yùn)行里面的命令筋搏,并把結(jié)果返回給變量A b. A=(ls -la) 等價(jià)于反引號(hào)
    PS:反引號(hào)是鍵盤的左上角仆百,Esc下面的那個(gè)鍵,引文狀態(tài)下點(diǎn)擊即可`
    5)Shell設(shè)置環(huán)境變量
    5.1)基本語(yǔ)法
    1)export 變量名=變量值 將shell變量輸出為環(huán)境變量
    2)source 配置文件 讓修改后的配置信息立即生效
    3)echo 變量名 查詢環(huán)境變量的值
    5.2)快速入門
    1)在/etc/profile文件中定義TOMCAT_HOME環(huán)境變量
    a. vim /etc/profile
    b. 在末尾添加 TOMCAT_HOME=/opt/tomcat
    c. source /etc/profile
    2)查看環(huán)境變量TOMCAT_HOME的值
    echo TOMCAT_HOME 3)在另外一個(gè)shell程序中使用TOMCAT_HOME a. vim myShell.sh b. 在里面輸入 echo "TOMECAT_HOME=TOMECAT_HOME"
    c. ./myShell.sh
    注意:在輸出TOMCAT_HOME環(huán)境變量前奔脐,需要讓其生效
    source /etc/profile
    PS:# 被注釋的內(nèi)容 是單行注釋
    :<<! 開始
    被注釋的內(nèi)容
    ! 結(jié)束
    6)位置參數(shù)變量
    6.1)介紹
    當(dāng)我們執(zhí)行一個(gè)shell腳本時(shí)俄周,如果希望獲取命令行的參數(shù)信息,就可以使用到位置參數(shù)變量
    比如:./myshell.sh 100 200髓迎,這個(gè)就是一個(gè)執(zhí)行shell的命令行峦朗,可以在myshell腳本中獲取到參數(shù)信息
    6.2)基本語(yǔ)法
    n n為數(shù)字,0代表命令本身排龄,1-9代表第一到第九個(gè)參數(shù)波势,十以上的參數(shù)需要用大括號(hào)包含,如{10}* 這個(gè)變量代表命令行中所有的參數(shù),*把所有的參數(shù)看成一個(gè)整體@ 這個(gè)變量也代表命令行中所有的參數(shù)
    # 這個(gè)變量代表命令行中所有參數(shù)的個(gè)數(shù) 6.3)位置參數(shù)變量 應(yīng)用案例 案例:編寫一個(gè)shell腳本positionPara.sh尺铣,在腳本中獲取到命令行的各個(gè)參數(shù)信息拴曲。 a. vim positionPara.sh b. 輸入 #!/bin/bash echo "0 12"
    echo "*" echo "@"
    echo "參數(shù)個(gè)數(shù)=$#"
    保存并退出
    c. 使文件擁有可執(zhí)行權(quán)限 chmod 744 positionPara.sh
    d. 執(zhí)行 ./positionPara.sh 30 60
    e. 結(jié)果
    ./positionPara.sh 30 60
    30 60
    30 60
    參數(shù)個(gè)數(shù)=2
    7)預(yù)定義變量
    7.1)基本介紹
    就是shell設(shè)計(jì)者事先已經(jīng)定義好的變量,可以直接在shell腳本中使用
    7.2)基本語(yǔ)法

當(dāng)前進(jìn)程的進(jìn)程號(hào)(PID) ! 后臺(tái)運(yùn)行的最后一個(gè)進(jìn)程的進(jìn)程號(hào)(PID)? 最后一次執(zhí)行的命令的返回狀態(tài)凛忿。如果這個(gè)變量的值為0澈灼,證明上一個(gè)命令正確執(zhí)行;否則(具體是哪個(gè)數(shù)侄非,由命令自己來決定)蕉汪,則證明上一個(gè)命令執(zhí)行不正確。 7.3)應(yīng)用實(shí)例 在一個(gè)shell腳本中簡(jiǎn)單使用一下預(yù)定義變量 a. vim preVar.sh b. 輸入 #!/bin/bash echo "當(dāng)前的進(jìn)程號(hào)=
"
#后臺(tái)的方式運(yùn)行 myShell.sh
./myShell.sh &
echo "最后的進(jìn)程號(hào)=!" echo "執(zhí)行的值=?"
c. 使文件擁有可執(zhí)行權(quán)限 chmod 744 preVar.sh
d. 執(zhí)行 ./preVar.sh
e. 結(jié)果
當(dāng)前的進(jìn)程號(hào)=22083
最后的進(jìn)程號(hào)=22084
執(zhí)行的值=0
8)運(yùn)算符
8.1)基本介紹
學(xué)習(xí)如何在shell中進(jìn)行各種運(yùn)算符操作
8.2)基本語(yǔ)法
1)"((運(yùn)算符))"或"[運(yùn)算符]"
2)expr m + n
注意expr運(yùn)算符間要有空格
3)expr m - n
4)expr *逞怨,/者疤,% 乘,除叠赦,取余
應(yīng)用實(shí)例
案例1:計(jì)算(2+3)4的值
1. (運(yùn)算符) RESULT1=(((2+3)
4))
echo "result1=RESULT1" 2.[運(yùn)算式]
RESULT2=[(2+3)*4] echo "result2=RESULT2"
3. expr
TEMP=expr 2 + 3
RESULT3=expr $TEMP \* 4
echo "result3=RESULT3" 案例2:請(qǐng)求出命令行的兩個(gè)參數(shù)[整數(shù)]的和 SUM=[1+2]
echo "sum=SUM" 9)條件判斷 9.1)判斷語(yǔ)句 [ condition ] 注意condition前后要有空格 #非空返回true驹马,可使用?驗(yàn)證(0為true,>1為false)
9.2)實(shí)用案例
[ atguigu ] 返回true
[] 返回false
[ condition ] && echo OK || echo notok 條件滿足除秀,執(zhí)行后面的語(yǔ)句
10)條件判斷
10.1)判斷語(yǔ)句
常用判斷條件
1)兩個(gè)整數(shù)的比較
= 字符串比較
-lt 小于 little
-le 小于等于 little equal
-eq 等于 equal
-gt 大于 greater
-ge 大于等于 greater equal
-ne 不等于 not equal
2)按照文件權(quán)限進(jìn)行判斷
-r 有讀權(quán)限
-w 有寫權(quán)限
-x 有執(zhí)行權(quán)限
3)按照文件類型進(jìn)行判斷
-f 文件存在并且是一個(gè)常規(guī)的文件 file
-e 文件存在 exit
-d 文件存在并且是一個(gè)目錄 directory
4)應(yīng)用實(shí)例
案例1:"ok"是否等于"ok"
a. vim judge.sh
b. 輸入
#!/bin/bash
if [ "ok" = "ok" ]
then
echo "equal"
fi
保存并退出
c. 更改權(quán)限糯累,使之有可執(zhí)行的權(quán)限 chmod 744 judge.sh
d. ./judge.sh
e. 結(jié)果
equal
案例2:23是否大于等于22
a. vim judge.sh
b. 輸入
if [ 23 -ge 22 ]
then
echo "23>=22"
fi
保存并退出
c. ./judge.sh
d. 結(jié)果
23>=22
案例3:/root/shell/aaa.txt目錄中的文件是否存在
a. vim judge.sh
b. 輸入
if [ -e /root/shell/aaa.txt ]
then
echo "exit"
fi
保存并退出
c. ./judge.sh
d. 結(jié)果
exit
PS:if條件的格式是
if [ condition ] // 條件判斷
then // 滿足條件則進(jìn)行相應(yīng)處理
fi // 條件結(jié)束,final
11)if 判斷
11.1)基本語(yǔ)法
if [ condition ];then
程序
fi
或者
if [ condition ]
then
程序
elif [ condition ]
then
程序
fi
注意事項(xiàng):
(1) [ condition ]册踩,中括號(hào)和condition之間必須有空格
(2) 推薦使用第二種
11.2)應(yīng)用實(shí)例
案例:請(qǐng)編寫一個(gè)shell程序泳姐,如果輸入的參數(shù)大于等于60,則輸出"及格了"暂吉,如果小于60胖秒,則輸出"不及格"
a. vim testIf.sh
b. 輸入
#!/bin/bash
if [ 1 -ge 60 ] then echo "及格了" elif [1 -lt 60 ]
then
echo "不及格"
fi
保存并退出
c. 更改權(quán)限,使之有可執(zhí)行的權(quán)限 chmod 744 testIf.sh
d. 執(zhí)行 ./testIf.sh 67
e. 結(jié)果
"及格了"
12)case 語(yǔ)句
12.1)基本語(yǔ)法
case 變量名 in "值1") 如果變量的值等于值1慕的,則執(zhí)行程序1 ;; "值2") 如果變量的值等于值1阎肝,則執(zhí)行程序2 ;; *) 如果變量的值都不是以上的值,則執(zhí)行此程序 ;; esac 12.2)應(yīng)用實(shí)例 案例1:當(dāng)命令行參數(shù)是1時(shí)肮街,輸出"周一"风题,是2時(shí),就輸出"周二"嫉父,其它情況輸出"other" a. vi testCase.sh b. 輸入 #!/bin/bash case1 in
"1")
echo "周一"
;;
"2")
echo "周二"
;;
)
echo "其它"
;;
esac
c. 更改權(quán)限沛硅,使之有可執(zhí)行的權(quán)限 chmod 744 testCase.sh
d. 執(zhí)行 ./testCase.sh 1
e. 結(jié)果
周一
13)for 循環(huán)
13.1)基本語(yǔ)法1
for 變量 in 值1 值2 值3 ...
do
程序
done
13.2)應(yīng)用案例
案例1:打印命令行輸入的參數(shù)
a. vim testFor.sh
b. 輸入
#!/bin/bash
for i in "*" // 或用 for i in "@" 也可以,只不過*是輸出一行绕辖,而@是每個(gè)參數(shù)輸出一行
do
echo "the num is i" done 退出并保持 c. 更改權(quán)限稽鞭,使之有可執(zhí)行的權(quán)限 chmod 744 testFor.sh d. 執(zhí)行 ./testFor.sh 1 2 3 e. 結(jié)果 // 用
輸出的結(jié)果
the num is 1 2 3
// 用@輸出的結(jié)果 the num is 1 the num is 2 the num is 3 13.3)基本語(yǔ)法2 for((初始值;循環(huán)控制條件;變量變化)) do 程序 done 13.4)應(yīng)用案例 案例1:從1加到100的值輸出顯示[這里可以看出*和@的區(qū)別] a. vim testFor2.sh b. 輸入 #!/bin/bash SUM=0 for((i=0;i<=100;++i)) do SUM=[SUM+i]
done
echo "SUM=SUM" 保持并退出 c. 更改權(quán)限,使之有可執(zhí)行的權(quán)限 chmod 744 testFor2.sh d. 執(zhí)行 ./testFor2.sh e. 結(jié)果 SUM=5050 14)while 循環(huán) 14.1)基本語(yǔ)法1 while[條件判斷式] do 程序 done 14.2)應(yīng)用實(shí)例 案例1:從命令行輸入一個(gè)數(shù)n引镊,統(tǒng)計(jì)從1+..+n的值是多少? a. vim testWhile.sh b. 輸入 #!/bin/bash SUM=0 i=0 while [i -le 1 ] do SUM=[SUM+i]
i=[i+1]
done
echo "SUM=SUM" 保持并退出 c. 更改權(quán)限,使之有可執(zhí)行的權(quán)限 chmod 744 testWhile.sh d. 執(zhí)行 ./testWhile.sh 10 e. 結(jié)果 SUM=55 15)read讀取控制臺(tái)輸入 15.1)基本語(yǔ)法 read [選項(xiàng)] {參數(shù)} 選項(xiàng): -p 指定讀取值時(shí)的提示符 -t 指定讀取值時(shí)等待的時(shí)間(秒)弟头,如果沒有在指定的時(shí)間內(nèi)輸入吩抓,就不再等待了 參數(shù) 變量 指定讀取值得變量名 15.2)應(yīng)用實(shí)例 案例1:讀取控制臺(tái)輸入一個(gè)num值 a. vim testRead.sh b. 輸入 read -p "請(qǐng)輸入一個(gè)數(shù)num1=" NUM1 echo "你輸入的值是num1=NUM1"
保存并退出
c. 更改權(quán)限,使之有可執(zhí)行的權(quán)限 chmod 744 testRead.sh
d. 執(zhí)行
./testRead.sh
123
e. 結(jié)果
你輸入的值是num1=123
案例2:讀取控制臺(tái)輸入一個(gè)num值赴恨,在10秒內(nèi)輸入
a. vim testRead.sh
b. 輸入
read -t -p "請(qǐng)輸入一個(gè)數(shù)num2=" NUM2
echo "你輸入的值是num2=NUM2" 保存并退出 c. 執(zhí)行 ./testRead.sh 不輸入內(nèi)容疹娶,等待10秒 d. 結(jié)果 請(qǐng)輸入一個(gè)數(shù)num2=你輸入的值是num2= 16)系統(tǒng)函數(shù) 16.1)函數(shù)介紹 shell編程和其他編程語(yǔ)言一樣,有系統(tǒng)函數(shù)伦连,也可以自定義函數(shù)雨饺。系統(tǒng)函數(shù)中,我們這里只學(xué)習(xí)兩個(gè)惑淳。 16.2)basename基本語(yǔ)法 功能:返回完整路徑最后/的部分额港,常用于獲取文件名 basename [pathname] [suffix] basename [string] [suffix] basename命令會(huì)刪掉所有的前綴包括最后一個(gè)('/')字符,然后將字符串顯示出來歧焦。 選項(xiàng): suffix為后綴移斩,如果suffix被指定了,basename會(huì)將pathname或string中的suffix去掉绢馍。 16.3)應(yīng)用實(shí)例 案例1:請(qǐng)返回/home/aaa/test.txt的"test.txt"部分 a. basename /home/aaa/test.txt b. 顯示 test.txt c. basename /home/aaa/test.txt .txt d. 顯示 test 16.4)dirname 基本用法 功能:返回完整路徑最后/的前面的部分向瓷,常用于返回路徑部分 dirname 文件絕對(duì)路徑 從給定的包含絕對(duì)路徑的文件名中取出文件名(非目錄的部分),然后返回剩下的路徑(目錄的部分) 16.5)應(yīng)用案例 案例1:請(qǐng)返回 /home/aaa/test.txt 的/home/aaa a. dirname /home/aaa/test.txt b. 顯示 /home/aaa 17)自定義函數(shù) 17.1)基本語(yǔ)法 function funname() { Action; [return int;] } 調(diào)用直接寫函數(shù)名:funname [值] 17.2)應(yīng)用案例 案例1:計(jì)算輸入兩個(gè)參數(shù)的和舰涌,getSum a. vim testFun.sh b. 輸入 #!/bin/bash function getSum() { SUM=n1+n2 echo "sum=SUM"
}

                read -p "請(qǐng)輸入第一個(gè)參數(shù)n1=" n1
                read -p "請(qǐng)輸入第一個(gè)參數(shù)n2=" n2
                
                getSum $n1 $n2
                保存并退出
            c. 更改權(quán)限猖任,使之有可執(zhí)行的權(quán)限 chmod 744 testFun.sh
            d. 執(zhí)行 ./testFun.sh
                90
                10
            e. 結(jié)果
                sum=100
18)Shell編程的綜合案例
    18.1)需求分析
        1)每天凌晨2:10分備份數(shù)據(jù)庫(kù)atguiguDB到/data/backup/db
        2)備份開始和備份結(jié)束能夠給出相應(yīng)的提示信息
        3)備份后的文件要求以備份時(shí)間為文件名,并打包成.tar.gz的形式瓷耙,比如2018-03-12_230210.tar.gz
        4)在備份的同時(shí)朱躺,檢查是否有10天前備份的數(shù)據(jù)庫(kù)文件,如果有就將其刪除哺徊。
    18.2)實(shí)現(xiàn)流程
        a. vim mysql_db_backup.sh
        b. 輸入內(nèi)容如下:
            #!/bin/bash
            #完成數(shù)據(jù)庫(kù)的備份
            #備份數(shù)據(jù)庫(kù)
            BACKUP=/data/backup/db
            #當(dāng)前的時(shí)間作為文件名
            DATETIME=${date +%Y-%m-%d_%H%M%S}
            #可以輸出變量進(jìn)行調(diào)試
            echo ${DATETIME}
            echo "-------------begin-------------"
            echo "-----------開始備份------------"
            #主機(jī)
            HOST=localhost
            #用戶名
            DB_USER=root
            #密碼
            DB_PWD=root
            #備份數(shù)據(jù)庫(kù)名
            DATABASE=atguiguDB
            #創(chuàng)建備份的路徑
            #如果備份的路徑文件夾存在室琢,就使用,否則就創(chuàng)建
            [ ! -d "$BACKUP/$DATETIME" ] && mkdir -p "$BACKUP/$DATETIME"
            #執(zhí)行mysql的備份數(shù)據(jù)庫(kù)的指令
            mysqldump -u${DB_USER} -p${DB_PWD} --host=${HOST} $DATABASE | gzip > $BACKUP/$DATETIME/$DATETIME.sql.gz
            #打包備份文件
            cd $BACKUP
            tar -zcvf $DATETIME.tar.gz $DATETIME
            #刪除臨時(shí)目錄
            rm -rf $BACKUP/$DATETIME    也可以直接使用 rm -rf $DATETIME
            #刪除十天前的備份文件
            find $BACKUP -mtime +10 -name "*.tar.gz" -exec rm -rf {} \;
            echo "----------備份結(jié)束-----------"
        c. 更改權(quán)限落追,使之有可執(zhí)行的權(quán)限 chmod 744 mysql_db_backup.sh
        d. crontab -e
        e. 輸入
            10 2 * * * /usr/sbin/mysql_db_backup.sh
        f. 結(jié)束
  1. Linux之Python定制篇
    1)Ubuntu介紹
    Ubuntu是一個(gè)以桌面應(yīng)用為主的開源GNU/Linux操作系統(tǒng)盈滴,支持x86、amd64(即x64)和ppc架構(gòu)轿钠,由全球化的專業(yè)開發(fā)團(tuán)隊(duì)(Canonical Ltd)打造的巢钓。
    專業(yè)的Python開發(fā)者一般會(huì)選擇Ubuntu這款Linux系統(tǒng)作為生產(chǎn)平臺(tái)。
    溫馨提示:
    Ubuntu和Centos都是基于GNU/Linux內(nèi)核的疗垛,因此基本使用和Centos是幾乎一樣的症汹,他們的各種指令可以通用,只是界面和預(yù)安裝的軟件有所差異
    Ubuntu下載地址:http://cn.ubuntu.com/download/
    2)Ubuntu安裝
    3)Ubuntu的root用戶贷腕,給root用戶設(shè)置密碼并使用
    a. 輸入 sudo passwd 命令背镇,輸入一般用戶密碼并設(shè)定root用戶密碼
    b. 設(shè)定 root 密碼成功后咬展,輸入 su 命令,并輸入剛才設(shè)定的root密碼瞒斩,就可以切換成root了破婆。提示符$代表一般用戶,提示符#代表root用戶胸囱。
    c. 輸入exit命令祷舀,退出root并返回一般用戶
    d. 以后就可以使用root用戶了
    4)Ubuntu下開發(fā)Python
    4.1)說明
    安裝好Ubuntu后,默認(rèn)就已經(jīng)安裝好Python的開發(fā)環(huán)境[Python2.7 和 Python3.5]烹笔。
    4.2)在Ubuntu下開發(fā)一個(gè)Python程序
    a. vim hello.py 編寫hello.py
    提示:如果Ubuntu上沒有vim裳扯,我們可以根據(jù)提示信息安裝一個(gè)vim apt install vim
    b. 輸入
    print("hello,world!")
    c. python3 hello.py 運(yùn)行hello.py
    d. 結(jié)果
    hello,world
    5)Python定制篇-APT軟件管理和遠(yuǎn)程登錄
    5.1)apt介紹
    apt是Advanced Packaging Tool的簡(jiǎn)稱,是一款安裝包管理工具谤职。在Ubuntu下饰豺,我們可以使用apt命令可用于軟件包的安裝、刪除柬帕、清理等哟忍,類似于Windows中的軟件管理工具。
    Ubuntu的軟件管理示意圖(略)
    5.2)Ubuntu軟件曹組的相關(guān)命令
    sudo apt-get update 更新源
    sudo apt-get install package 安裝包
    sudo apt-get remove package 刪除包

        sudo apt-cache search package    搜索軟件包
        sudo apt-cache show package        獲取包的相關(guān)信息陷寝,如說明锅很、大小、版本等
        sudo apt-get install package --reinstall    重新安裝
        
        sudo apt-get -f install            修復(fù)安裝
        sudo apt-get remove package --purge        刪除包凤跑,包括配置文件等
        sudo apt-get build-dep package    安裝相關(guān)的編譯環(huán)境
        
        sudo apt-get upgrade            更新已安裝的包
        sudo apt-get dist-upgrade        升級(jí)系統(tǒng)
        sudo apt-cache depends package    了解使用該包依賴哪些包
        sudo apt-cache rdepends package    查看該包被哪些包依賴
        sudo apt-get source package        下載該包的源代碼
    5.3)尋找國(guó)內(nèi)的鏡像源
        https://mirrors.tuna.tsinghua.edu.cn/
        所謂的鏡像源:可以理解為提供下載軟件的地方爆安,比如Android手機(jī)上可以下載軟件的安卓市場(chǎng);ios手機(jī)上可以下載軟件的AppStore
    5.4)Ubuntu軟件安裝仔引、卸載的最佳實(shí)踐
        案例說明:使用apt完成安裝和卸載vim軟件扔仓,并查詢vim軟件的信息
            sudo apt-get remove vim
            sudo apt-get install vim
            sudo apt-cache show vim
    

    6)ssh遠(yuǎn)程登錄Ubuntu
    6.1)ssh介紹
    SSH為Secure Shell的縮寫,由IETF的網(wǎng)絡(luò)工作小組(Network Working Group) 所制定咖耘;SSH為建立在應(yīng)用層和傳輸層基礎(chǔ)上的安全協(xié)議翘簇。
    SSH是目前較可靠,專為遠(yuǎn)程登錄會(huì)話和其他網(wǎng)絡(luò)服務(wù)提供安全性的協(xié)議儿倒。常用于遠(yuǎn)程登錄版保,以及用戶之間進(jìn)行資料拷貝。幾乎所有Unix平臺(tái)--包括HP-UX夫否、Linux彻犁、AIX、Solaris凰慈、Digital UNIX汞幢、Irix,以及其他平臺(tái)微谓,都可運(yùn)行SSH森篷。
    使用SSH服務(wù)输钩,需要安裝相應(yīng)的服務(wù)器和客戶端〖埠辏客戶端和服務(wù)器的關(guān)系:如果张足,A機(jī)器想被B機(jī)器遠(yuǎn)程控制,那么坎藐,A機(jī)器需要安裝SSH服務(wù)器,B機(jī)器需要安裝SSH客戶端哼绑。
    和CentOS不一樣岩馍,Ubuntu默認(rèn)沒有安裝SSHD服務(wù),因此抖韩,我們不能進(jìn)行遠(yuǎn)程登錄蛀恩。
    6.2)使用ssh遠(yuǎn)程登錄Ubuntu
    1)安裝SSH和啟用
    sudo apt-get install openssh-server
    執(zhí)行上面的指令后,在當(dāng)前這臺(tái)Linux上就安裝了SSH服務(wù)端和客戶端

            service sshd restart
            執(zhí)行上面的指令茂浮,就啟動(dòng)了sshd服務(wù)双谆。會(huì)監(jiān)聽端口22
        2)在Windows上使用xshell5或xftp5登錄Ubuntu
        3)從Linux系統(tǒng)客戶機(jī)遠(yuǎn)程登錄Linux系統(tǒng)服務(wù)機(jī)
            首先,我們需要在Linux的系統(tǒng)客戶機(jī)也要安裝openssh-server
            基本語(yǔ)法:
                ssh 用戶名@IP
                例如: ssh atguigu@192.168.188.130
                使用ssh訪問席揽,如訪問出現(xiàn)錯(cuò)誤顽馋。可查看是否有該文件 ~/.ssh/known_ssh 嘗試刪除該文件解決幌羞。
                登出命令:
                exit或者logout
    
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末寸谜,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子属桦,更是在濱河造成了極大的恐慌熊痴,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,013評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件聂宾,死亡現(xiàn)場(chǎng)離奇詭異果善,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)系谐,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,205評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門巾陕,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人蔚鸥,你說我怎么就攤上這事惜论。” “怎么了止喷?”我有些...
    開封第一講書人閱讀 152,370評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵馆类,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我弹谁,道長(zhǎng)乾巧,這世上最難降的妖魔是什么句喜? 我笑而不...
    開封第一講書人閱讀 55,168評(píng)論 1 278
  • 正文 為了忘掉前任,我火速辦了婚禮沟于,結(jié)果婚禮上咳胃,老公的妹妹穿的比我還像新娘。我一直安慰自己旷太,他們只是感情好展懈,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,153評(píng)論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著供璧,像睡著了一般存崖。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上睡毒,一...
    開封第一講書人閱讀 48,954評(píng)論 1 283
  • 那天来惧,我揣著相機(jī)與錄音,去河邊找鬼演顾。 笑死供搀,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的钠至。 我是一名探鬼主播葛虐,決...
    沈念sama閱讀 38,271評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼棕洋!你這毒婦竟也來了挡闰?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,916評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤掰盘,失蹤者是張志新(化名)和其女友劉穎摄悯,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體愧捕,經(jīng)...
    沈念sama閱讀 43,382評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡奢驯,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,877評(píng)論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了次绘。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片瘪阁。...
    茶點(diǎn)故事閱讀 37,989評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖邮偎,靈堂內(nèi)的尸體忽然破棺而出管跺,到底是詐尸還是另有隱情,我是刑警寧澤禾进,帶...
    沈念sama閱讀 33,624評(píng)論 4 322
  • 正文 年R本政府宣布豁跑,位于F島的核電站,受9級(jí)特大地震影響泻云,放射性物質(zhì)發(fā)生泄漏艇拍。R本人自食惡果不足惜狐蜕,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,209評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望卸夕。 院中可真熱鬧层释,春花似錦、人聲如沸快集。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,199評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)碍讨。三九已至治力,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間勃黍,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,418評(píng)論 1 260
  • 我被黑心中介騙來泰國(guó)打工晕讲, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留覆获,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,401評(píng)論 2 352
  • 正文 我出身青樓瓢省,卻偏偏與公主長(zhǎng)得像弄息,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子勤婚,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,700評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容