小弟最近你自己整理了點東西,希望各位網友給我能修改修改!!!1
第一章 shell 簡介
-什麼是shell
-存取權限和安全
-shell簡單腳本
-shell特性
1.1 什麼是shell
-shell是核心程式(kernel)之外的指令解析器,是一個程式,同時是一種指令語言和程式設計語言。
-shell的類型ash、bash、ksh、csh、tcsh
-/etc/shells
-/echo $shell
-程式在shell中運作
-shell中可運作子shell
#ls
#cat /etc/shells
#echo $shell 顯示目前的shell
#/bin/csh 進入到csh
#exit 退出目前shell
#ls 兩個tab鍵,幫助功能,補全以ls開頭的指令
#help 顯示shell指令
1.2 存取權限與安全
-檔案和名錄的權限(-rwxr--r--)
-setuid(suid/guid)(chmod u+s,g+s file)
-chown和chgrp(chown user file/chgrp group file)
-umask (umask nnn)
-符号連結(ln [-s] source_path target_path)
#ls -l 顯示檔案權限及空間
#ls -lh 注意h的差別
-、d、l、b(塊檔案)、c(字元檔案)、p(管道檔案)、s(socket檔案 如:ls -l /tmp/.x11-unix/xo)
chmod [who] operator [permission] filename
- who (u,g,o,a)
- operator (+,-,=)
- permission (r,w,x,s,t)
#mkdir testfile
#chmod u=rwx,g+w,o+r testfile
#ls -l
#chmod u+s testfile s位涉及安全問題
#chmod g+x,o+x testfile 這個檔案所屬的組或其它使用者會獲得屬主的權限
#chown root.antiy testfile s位:其它使用者會擁有root的權限
#chmod g+s testfile 這個檔案所屬的組或其它使用者會獲得屬組的權限
#chmod o+t testfile 運作時放到swap裡
#ls -l /bin | grep '^...s'
s位有安全隐患,但為什麼還需要s位呢?
chmod mode filename
- mode
r 4 w 2 x 1
chmod 644 filename
chmod 740 filename
#chmod 4744 filename
#chmod 6744 filename
#chmod 7744 filename
chown和chgrp
注意-r的作用,子目錄也随之更改
#chown root testfile
#chown -r root testfile
#ls -l testfile
#chgrp antiy testfile
#chown root.antiy testfile -r
umask 預設權限
#umask
022
#touch filename
#ls -l filename
#mkdir direactory
#ls -lda direactory
自己找一下umask的值與目錄和檔案的規律
#umask 000
000
#touch filename1
#ls -l filename1
#mkdir direactory1
ls -lda direactory1
#umask 022
-注意安全性問題
/etc/profile ($home/.profile
$home/.bash_profile)
-umask
#cat /etc/profile | grep "umask"
***********************************************************************************************************
-符号連結
-硬連結
-軟連接配接
-ln [-s] source_path target_path
-shell教本
-使用shell腳本的原因
功能強大,節約時間。
-shell腳本基本元素
#!/bin/bash
-第一行
#
-表示注釋
變量
流程控制結構
例子:
helloworld.sh
#!/bin/bash
#輸出一個hell world的shell
printchar="hello world"
echo $printchar
echo $home
#chmod u+x helloworld.sh
#./helloworld.sh
shell特性
别名,指令替換,背景處理,變量,管道,重定向,
模式比對,特殊字元
别名:
-alias
-alias ll='ls -alh'
#alias
#alias ll='ls -alh'
#alias ll='ls -l --color=tty'
#cat $home/.bashrc 每個使用者自己定義的别名
指令替換:
myfile的内容:
parm
findfile
#cat myfile
#ls `cat myfile` -al
背景處理:
-什麼是背景?
-一個終端可以同時運作多個程式
-nohup command &
#nohup tar -czf enerco.tar.gz enerco &
#job -l 可以檢視背景正在運作的程式
變量:
管道:
-把一個指令的輸出連接配接到另一個指令的輸入
-ls | sort
#ls -l | sort
#ls | sort
重定向(< >):
-與管道相關,可以改變程式運作的輸入來源和輸出地點
-sort <myfile.txt
-sort <myfile.txt>myfile_sort.txt
#vi myfile.txt
#sort < myfile.txt
#sort <myfile.txt >myfile_sort.txt
模式比對:
-顯示以txt為擴充名的檔案或顯示以a開頭的檔案,這種能力就稱為模式比對
-正規表達式
特殊字元
-雙引号("):用來使shell無法認出空格、制表符和其他大多數特殊字元,如
"david medinets"表示一個值,而不是2個。同樣"david < medinets"表示一個值。
-單引号('):用來使shell無法認出所有特殊字元。
-反引号(`):用來替換指令。
-反斜杠(\):用來使shell無法認出其後特殊字元,使其後的字元失去了特殊的含義,
如:david\ medinets
#touch david\ medinets
#ls david\ medinets
-分号(;):如許在一行上放多個指令。
-&:指令背景執行。
-括号():建立成組指令。
-大括号{}:建立指令塊。
-豎杠(|):管道表示符。
-< >&:表示重定向。
-* ? [] ! :表示模式比對。
-$:變量名的開頭。
-#:表示注釋(第一行除外)。
-空格,制表符,換行符:當作空白。