貓寧!!!
在centos7上操作這一切
第1節:什麼是shell
centos7默認使用shell的bash
cat /etc/shells
第2節:linux的啓動過程
BIOS(主板,引導介質)---MBR(硬盤,主引導記錄)---BootLoader(grub)(啓動引導內核,確定內核版本)--kernel(啓動內核)---systemd---系統初始化---shell
一般進入BIOS是鍵入F2
linux自帶腳本
dd if=/dev/sda of=mbr.bin bs=446 count=1
hexdump -C mbr.bin
dd if=/dev/sda of=mbr1.bin bs=512 count=1
hexdump -C mbr1.bin|more
尋找grub配置文件
查看內核版本
尋找初始化路徑,針對centos6
top -p 1,顯示systemd這個進程,針對centos7
cd /etc/rc.d,針對centos6
cd /etc/systemd/system/,針對centos7
systemd讀取各種服務
查看文件類型
查看腳本的內容
第3節:shell腳本的格式
一條命令只做一件事
進入一個目錄並查看其中的內容
cd /var/;ls,中間採用分號進行間隔
創建1.sh,內容爲cd /var/;ls,賦予可讀可執行權限,chmod u+rx 1.sh,執行就好了
cd /var/;ls;pwd;du -sh;du -sh *
一行一條命令便於閱讀,極其方便,可以重複使用。創建一個文件的時候,默認有讀的權限,但是沒有執行的權限。
這個時候不需要分號了。sh 1.sh或者bash 1.sh
查看文件的權限
爲了防範格式不兼容的問題,需要一個shell文件的聲明,#!/bin/bash,保證在各個平臺系統正常使用
./1.sh也可以執行,採用系統默認方式,此外#也可以註釋這個腳本的用途,最好放在第二行說明
source ./1.sh,也可以實現執行腳本,顯示結果
第4節:腳本不同執行方式的影響
1.sh(完全新建,沒有給予可執行權限)內容如下
bash 1.sh,似乎沒有進入/tmp目錄
修改1.sh,並執行,說明腳本執行完之後又返回root目錄下
創建2.sh,沒有可執行權限,唯一一個需要可執行權限的
./2.sh
source ./2.sh
. ./2.sh,直接進入相應的目錄,這兩個不需要可執行權限
內建命令,不需要創建子進程,對當前運行環境造成影響。
外部命令,需要創建子進程
第5節:管道
管道符號‘|’,將前一個命令執行的後果傳遞給後面的命令,連接好應用程序,連接輸入輸出
管道和信號是一樣
ls -l|more,如果ls -l的內容很多的話,這種方式可以只顯示其中的一部分
more 1.sh查看1.sh之中的內容
cat anaconda-ks.cfg,可以查看文件中的所有內容,cat anaconda-ks.cfg|more就是查看部分,分頁顯示
直接輸入cat,可以產生一個進程
直接輸入ps -f
兩者結合,cat |ps -f,有了一個cat的進程,一直卡在那裏,沒有執行完全,而且2551對應cat,2552對應ps -f
進程存在的時候,查看某一個進程的運行文件
ps-f 已經執行完了,所以沒有文件,避免管道符中使用內部命令
分號是隔開兩個命令,相互之間可以無關聯,管道符是連接作用
第一療程,over。。。。。。