安全上下文:指的是一類定義某個進程允許做什麼的許可和許可權的集合.
Ctrl c 取消命令
命令行編輯快捷方式: Ctrl a 快速將游標移到命令行行的行首
Ctrl e 快速將游標移到命令行行的行尾
Ctrl --> <-- 一次將游標移動一個單詞
Ctrl k 刪除游標所在位置到尾部的內容
Ctrl u 刪除游標所在位置到首部的內容
Ctrl l 或者 clear 清屏
Gllobing 文件名通配符
* 匹配人一個任意長度的字元
? 匹配任意單個字元
[] 匹配範圍
[:lower:] 匹配小寫字母
[:upper:] 匹配大寫字母
[:digit:] 匹配數字
[:alnum:] 匹配字母數字
[:punct:] 匹配標點
[:space:] 匹配空格鍵
file 查看文件內容的類型
~ 當前此用戶的家目錄
shell 類型
bsh
sh
ksh
bash
Cat 連接並輸出文件的內容,整個內容全部顯示
-n 顯示行號
-A = --show -all
-E 顯示行結尾符
-V 顯示沒有列印的操作
cat /etc/shells 顯示可用Shell
變數
bash中 都是為char型
分為本地變數,環境變數,位置參數變數,特殊變數
1.變數的使用
#set CLASS=3 (設置CLASS變數內容為3)
#unset CLASS (取消設置的變數)
引用:去變數值
“”弱引用(變數將依然作為變數)
‘’強引用 (變數將不再作為變數)
`` 命令引用 (引用命令將作為內容付給變數)
echo 顯示變數值
2.環境變數 (能被Shell及子Shell共享)
#export CLASS=3
#echo $CLASS
3
#NAME=jerry
readonly NAME (設置只讀變數,不能刪)
#export (顯示環境變數)
3.特殊變數
echo $? 顯示上一個命令返回狀態值 (若正確,則為0:;若不正確,則為1~255之間的數.)
echo $$ 顯示當前進程號
命令別名
alias
寫腳本:
格式
#!/bin/bash
……
……
……
set -x 調試執行(此命令執行后開始追蹤)
set x 調試命令(到此為止,調試結束,此命令執行完結束)
bash 文件名 在沒有執行許可權時依然可以執行
bash -x 文件名 可調式運行
4.位置參數命令
$1 ${10} ……
I/O 及管道
不指定時為標準輸入/標準輸出 標準錯誤輸出
文本處理工具
Cat
-A
-n
-s 壓縮空白行
more 分頁查看
less 既能向前查看,也能向後查看,還能搜索
tail 查看尾部十行
head 查看首部十行
GREP 全面搜索正則表達式並列印出來
-v 匹配到的不顯示,匹配不到的顯示
-i 在搜索時忽略大小寫
-An 匹配到的下邊n行也顯示出來
-Bn 匹配到的上邊n行也顯示出來
-Cn 匹配到的上邊n行,下邊n行都顯示出來
WC 位元組、單詞、行的統計
-l 行的統計
-w 單詞的統計
-c 位元組的統計
條件測試
整數 -eq 等於
-ne 不等於
-gt 大於
-eg 大於等於
-lt 小於
-le 小於等於
字元串 = 等於
!= 等於
> [["$a">"$b"]]
< ["$a"<"$b"]
-z 空為真
-n 空為假
VI編輯器
分為三種模式:
命令行模式
編輯模式
末行模式
三種模式之間的轉換:
進入命令行模式-->輸入i a
進入末行模式-->Esc
命令-->末行 :
末行-->命令 Esc
:q 退出
Ctrl z 掛起推出
shift z 退出
命令行模式下
j 向下移動游標
k 向上移動游標
l 向右移動游標
h 向左移動游標
行內移動:^ o $
^ 移動到行首
o 移動到行首(絕對行首,有空隔的移到空格前行首)
$ 行尾(絕對行尾.有空格的把空格計算為字元)
以單詞移動:w b e
w:到下一個單詞的詞首
b:若游標在詞首,則到上一個單詞的詞首.若游標不在詞首, 則到當前單詞的詞首
e:若游標在詞尾,則到下一個單詞的詞尾,若游標不在詞尾, 則到當前單詞的詞尾
行間移動
nG : 1G 移動一行, 100G 移動100行
末行模式下:
:n 跳到第n行
按照語句跳轉:> <
段落間的跳轉 } {
命令--> 輸入:
i :所在出的前面加
I :在游標所在處的前面行首
a : 在游標所在出的後面加
A :在游標所在出的行尾
o :在游標所在出的下一行
O :在游標所在出的上方開啟一行,並轉為輸入狀態
c :先刪除一些東西,並轉入輸入狀態
C :刪除所在行轉入輸入狀態
Shell作業
1,shell
if
三個數,最大數是誰?
代碼:
#!/bin/bash
if [ $1 -gt $2 ];then
if [$3 -gt $1 ];then
echo "MAX is $3"
else
echo "MAX is $1"
fi
elif [ $2 -gt $3 ];then
echo "MAX is $2"
else
echo "MAX is $3"
fi
2.shell
for
ping C類網
代碼:
#!/bin/bash
for I in {1..254};do
if ping -c1 -w1 192.168.234.$I &> /dev/null;then
echo "$I is online."
else
echo "$I is offline."
ping B類網
代碼:
#!/bin/bash
for M in {1..254};do
for N in {1..254};do
if ping -c1 -w1 192.168.$M.$N &> /dev/null;then
echo "192.168.$M.$N is online. else
echo "192.168.$M.$N is offline."
fi
done
done
3.提示用戶通過鍵盤輸入一個用戶名,來判斷這個用戶是否存在,如果存在就顯示一下用戶默認的shell
代碼:
#/bin/bash
read -p "Please input your username:" A
if grep "^$A>" /etc/passwd &> /dev/null ; then
echo "The user's shell is:"
grep "^$A>" /etc/passwd | cut -d: -f7
else
echo "The user not exist,please give me a correct username!"
fi
4.要求用戶輸入一個文件名,判斷如果此文件是個普通文本文件,顯示共有多少行
代碼:
#!/bin/bash
let COUNT=0
read -p "Please enter a file:" FILE
if [ -e $FILE -a -f $FILE ];then
while read LINE
do
COUNT
done < $FILE
echo "The file is in total of $FILE lines."
fi
5.寫個腳本 通過查找“/etc/sysconfignetwork-scripts/ifcfg-eth0”
如果BOOTPROTO=dhcp,bootp, 改為 static
修改
NETMASK=
service network restart
ifdown eth0 && ifup eth0
代碼:
#!/bin/bash
declare I J K
let I="BOOTPROTO=dhcp"
let J="BOOTPROTO=bootp"
let K=`grep "^<BOOTPROTO" /etc/sysconfig/network-scripts/ifcfg-eth0`
if [ "$K" == "I"] || [ "$k" == "$J" ];then
echo "You doesn't direct IP."
else
sed 's/IPADDR.*/IPADDR=192.168.145.127/g' /etc/sysconfig/network-scripts/ifcfg-eth0
sed 's/NETMASK.*"/NETMASK=255.255.255.0' /etc/sysconfig/network-scripts/ifcfg-eth0
fi
sed -e 's/IPADDR.*/IPADDR=192.168.145.127/g' -e 's/NETMASK.*/NETMASK=255.255.255.0/g' /etc......../ifcfg-eth0
6.100內偶數之和
#!/bin/bash
let SUM=0
let I=0
while [ $I -le 100 ];do
let SUM =$I
let I =2
done
echo "The SUM is $SUM"
[火星人 ] Linux 基礎知識(三)已經有618次圍觀