PJzhang:shell基礎入門的2個療程-one

貓寧!!!

 

在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。。。。。。

 

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