什麼是shell
shell是核心程序(kernel)之外的指令解析器,是一個程序,同時是一種命令語言和程序設計語言。
shell是核心程序(kernel)之外的指令解析器,是一個程序,同時是一種命令語言和程序設計語言。
shell的類型 ash bash ksh csh tcsh
- /etc/shells
- echo $SHELL
程序在shell中運行,shell中可運行子shell
- /etc/shells
- echo $SHELL
程序在shell中運行,shell中可運行子shell
存取權限和安全
setuid(suid/guid) chmod u+s,g+s file
chown 和chgrp(chown user file /chgrp group file)
umask(umask nnn)
setuid(suid/guid) chmod u+s,g+s file
chown 和chgrp(chown user file /chgrp group file)
umask(umask nnn)
ls -l :
下面列出文件類型:
- 普通文件
d 目錄文件
l 鏈接文件
c 字符設備文件 一般放dev下
p 命令管道文件
b 塊設備文件 一般放dev下
s socket文件
下面列出文件類型:
- 普通文件
d 目錄文件
l 鏈接文件
c 字符設備文件 一般放dev下
p 命令管道文件
b 塊設備文件 一般放dev下
s socket文件
採用符號模式改變權限
chmod [who] operator [permission] filename
who(u,g,o,a)
operator(+,-,=)
permission(r,w,x,s,t) [s:setuid t:]
operator(+,-,=)
permission(r,w,x,s,t) [s:setuid t:]
採用數字絕對模式改變權限
r-4 w-2 x-1
chmod 644 myfile
r-4 w-2 x-1
chmod 644 myfile
chown itlab.itlab hello -R
umask 【在/etc/profile($HOME/.profile
$HOME/.bash_profile】
umask 文件 目錄
0 6 7
1 5 6
2 4 5
3 3 4
4 2 3
5 1 2
6 0 1
7 0 0
$HOME/.bash_profile】
umask 文件 目錄
0 6 7
1 5 6
2 4 5
3 3 4
4 2 3
5 1 2
6 0 1
7 0 0
符號鏈接 ln -s source-path darget-path
shell簡單腳本
· 使用shell腳本的原因【功能強大,節約時間】
· shell腳本基本元素
#!/bin/bash --第一行
# --表示註釋
變量
流程控制結構
· 使用shell腳本的原因【功能強大,節約時間】
· shell腳本基本元素
#!/bin/bash --第一行
# --表示註釋
變量
流程控制結構
#!/bin/bash
# helloworld.sh
a=helloworld
echo "This is my first shell script $a"
# helloworld.sh
a=helloworld
echo "This is my first shell script $a"
shell特性:
· 別名 · 管道
· 命令替換 · 重定向
· 後臺處理 · 模式匹配
· 變量 · 特殊字符
alias ll = 'ls -l' 我們可以從 cat $HOME/.bashrc查看到alias
sort< myfile.txt>myfile_dort.txt
特殊字符:
· 雙引號(“):用來使shell無法認出空格、製表符和其他大多數特殊字符,這樣”David Medinets“表示一個值,而不是2個同樣”David< Medinets"表示一個值。
· 單引號(’):用來使shell無法認出所有特殊字符
· 反引號(`):用來替換命令
· 反斜槓(\):用來使shell無法認出氣候的特殊字符,使其後的支付失去了特殊的含義,如 David \ Medinets
· 分號(;):允許在一行上放多個命令
· &:命令後臺執行
· 括號():創建成組的命令
· 大括號{}:創建命令塊
· 豎杆(|):管道表示符
· <> :表示重定向
· * ? [] !:表示模式匹配
· $:變量名的開頭
· #:表示註釋(第一行除外)
· 空格,製表符,換行符:當做空白
· 別名 · 管道
· 命令替換 · 重定向
· 後臺處理 · 模式匹配
· 變量 · 特殊字符
alias ll = 'ls -l' 我們可以從 cat $HOME/.bashrc查看到alias
sort< myfile.txt>myfile_dort.txt
特殊字符:
· 雙引號(“):用來使shell無法認出空格、製表符和其他大多數特殊字符,這樣”David Medinets“表示一個值,而不是2個同樣”David< Medinets"表示一個值。
· 單引號(’):用來使shell無法認出所有特殊字符
· 反引號(`):用來替換命令
· 反斜槓(\):用來使shell無法認出氣候的特殊字符,使其後的支付失去了特殊的含義,如 David \ Medinets
· 分號(;):允許在一行上放多個命令
· &:命令後臺執行
· 括號():創建成組的命令
· 大括號{}:創建命令塊
· 豎杆(|):管道表示符
· <> :表示重定向
· * ? [] !:表示模式匹配
· $:變量名的開頭
· #:表示註釋(第一行除外)
· 空格,製表符,換行符:當做空白