css

顯示具有 Linux 標籤的文章。 顯示所有文章
顯示具有 Linux 標籤的文章。 顯示所有文章

2013年7月27日 星期六

Vim 顯示行號

預設的vim不會顯示行號,
若要顯示行號可在Vim內,一般模式下輸入
 :set nu
即可顯示行號;


若要取消行號,一般模式下輸入
 :set nonu

此法只會套用當次的編輯狀態。


若要變成預設模式須修改 /etc/vimrc  ,
 vim /etc/vimrc 

空白行加入   set nu

存檔離開 
 :wq

即完成設定。

2013年7月4日 星期四

linux 各種解壓縮方法

.tar
解壓:tar xvf FileName.tar
壓缩:tar cvf FileName.tar DirName
(注:tar是包裹(把多個檔案合成一個),不是壓缩!)
---------------------------------------------
.gz
解壓1:gunzip FileName.gz
解壓2:gzip -d FileName.gz
壓缩:gzip FileName

.tar.gz
解壓:tar zxvf FileName.tar.gz
壓缩:tar zcvf FileName.tar.gz DirName
---------------------------------------------
.bz2
解壓1:bzip2 -d FileName.bz2
解壓2:bunzip2 FileName.bz2
壓缩: bzip2 -z FileName

.tar.bz2
解壓:tar jxvf FileName.tar.bz2
壓缩:tar jcvf FileName.tar.bz2 DirName
---------------------------------------------
.bz
解壓1:bzip2 -d FileName.bz
解壓2:bunzip2 FileName.bz
壓缩:未知

.tar.bz
解壓:tar jxvf FileName.tar.bz
壓缩:未知
---------------------------------------------
.Z
解壓:uncompress FileName.Z
壓缩:compress FileName

.tar.Z
解壓:tar Zxvf FileName.tar.Z
壓缩:tar Zcvf FileName.tar.Z DirName
---------------------------------------------
.tgz
解壓:tar zxvf FileName.tgz
壓缩:未知

.tar.tgz
解壓:tar zxvf FileName.tar.tgz
壓缩:tar zcvf FileName.tar.tgz FileName
---------------------------------------------
.zip
解壓:unzip FileName.zip
壓缩:zip FileName.zip DirName
---------------------------------------------
rar

安裝步驟

到網址 http://www.rarlab.com/rar_add.htm  選擇適合的版本

下載
wget  http://www.rarlab.com/rar/unrar-linux-x64.gz

解壓縮
gzip -d  unrar-linux-x64.gz

移動位置及更名
mv unrar-linux-x64 /usr/local/bin/unrar

加入執行屬性
 chmod a+x unrar

 使用
 解壓縮: unrar x FileName.rar


禁止從遠端(SSH)直接以ROOT身分登入:修改 /etc/ssh/sshd_config

1.編輯 /etc/ssh/sshd_config 檔案

   vim  /etc/ssh/sshd_config


2. 找到  #PermitRootLogin  yes   (約42行)

    將前面的註解# 拿掉, 改成   PermitRootLogin  no 


3.存檔 

  :wq


4.重新啟動SSH 

 service sshd restart

2013年7月1日 星期一

父shell 和 子 shell

父shell 和 子 shell



當執行一支shell script時, 父shell會根據script程式的第一行 #!之後所指定的shell程式,

開啟(fork)一個子shell環境,在子shell中執行此shell script。

一旦子shell中的script執行完畢.此子shell隨即結束,回到父shell中,不會影響shell原本的環境。




子shell和父shell 一樣,會開啟三個檔案, 標準輸入(鍵盤)、標準輸出(螢幕) 、標準錯誤(螢幕) ,

同時子shell會繼承父shell的若干變數值內容,這些變數稱為環境變數。




子shell還可以在開啟另一個子shell


每執行一份bash就進入下一層shell

如何知道目前是位於第幾層的shell:

echo $SHLVL



也可利用 ps axf  指令,觀察記憶體中,個行程之間的階層關係。



Bash script 除錯的方法

1.檢查script 語法


bash  -v   test.sh  參數

 

2.不執行,僅查看script程式碼


bash  -n  test.sh


3.追蹤script的執行


bash  -x test.sh


4. 強制變數一定要經過宣告才能使用


shopt -s -o nounset

啟用此選項,變數一定要宣告過才能使用,否則回應錯誤


5.在特定位置放置echo指令


放置echo在特定的位置,觀察變數內容,輸出的變化


Bash script 執行的方法

一.設定執行權


chmod  +x  script檔名  或   chmod  755 script檔名


二 .執行方法


1. 切換到script所在的目錄(此時稱之為工作目錄),執行script


cd /tmp/script
./test.sh


./ 代表在目前這麼工作目錄下,執行test.sh

 若不加上 ./  , 則會搜尋預設路徑,即環境變數PATH的路徑下有無此指令;
 若無則回應錯誤訊息



2.以絕對路徑方式,執行script :


/tmp/script/test.sh



3.使用bash 或 sh 來執行 script :       (此方法不用先設定script的執行權)


cd /tmp/script
bash  test.sh          或 sh test.sh


以上三種執行方式,會在執行時開啟一個子shell,在此子shell中執行完畢,返回原shell環境


4.直接在現行shell中執行


.  /tmp/script/test.sh 或

source /tmp/script/test.sh

2013年6月24日 星期一

字元集合與括號擴展

字元集合符號: 中括號 [  ]


放要比對的字元範圍

[abc]代表字元長度為1,可能為 a or b or c

常用的字元集合

[a-z]:英文小寫字母

[A-Z]:英文大寫字母

[a-zA-Z]:英文大小寫字母

[0-9]:數字

[a-zA-Z0-9]:英數字

[xyz]:x 或 y 或 z

- 代表字元的範圍,若欲把-當作集合的一份子,需將-放置於集合的開頭或結尾。



字元集合"非"的用法: 將 ! 放於集合的第一個位置

[!0-9]:不是數字
[!a-z]:不是英文小寫字母
[!A-Z]:不是英文大寫字母

若欲表示為驚嘆號需在!前加\ ,消除其"飛的意義";或是放在其他位置上。



字元集合內 . 及 * 兩個字元用法和正規表示式的用法不同。

[123.*] 表示 1 、2、 3、 .、 *  此五個字元的其中一個,無其他特殊含意。



括號擴展 : { }

用途:組合字串 .

{g,vs,s}ftp 代表gftp,vsftp,sftp。

mkdir -p {dir1,dir2,dir3}/{a,b,c}    在dir1~dir3目錄下,都建立a、b、c三個子目錄。





2013年6月22日 星期六

Unix-Like作業系統的檔案分類

  • 一般檔案:純文字檔,二進位檔。若該檔案具備執行權限,稱為執行檔。

  • 目錄:包含檔案的文件夾。

  • 設備檔:字元檔,區塊檔。主要是和周邊硬體連結,做為系統和硬體之間的溝通介面。

  • 內部行程通訊檔:Scoket檔,管線檔(Pipe/FIFO)兩種。

    Socket檔是內部行程通訊的一種特殊檔案,也可做為和遠端主機通訊的管道。

    管線檔是一種內部行程通訊的機制。一個行程把資料寫入Pipe中,另一個行程由

    Pipe讀取資料,資料採先進先出(FIFO)的次序,稱之為管線。 

  • 特殊檔:符號連結檔。符號連結檔稱為soft link或symbolic link,用以連結其他的檔案或目錄,可看成是一種檔案捷徑的概念。


  • 隱藏檔:檔案的第一個字元是 . 。隱藏檔可以是上述提到的任何一種檔案型態。

     
 不同的檔案型態,各有其代碼:

可使用 ls -l 來查看檔案的型態代碼 ; 或是用 file 檔案路徑。

型態代碼檔案類型
-一般檔案
d目錄
l符號連結檔
b區塊設備檔
c字元設備檔
sSocket檔
p管線檔


2013年6月15日 星期六

Centos Wake-on-Lan 設定

BIOS先設定完成


1.安裝ethtool

sudo yum -y install ethtool


2.設定由magic packet喚醒

sudo ethtool -s eth0 wol g 


3.確認設定完成
sudo ethtool  eth0

Wake-on:g


4. 寫入網卡設定檔,隨網卡啟動

sudo vim /etc/sysconfig/network-scripts/ifcfg-eth0
加入  ETHTOOL_OPTS="wol g"

2013年6月10日 星期一

chkconfig: 管理系統服務預設開機啟動與否

列出各項服務狀態       --list

chkconfig --list [服務名稱]
 
chkconfig --list | less     列出目前系統上面所有被 chkconfig 管理的服務
 
chkconfig --list vsftpd     列出vsftpd的開機啟動狀態


 
 
設定某個服務在該 level 下啟動 (on) 或關閉 (off)   --level
chkconfig [--level [0123456]] [服務名稱] [on|off]
 
chkconfig --level 345 vsftpd on     設定vsftpd在run level 345下開機啟動
 

2013年6月8日 星期六

linux 防火牆 iptable 控制

---------------------------------------------------------------------
關閉/停用 Linux Firewall (Red hat/CentOS/Fedora Core)

# /etc/init.d/iptables save 存檔

# /etc/init.d/iptables stop 停止


開機時停用防火牆

# chkconfig iptables off

-----------------------------------------------------------------------

開啟/啟動 Firewall (Red hat/CentOS/Fedora Core)

# /etc/init.d/iptables start

開機時啟動防火牆

# chkconfig iptables on

-------------------------------------------------------------------------
iptable設定檔位置: /etc/sysconfig/iptables

寫入目前iptables至設定檔

sudo iptables-save > /etc/sysconfig/iptables

2012年6月20日 星期三

DOS 與 Linux 的斷行字元

Windows 系統建立的檔案, 使用的斷行字元為 ^M$ ,稱為 CRLF 兩個符號;

 Linux 下僅有 LF ($) 這個斷行符號。



可使用
cat -A 檔案 或
od -t c 檔案        來觀察檔案內斷行符號的不同。




轉換方式

dos2unix [-kn] file [newfile]        windows格式轉為unix格式

unix2dos [-kn] file [newfile]        unix格式轉為windows格式



-k  :保留該檔案原本的 mtime 時間格式 (不更新檔案上次內容經過修訂的時間)
-n  :保留原本的舊檔,將轉換後的內容輸出到新檔案,如: dos2unix -n old new

ex: dos2unix -n old.txt new.txt




參考:鳥哥的linux私房菜