BASH
Shell操作環境
|
|
/etc/issue | 登入前訊息檔 |
\d | 本地端時間日期 |
\l | 顯示第幾個tty (終端機介面) |
\m | 顯示硬體規格等級 |
\n | 顯示主機網路名稱 |
\o | 顯示domain name |
\r | 作業系統版本 |
\t | 顯示本地端時間 |
\s | 作業系統名稱 |
\v | 作業系統版本 |
sudo nano /etc/issue |
修改登入前的訊息
|
/etc/motd |
登入後訊息(RedHat
, Centos支援 ,
Ubuntu不支援)
|
sudo nano /etc/motd |
更改登入後訊息
|
sudo
nano /update-motd.d/99-hello
#!/bin/bash
echo '' Hello! My Friends
^^'' |
增加99-hello檔(檔案宣告一定是99-開頭)
, 以更改Ubuntu支援登入後訊息檔。
#!/bin/bash是宣告/bin/bash來執行以下命令
|
sudo chmod +x /update-motd.d/99-hello |
修改99-hello權限成可執行權限
|
/etc/profile | 環境變數設定檔(系統設定檔) |
sudo nano /etc/profile echo $USER |
在profile最後加上$USER這個環境變數, 不管誰登入都出現登入的使用者 |
~/.profile | Ubuntu個人環境設定檔 |
echo $BASH_VERSION |
傳回BASH的版本
|
[ -n ''BASH_VERSION''] echo $? |
|
echo $PS1 | 顯示題示字元 |
修改.bashrc | |
alias ping='ping -c 4' | 利用修改別名命令,修正ping次數為4次, c為count之意 |
alias ipconfig='/etc/update-motd.d/50-landscape-sysinfo' | 創建一個ipconfig命令去執行50-landscape-sysinfo程式 , 顯示一些網路的資訊 |
export PS1=”\u@\h:” | 將$改成:號 , 原先預設為\u@\h:\w\$ |
reboot, shutdown, halt |
開關機指令
|
sudo /sbin/shutdown -h 10 'I will shutdown after 10 mins' | 10分鐘後關機 |
sudo /sbin/shutdown -r 1 'I will reboot right now' |
1分鐘後重新開機
|
alias
bye='sudo /sbin/shutdown -h 3'
|
在.bashrc建立bye指令,執行3分鐘後關機
|
檔案目錄管理
mkdir, rmdir |
建立目錄,
移除目錄
|
cd, pwd |
切換目錄,
顯示目前目錄
|
mkdir tmp |
建立tmp目錄
|
cd tmp |
切換至tmp目錄
|
mkdir test |
建立test目錄
|
mkdir -p test1/test2 |
建立多層目錄,test1/test2
|
rmdir tmp |
移除tmp目錄
|
rmdir test |
移除test目錄
|
rmdir -p test1/test2 |
移除多層目錄,test1/test2
|
範例:建立,壓縮,移除目錄及檔案
$HOME/www
|
|----img
|
|----css
|
|----index.html |
|
建立檔案
|
|
sudo
nano mydir.sh
#!/bin/bash
mkdir
-p www/img
mkdir
-p www/css
touch
www/index.html
|
建立一個mydir.sh的bash
file
|
chmod +x mydir.sh |
改變mydir.sh權限為可以執行
|
. mydir.sh |
執行mydir.sh
|
壓縮檔案
|
|
sudo apt-get install zip |
安裝zip套件
|
zip www.zip www/* |
壓縮目前底下的www目錄及裡面所有的檔案及目錄
|
查詢www目錄是否存在,如果存在回傳0,如果不存在回傳1
|
|
nano ckdir.sh
|
|
#!/bin/bash
[ -d www ] &&
echo “www directory is exit !!” && exit
|
|
./ckdir.sh
|
|
移除目錄及檔案
|
|
rm -r www |
移除www目錄及檔案
|
$HOME/www
|
|----img
|
|----css
|
|----index.html
將原先在www路徑下的index.html檔案copy至tmp目錄下
$HOME/tmp
|
|----index.html |
|
cp
www/index.html tmp/index.html
|
|
$HOME/.bashrc
將.bashrc此一檔案copy至tmp目錄下並更名為bashrc2
$HOME/tmp
|----basrc2 |
|
cp .bashrc
tmp/bashrc2
|
|
$/etc/*
將根目錄下etc目錄下的檔案及目錄拷貝至根目錄下的tmp目錄
$/tmp |
|
sudo cp -r
/etc /tmp
|
將整個/etc目錄下的檔案複製至/tmp目錄下
|
ll /tmp/etc
|
查看/etc的所有檔案都copy至/tmp路徑下
|
$/etc/*
將根目錄下etc目錄下的檔案及目錄,拷貝至根目錄下的tmp目錄
$HOME
|----tmp
|
|
sudo cp -r
/etc tmp
|
將整個/etc目錄下的檔案複製至tmp目錄下
|
ll tmp/etc
|
查看/etc的所有檔案都copy至tmp路徑下
|
sudo
apt-get install tree
|
安裝樹狀目錄檔,直接可以執行tree命令,顯示以下的目錄
|
群組設定,帳號加入群組
|
|
sudo
useradd -m -s /bin/bash a01
sudo
useradd -m -s /bin/bash a02
sudo
useradd -m -s /bin/bash b01
sudo
useradd -m -s /bin/bash b02
sudo
passwd a01
sudo
passwd a02
sudo
passwd b01
sudo passwd
b02
|
建立四個帳號,分別加入兩個群組aaa,
bbb
|
sudo
groupadd aaa
sudo groupadd
bbb
|
建立兩個群組aaa,
bbb
|
sudo nano
/etc/group
|
將a01,a02加入-->aaa群組
內容加入
aaa:x:1006:a01,a02
|
sudo nano
/etc/group
|
將b01,b02加入-->bbb群組
內容加入
bbb:x:1006:b01,b02
|
sudo groupdel
bbb
|
群組刪除
|
權限設定
|
|
sudo
cp .bashrc /home/a01
sudo
cp .bashrc /home/a02
sudo
cp .bashrc /home/b01
sudo cp
.bashrc /home/b02
|
原先就有.bashrc的檔案,複製相同的檔案,權限會繼承原來來源處
|
mkdir
mya01
chmod 777
mya01
|
給予所有操作權限
rwx
rwx rwx
[4+2+1]
[4+2+1] [4+2+1]
= 777
|
分別由兩個使用者(student:su
a02)登入,做檔案的設定及權限的修改
|
||
student
|
a02
|
|
touch
student.txt
|
mkdir
mya02
chmod 777
mya02
|
student使用者在其家目錄建立一個student.txt檔 a02的使用者建立一個mya02目錄,並更改目錄的使用權限為777 |
sudo cp
student.txt /home/a02
|
ll
|
從a02登入的畫面,所觀察的student.txt檔案權限為root
|
cp student.txt
/homea02/mya02
|
ll mya02
|
從a02登入的畫面,所觀察的student.txt檔案權限為student
|
更改擁有者
|
|
chown a02:aaa
mya02
|
修改mya02目錄的群組為aaa
|
su
a01
touch xyz.txt
|
切換至a01使用者(su
switch user)去a02的家目錄中新增xyz.txt,
無法新增;因為a01沒有權限去修改a02的家目錄及其檔案
|
cd
mya02
touch xyz2.txt
|
進入mya02目錄,因同屬aaa群組所以可以建立xyz2.txt
|
SBIT權限練習
|
|
$Home/mysbit
Student使用者在其家目錄建立mysbit目錄,設定SBIT權限(1777),允許其他人可讀可寫。
另外完成以下事項 :
1.
讓a01進到mysbit建檔Hello.txt,student刪除
2.
讓a01進到mysbit建檔Hello2.txt,a02刪除
3.
讓a01進到mysbit建檔Hello3.txt,a01刪除
|
|
Student mkdir mysbit chmod 1777 mysbit |
student使用者建立mysbit目錄,並更改權限為SBIT(Sticky
Bit),對目錄設定權限
|
a01 touch /home/student/mysbit/Hello.txt touch /home/student/mysbit/Hello2.txt touch /home/student/mysbit/Hello3.txt |
a01使用者(檔案擁有者)建立三個檔案 |
student rm mysbit/Hello.txt |
可以刪除Hello3.txt
|
a02 rm /home/student/mysbit/Hello2.txt |
無法刪除Hello2.txt
|
a01 rm /home/student/mysbit/Hello3.txt |
可以刪除Hello3.txt
|
結論 :
設定SBIT,只有資料的主人,及資料夾的主人,以及root可以做刪除
|
切換及使用root身分
|
|
sudo passwd
root
|
設定root的密碼
|
su root
|
切換至root身分
|
exit
|
離開root身分
|
su Δ
|
切換至root身分
|
exit
|
離開root身分
|
安裝建置啟動Apache
Server
|
|
sudo apt-get
install apache2
|
安裝Apache
Server
|
/etc/apache2/apache2.conf
|
Apache的設定檔 |
/etc/apache2/Site-enabled/
|
網頁預設安裝目錄在/var/www
|
sudo
/etc/init.d/apache2 stop
|
Stop Apache Server |
sudo
/etc/init.d/apache2 start
|
Start Apache Server |
sudo
/etc/init.d/apache2 restart
|
Restart Apache Server |
stat /var/www |
觀看網頁預設路徑的存取權限
|
sudo nano /var/www/index.html |
可以修改網頁
|