2015年4月26日 星期日

suPhp

http://blog.sinjakli.co.uk/2009/05/27/wordpress-with-suphp/




apt-get install apache2 php5 mysql-server libapache2-mod-suphp
Having followed the WordPress installation guide you should have a working database (I sort of recommend phpmyadmin for this, especially if you want to do this in a GUI) and configuration. Now for the important part. You need to configure suPHP, and to be honest this is almost completely trivial.  First enable the module:
a2enmod suphp
Then edit the suphp config file at /etc/suphp/suphp.conf so that it contains either the line:
check_vhost_docroot=true
or the line:
docroot=/path/to/your/docroot/
The first will allow suPHP to run anywhere you define a DocumentRoot in your Apache vhost, the latter will allow you to point suPHP to a specified DocumentRoot.


2015年4月24日 星期五

mysql 詳細說明

無法查看此摘要。請 按這裡查看文章。

mysql 顯示使用者清單:新增使用者:給予權限:


顯示使用者清單:
mysql > select * from mysql.user;
會顯示全部列表,但不容易看得清楚。
只顯示 mysql 這個資料庫中 user 資料表的 Host 及 User 共2個欄位
mysql > select Host, User from mysql.user;



新增使用者:
mysql > create user 'UserName'@'Host' identified by 'Password';
給予某些權限 OPTION 如 SELECT,INSERT,UPDATE,DELETE,CREATE,DROP
TARGET 為指定資料庫
mysql > grant OPTION on TARGET to USER;
刪除使用者:
mysql > drop user 'UserName'@'Host';
新增使用者:
mysql > create user 'marry'@'localhost' identified by 'abcd2345';
mysql > create user 'marry'@'%' identified by 'abcd2345';
其中要注意的是使用者名稱跟指定來源主機的字串需要各別加單引號。


給予權限:
mysql > grant all on *.* to 'marry'@'localhost';
這樣 marry 對整個資料庫的所有資料表都擁有全部的權利
mysql > grant select,insert on myFirstDB.* to 'marry'@'localhost';
marry 只擁有對 myFirstDB 這個資料檔[的所有表格]的查詢及新增權利。

改變檔案擁有者, chown

  • 改變檔案擁有者, chown

範例:將install.log的擁有者改為bin這個帳號:
[root@www ~]# chown bin install.log
[root@www ~]# ls -l
-rw-r--r--  1 bin  users 68495 Jun 25 08:53 install.log

範例:將install.log的擁有者與群組改回為root:
[root@www ~]# chown root:root install.log
[root@www ~]# ls -l
-rw-r--r--  1 root root 68495 Jun 25 08:53 install.log

2015年4月22日 星期三

linux install lamp

sudo apt-get update
sudo apt-get install apache2
curl http://localhost
install MySql
apt-get install mysql-server libapache2-mod-auth-mysql php5-mysql
mysql_install_db
/usr/bin/mysql_secure_installation


install PHP
apt-get install php5 libapache2-mod-php5 php5-mcryp
sudo nano /etc/apache2/mods-enabled/dir.conf
<?php phpinfo(); ?>



from: https://www.digitalocean.com/community/tutorials/how-to-install-linux-apache-mysql-php-lamp-stack-on-ubuntu

How to Find your Server’s IP address

You can run the following command to reveal your server’s IP address.
ifconfig eth0 | grep inet | awk '{ print $2 }'

open website in terminal

[1] curl command - It is a tool to transfer data from or to a server using http/https/ftp and much more.
Tutorial details
DifficultyEasy (rss)
Root privilegesNo
Requirementscurl/wget
lynx/w3m
Estimated completion time10 minute
[2] lynx command - It is a fully-featured World Wide Web (WWW) client/browser for users running terminals.
[3] wget command - It is a free utility for non-interactive download of files from the Web. It supports HTTP, HTTPS, and FTP protocols, as well as retrieval through HTTP proxies.
[4] w3m command - It is a text based Web browser and pager.

$ sudo apt-get install curl wget lynx w3m

 
curl http://www.cyberciti.biz/
curl http://www.cyberciti.biz/faq/bash-for-loop/
 
lynx -dump www.cyberciti.biz
lynx -dump www.cyberciti.biz/faq/bash-for-loop/
 
wget -O - http://www.cyberciti.biz
wget -O - http://www.cyberciti.biz/faq/bash-for-loop/
 
w3m -dump http://www.cyberciti.biz/
w3m -dump http://www.cyberciti.biz/faq/bash-for-loop/
 

2015年4月21日 星期二

linux 安裝 ssh

只要 安裝  openssh 就可以 ,

sudo apt-get install ssh


在另一端連到
ssh peter@123.123.123.123

2015年4月19日 星期日

權限與指令間的關係:

我們知道權限對於使用者帳號來說是非常重要的,因為他可以限制使用者能不能讀取/建立/刪除/修改檔案或目錄! 在這一章我們介紹了很多檔案系統的管理指令,第六章則介紹了很多檔案權限的意義。在這個小節當中, 我們就將這兩者結合起來,說明一下什麼指令在什麼樣的權限下才能夠運作吧!^_^
一、讓使用者能進入某目錄成為『可工作目錄』的基本權限為何:
  • 可使用的指令:例如 cd 等變換工作目錄的指令;
  • 目錄所需權限:使用者對這個目錄至少需要具有 x 的權限
  • 額外需求:如果使用者想要在這個目錄內利用 ls 查閱檔名,則使用者對此目錄還需要 r 的權限。
二、使用者在某個目錄內讀取一個檔案的基本權限為何?
  • 可使用的指令:例如本章談到的 cat, more, less等等
  • 目錄所需權限:使用者對這個目錄至少需要具有 x 權限;
  • 檔案所需權限:使用者對檔案至少需要具有 r 的權限才行!
三、讓使用者可以修改一個檔案的基本權限為何?
  • 可使用的指令:例如 nano 或未來要介紹的 vi 編輯器等;
  • 目錄所需權限:使用者在該檔案所在的目錄至少要有 x 權限;
  • 檔案所需權限:使用者對該檔案至少要有 r, w 權限
四、讓一個使用者可以建立一個檔案的基本權限為何?
  • 目錄所需權限:使用者在該目錄要具有 w,x 的權限,重點在 w 啦!
五、讓使用者進入某目錄並執行該目錄下的某個指令之基本權限為何?
  • 目錄所需權限:使用者在該目錄至少要有 x 的權限;
  • 檔案所需權限:使用者在該檔案至少需要有 x 的權限
例題:
讓一個使用者 vbird 能夠進行『cp /dir1/file1 /dir2』的指令時,請說明 dir1, file1, dir2 的最小所需權限為何?
答:
執行 cp 時, vbird 要『能夠讀取來源檔,並且寫入目標檔!』所以應參考上述第二點與第四點的說明! 因此各檔案/目錄的最小權限應該是:
  • dir1 :至少需要有 x 權限;
  • file1:至少需要有 r 權限;
  • dir2 :至少需要有 w, x 權限。

例題:
有一個檔案全名為 /home/student/www/index.html ,各相關檔案/目錄的權限如下:
drwxr-xr-x 23 root    root    4096 Sep 22 12:09 /
drwxr-xr-x  6 root    root    4096 Sep 29 02:21 /home
drwx------  6 student student 4096 Sep 29 02:23 /home/student
drwxr-xr-x  6 student student 4096 Sep 29 02:24 /home/student/www
-rwxr--r--  6 student student  369 Sep 29 02:27 /home/student/www/index.html
請問 vbird 這個帳號(不屬於student群組)能否讀取 index.html 這個檔案呢?
答:
雖然 www 與 index.html 是可以讓 vbird 讀取的權限,但是因為目錄結構是由根目錄一層一層讀取的, 因此 vbird 可進入 /home 但是卻不可進入 /home/student/ ,既然連進入 /home/student 都不許了, 當然就讀不到 index.html 了!所以答案是『vbird不會讀取到 index.html 的內容』喔!

那要如何修改權限呢?其實只要將 /home/student 的權限修改為最小 711 ,或者直接給予 755 就可以囉! 這可是很重要的概念喔!

linux search : 檔案檔名的搜尋


we know the exact name 
find . -name myFile.txt
uncertain name

find . -name “myFile*”

directory

find  / -name "apt"



whereis 


whereis ifconfig 



  • locate


locate passwd



-i  :忽略大小寫的差異;
-r  :後面可接正規表示法的顯示方式


  • find
[root@www ~]# find / -mtime 0
# 那個 0 是重點!0 代表目前的時間,所以,從現在開始到 24 小時前,
# 有變動過內容的檔案都會被列出來!那如果是三天前的 24 小時內?
# find / -mtime 3 有變動過的檔案都被列出的意思!

範例二:尋找 /etc 底下的檔案,如果檔案日期比 /etc/passwd 新就列出
[root@www ~]# find /etc -newer /etc/passwd
# -newer 用在分辨兩個檔案之間的新舊關係是很有用的!
範例五:找出檔名為 passwd 這個檔案
[root@www ~]# find / -name passwd
# 利用這個 -name 可以搜尋檔名啊!

範例六:找出 /var 目錄下,檔案類型為 Socket 的檔名有哪些?
[root@www ~]# find /var -type s
# 這個 -type 的屬性也很有幫助喔!尤其是要找出那些怪異的檔案,
# 例如 socket 與 FIFO 檔案,可以用 find /var -type p 或 -type s 來找!

linux command output terminal console output line number: command | nl

command | nl

linux search console output : command | grep "abc"

linux search console output :  command | grep "abc"

2015年4月14日 星期二

DNS 教學說明

http://eservice.seed.net.tw/class/class08.html



什麼是DNS?
DNS全名Domain Name System「網域名稱系統」,其主要的目的是用來解釋網際網路上的電腦主機名稱與IP位址之間的關係,進而能正確的在網際網路上找到該主機並傳送正確的訊息。其實DNS在Internet的發展上是很重要的一環,在Internet的應用上,我們最常看到它的地方除了網路設定裡的DNS設定,其實我們用瀏覽器開啟網址,寄發E-mail都和Domain Name及DNS系統息息相關,網路上的位址是用IP來定址的,而如何從Domain Name看出正確的位址,就得靠DNS系統的運作。
有的人會將DNS伺服器視為是「DNS」,其實DNS伺服器不過是DNS「網域名稱系統」的一種工具,由DNS伺服器來完成DNS「網域名稱系統」,幫忙系統的運作正常,所以千萬不可以視為一體。DNS伺服器記錄了自己網域內的各種伺服器的主機名稱和IP位址,同時也提供DNS的查詢。
  • DNS全名Domain Name System(Service)DNS的功能,在網際網路中,電腦與電腦之間均以IP來辨識位址,而DNS網域名稱伺服器(Domain Name System)主要的功能就是建立Domain Name與IP的對應
  • DNS伺服器是執行DNS「網域名稱系統」的一種工具,由DNS伺服器來完成DNS「網域名稱系統」
一般我們熟悉的網址為二個部分組成:主機名稱跟網域名稱。如一般用戶要來瀏灠Seednet網頁,他會在網址內鍵入www.seed.net.tw,就可看到Seednet網站,實際上Seednet網站位址為139.175.1.10,至於如何建立www.seed.net.tw這個Domain Name與IP的對應,中間就需要有DNS Server來作對應了。




DNS的架構
DNS網域名稱的架構是採分散式處理的模式來分類,從根網域出發,分類出不同的分類網域環境,在每一個網域下又可再建立該網域的主機名稱,主機名稱下又可在延伸另一個子網域,整個樹狀結構我們稱為網域名稱空間(Domain Name Space)。


在台灣是由台灣網路資訊中心(TWNIC)來負責,以TWNIC為一個分類下的區域(Zone),向下再區分成企業所申請的區域(Zone),在區域中企業可以自訂自己的主機名稱和對應的IP。
在每個組織或區域的下面除了建立所要解釋的主機名稱外,還可以繼續往下延伸下去,建立次組織(Subzone)或次區域,即主網域下的子網域。DNS允許在往下的階層建立不同的組織以及不同組織下的主機名稱。

所以,我們可以從網域名稱,概略知道一些相關訊息,國內或是國外?來自那個國家?台灣(.tw)、日本(.jp)、香港(.hk)、中國(.cn)、澳洲(.au)、德國(.de)、英國(.uk)、加拿大(.ca)。是何總性質的機構?商業(.com)、教育(.edu)、政府(.gov)、組織(.org)、軍事(.ml)、網路支援中心(.net)。
舉例來說,當我們看到www.taipei.gov.tw的網域名稱,可以知道是台灣的網站,且屬於政府機構,沒錯!這正是台北市政府的網站。

DNS指向
所謂的DNS指向,是公告大家該網域是由哪台DNS伺服器來管理,所有關於該Domain Name的網路資料都記錄在該DNS主機,所以到該主要DNS伺服器上就可以查到,例如網站的實體位置或郵件伺服器的實際位址。當然啦!該DNS伺服器要確實連上Internet且DNS記錄要正確才行。
依照國際慣例,DNS系統指向必須指定二部DNS伺服器。其原因在於為確保網路運作順暢,當一部DNS有問題時,還要另一部DNS能夠找得到你的Domain Name,讓你的Domain Name能夠順利使用。除了保障你的Domain Name的正常使用,也保障所有網路人口查詢Domain Name的順暢。
如果網域名稱是.tw的,則必須在TWNIC完成上層DNS的指向(目前可透過域名代理廠商來做DNS指向)。如果是國外申請的網域名稱,則要向申請網域名稱的組織註冊DNS指向。
 







network internet connection diagnostic command

ping -p 8080 tw.yahoo.com


or




ping

command is the best way to test connectivity between two nodes.
ping tw.yahoo.com


dig
dig www.yahoo.com

traceroute

is a network troubleshooting utility which shows number of hops taken to reach destination also determine packets traveling path.
traceroute tw.yahoo.com

whois 

個指令可以查詢到當初註冊這個 domain 的使用者的相關資訊。不過,由於近年來很多網路資訊安全的問題,這個 whois 所提供的資訊真的是太詳細了
whois 111.111.111.111

nslookup

getting IP address form hostname
nslookup www.yahoo.com

netstat

查詢本機網路和外界網路連線的指令,可以透過這個指令查詢得知有沒有奇怪的連線在你的機
netstat –e 顯示網路的統計資訊,如 bytes 數和封包發送和接收的數量。
netstat –n 顯示活動TCP連線,但是 ip address和port編號沒有被解釋翻譯成為名稱。
Listing all ports (both TCP and UDP)
netstat -a | more

Listing TCP Ports connections
netstat -at

Listing UDP Ports connections
netstat -au

Listing all LISTENING Connections
netstat -l

Showing Statistics by Protocol
netstat -s

Displaying Kernel IP routing
netstat -r


2015年4月9日 星期四

password, /etc/passwd, /etc/shadow 教學, 結構



/etc/shadow



[root@www ~]# head -n 4 /etc/shadow
root:$1$/30QpE5e$y9N/D0bh6rAACBEz.hqo00:14126:0:99999:7:::  <==底下說明用
bin:*:14126:0:99999:7:::
daemon:*:14126:0:99999:7:::
adm:*:14126:0:99999:7:::


  1. 帳號名稱
    由於密碼也需要與帳號對應啊~因此,這個檔案的第一欄就是帳號,必須要與 /etc/passwd 相同才行!
  2. 密碼
    這個欄位內的資料才是真正的密碼,而且是經過編碼的密碼 (加密) 啦! 你只會看到有一些特殊符號的字母就是了!需要特別留意的是,雖然這些加密過的密碼很難被解出來, 但是『很難』不等於『不會』,所以,這個檔案的預設權限是『-rw-------』或者是『-r--------』,亦即只有 root 才可以讀寫就是了!你得隨時注意,不要不小心更動了這個檔案的權限呢!

    另外,由於各種密碼編碼的技術不一樣,因此不同的編碼系統會造成這個欄位的長度不相同。 舉例來說,舊式的 DES 編碼系統產生的密碼長度就與目前慣用的 MD5 不同(註2)!MD5 的密碼長度明顯的比較長些。由於固定的編碼系統產生的密碼長度必須一致,因此『當你讓這個欄位的長度改變後,該密碼就會失效(算不出來)』。 很多軟體透過這個功能,在此欄位前加上 ! 或 * 改變密碼欄位長度,就會讓密碼『暫時失效』了。 
  3. 最近更動密碼的日期
    這個欄位記錄了『更動密碼那一天』的日期,不過,很奇怪呀!在我的例子中怎麼會是 14126 呢?呵呵,這個是因為計算 Linux 日期的時間是以 1970 年 1 月 1 日作為 1 而累加的日期,1971 年 1 月 1 日則為 366 啦! 得注意一下這個資料呦!上述的 14126 指的就是 2008-09-04 那一天啦!瞭解乎? 而想要瞭解該日期可以使用本章後面 chage 指令的幫忙!至於想要知道某個日期的累積日數, 可使用如下的程式計算:
    [root@www ~]# echo $(($(date --date="2008/09/04" +%s)/86400+1))
    14126
    
    上述指令中,2008/09/04 為你想要計算的日期,86400 為每一天的秒數, %s 為 1970/01/01 以來的累積總秒數。 由於 bash 僅支援整數,因此最終需要加上 1 補齊 1970/01/01 當天。
  4. 密碼不可被更動的天數:(與第 3 欄位相比)
    第四個欄位記錄了:這個帳號的密碼在最近一次被更改後需要經過幾天才可以再被變更!如果是 0 的話, 表示密碼隨時可以更動的意思。這的限制是為了怕密碼被某些人一改再改而設計的!如果設定為 20 天的話,那麼當你設定了密碼之後, 20 天之內都無法改變這個密碼呦!
  5. 密碼需要重新變更的天數:(與第 3 欄位相比)
    經常變更密碼是個好習慣!為了強制要求使用者變更密碼,這個欄位可以指定在最近一次更改密碼後, 在多少天數內需要再次的變更密碼才行。你必須要在這個天數內重新設定你的密碼,否則這個帳號的密碼將會『變為過期特性』。 而如果像上面的 99999 (計算為 273 年) 的話,那就表示,呵呵,密碼的變更沒有強制性之意。
  6. 密碼需要變更期限前的警告天數:(與第 5 欄位相比)
    當帳號的密碼有效期限快要到的時候 (第 5 欄位),系統會依據這個欄位的設定,發出『警告』言論給這個帳號,提醒他『再過 n 天你的密碼就要過期了,請盡快重新設定你的密碼呦!』,如上面的例子,則是密碼到期之前的 7 天之內,系統會警告該用戶。
  7. 密碼過期後的帳號寬限時間(密碼失效日):(與第 5 欄位相比)
    密碼有效日期為『更新日期(第3欄位)』+『重新變更日期(第5欄位)』,過了該期限後使用者依舊沒有更新密碼,那該密碼就算過期了。 雖然密碼過期但是該帳號還是可以用來進行其他工作的,包括登入系統取得 bash 。不過如果密碼過期了, 那當你登入系統時,系統會強制要求你必須要重新設定密碼才能登入繼續使用喔,這就是密碼過期特性

    那這個欄位的功能是什麼呢?是在密碼過期幾天後,如果使用者還是沒有登入更改密碼,那麼這個帳號的密碼將會『失效』, 亦即該帳號再也無法使用該密碼登入了。要注意密碼過期與密碼失效並不相同
  8. 帳號失效日期
    這個日期跟第三個欄位一樣,都是使用 1970 年以來的總日數設定。這個欄位表示: 這個帳號在此欄位規定的日期之後,將無法再使用。 就是所謂的『帳號失效』,此時不論你的密碼是否有過期,這個『帳號』都不能再被使用! 這個欄位會被使用通常應該是在『收費服務』的系統中,你可以規定一個日期讓該帳號不能再使用啦!
  9. 保留
    最後一個欄位是保留的,看以後有沒有新功能加入。

/etc/passwd


我們先來看一下每個 Linux 系統都會有的第一行,就是 root 這個系統管理員那一行好了, 你可以明顯的看出來,每一行使用『:』分隔開,共有七個咚咚,分別是:
  1. 帳號名稱
    就是帳號啦!用來對應 UID 的。例如 root 的 UID 對應就是 0 (第三欄位);
  2. 密碼
    早期 Unix 系統的密碼就是放在這欄位上!但是因為這個檔案的特性是所有的程序都能夠讀取,這樣一來很容易造成密碼資料被竊取, 因此後來就將這個欄位的密碼資料給他改放到 /etc/shadow中了。所以這裡你會看到一個『 x 』,呵呵!
  3. UID
    這個就是使用者識別碼囉!通常 Linux 對於 UID 有幾個限制需要說給您瞭解一下:

    id 範圍該 ID 使用者特性
    0
    (系統管理員)
    當 UID 是 0 時,代表這個帳號是『系統管理員』! 所以當你要讓其他的帳號名稱也具有 root 的權限時,將該帳號的 UID 改為 0 即可。 這也就是說,一部系統上面的系統管理員不見得只有 root 喔! 不過,很不建議有多個帳號的 UID 是 0 啦~
    1~499
    (系統帳號)
    保留給系統使用的 ID,其實除了 0 之外,其他的 UID 權限與特性並沒有不一樣。預設 500 以下的數字讓給系統作為保留帳號只是一個習慣。

    由於系統上面啟動的服務希望使用較小的權限去運作,因此不希望使用 root 的身份去執行這些服務, 所以我們就得要提供這些運作中程式的擁有者帳號才行。這些系統帳號通常是不可登入的, 所以才會有我們在第十一章提到的 /sbin/nologin 這個特殊的 shell 存在。

    根據系統帳號的由來,通常系統帳號又約略被區分為兩種:
    1~99:由 distributions 自行建立的系統帳號;
    100~499:若使用者有系統帳號需求時,可以使用的帳號 UID。
    500~65535
    (可登入帳號)
    給一般使用者用的。事實上,目前的 linux 核心 (2.6.x 版)已經可以支援到 4294967295 (2^32-1) 這麼大的 UID 號碼喔!

    上面這樣說明可以瞭解了嗎?是的, UID 為 0 的時候,就是 root 呦!所以請特別留意一下你的 /etc/passwd 檔案!
  4. GID
    這個與 /etc/group 有關!其實 /etc/group 的觀念與 /etc/passwd 差不多,只是他是用來規範群組名稱與 GID 的對應而已!
  5. 使用者資訊說明欄
    這個欄位基本上並沒有什麼重要用途,只是用來解釋這個帳號的意義而已!不過,如果您提供使用 finger 的功能時, 這個欄位可以提供很多的訊息呢!本章後面的 chfn 指令會來解釋這裡的說明。
  6. 家目錄
    這是使用者的家目錄,以上面為例, root 的家目錄在 /root ,所以當 root 登入之後,就會立刻跑到 /root 目錄裡頭啦!呵呵! 如果你有個帳號的使用空間特別的大,你想要將該帳號的家目錄移動到其他的硬碟去該怎麼作? 沒有錯!可以在這個欄位進行修改呦!預設的使用者家目錄在 /home/yourIDname
  7. Shell
    我們在第十一章 BASH 提到很多次,當使用者登入系統後就會取得一個 Shell 來與系統的核心溝通以進行使用者的操作任務。那為何預設 shell 會使用 bash 呢?就是在這個欄位指定的囉! 這裡比較需要注意的是,有一個 shell 可以用來替代成讓帳號無法取得 shell 環境的登入動作!那就是 /sbin/nologin 這個東西!這也可以用來製作純 pop 郵件帳號者的資料呢!












bash 使用

http://fanqiang.chinaunix.net/a4/b1/20010525/090401225_b.html

"Hello world" Shell Script 
照傳統程式教學例,這一節介紹Shell Script的"Hello World"如何撰寫。 



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

#!/bin/sh 
# Filename : hello 
echo "Hello world!" 

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

大家應該會注意到第一行的"#!/bin/sh"。在UNIX下,所有的可執行Script,不管是那一種語言,其開頭都是"#!",例如Perl是"#!/usr/bin/perl",tcl/tk是"#!/usr/bin/wish",看您要執行的Script程式位置在那裡。您也可以用"#!/bin/bash"、"#!/bin/tcsh"等等,來指定使用特定的Shell。 
echo是個bash的內建指令。 



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

接下來,執行hello這個script: 
要執行一個Script的方式有很多種。 



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

第一種 : 將hello這個檔案的權限設定為可執行。 
[foxman@foxman bash]# chmod 755 hello 
執行 
[foxman@foxman bash]# ./hello 
hello world 



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

第二種 : 使用bash內建指令"source"或"."。 
[foxman@foxman bash]# source hello 
hello world 
或 
[foxman@foxman bash]# . hello 
hello world 



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

第三種 : 直接使用sh/bash/tcsh指令來執行。 
[foxman@foxman bash]# sh hello 
hello world 
或 
[foxman@foxman bash]# bash hello 
hello world 



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

Bash執行選項 

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

-c string : 讀取string來當命令。 
-i : 互動介面。 
-s : 由stdin讀取命令。 
- : 取消往後選項的讀取。 
-norc : 不要讀~/.bashrc來執行。 
-noprofile : 不要讀/etc/profile、~/.bash_profile、~/.bash_login、~/.profile等等來執行。 
-rcfile filename : 執行filename,而非~/.bashrc 
-version : 顯示版本。 
-quiet : 啟動時不要哩唆。 
-login : 確保bash是個login shell。 
-nobraceexpansion : 不要用curly brace expansion({}符號展開)。 
-nolineediting : 不用readline來讀取命令列。 
-posix : 改採Posix 1003.2標準。 
(http://www.fanqiang.com
    進入【UNIX論壇

vi

*
:x<Return>quit vi, writing out modified file to file named in original invocation
:wq<Return>quit vi, writing out modified file to file named in original invocation
:q<Return>quit (or exit) vi*
:q!<Return>quit vi even though latest changes have not been saved for this vi call





*
i insert text before cursor, until <Esc> hit
insert text at beginning of current line, until <Esc> hit

*
append text after cursor, until <Esc> hit
append text to end of current line, until <Esc> hit

*
open and put text in a new line below current line, until <Esc> hit

*
open and put text in a new line above current line, until <Esc> hit





2015年4月8日 星期三

more、less 當檔案內容太多時,可以使用這兩個指令讓我們慢慢翻頁看。

 more、less 當檔案內容太多時,可以使用這兩個指令讓我們慢慢翻頁看。 

cat, nl 中找文字, 字串 string search find

$ cat file.log | grep "something"


  • cat  由第一行開始顯示檔案內容
  • tac  從最後一行開始顯示,可以看出 tac 是 cat 的倒著寫!
  • nl   顯示的時候,順道輸出行號!
  • more 一頁一頁的顯示檔案內容
  • less 與 more 類似,但是比 more 更好的是,他可以往前翻頁!
  • head 只看頭幾行
  • tail 只看尾巴幾行
  • od   以二進位的方式讀取檔案內容!
修改檔案時間或建置新檔: touch

head, tail

Given a list of text lines in a file, to display the first 10 lines:
To display the last 10 lines:
  • cat  由第一行開始顯示檔案內容
  • tac  從最後一行開始顯示,可以看出 tac 是 cat 的倒著寫!
  • nl   顯示的時候,順道輸出行號!
  • more 一頁一頁的顯示檔案內容
  • less 與 more 類似,但是比 more 更好的是,他可以往前翻頁!
  • head 只看頭幾行
  • tail 只看尾巴幾行
  • od   以二進位的方式讀取檔案內容!

host, nslookup, dig - 測試 DNS 的程式有很多,我們先來使用最簡單的 host 吧

 nslookup 

nslookup 可單純的將 hostname 與 IP 對應列出而已,不過,還是會將查詢的 DNS 主機的 IP 列出來的

>nslookup mail.hmes.kh.edu.tw
伺服器:  UnKnown
Address:  163.28.136.2
名稱:    mail.hmes.kh.edu.tw
Addresses:  2001:288:829f:1::4
163.32.225.4






Traceroute - 電腦所走的路徑

一、What's Traceroute ? 
每個連接在 Internet 上的設備,如 Webserver、Router、Client...等一般情形下都會有一組獨立的IP Address。透過Traceroute 我們可以得知封包(Packet)從你的電腦到網路另一端的電腦所走的路徑。當然每次封包從相同的出發點(source)傳送到相同的目的地(destination)所走的路徑都有所不同,但大致上來說絕大部分所走的路徑是相同的。在 Linux 系統中,我們稱為Traceroute, 在Microsoft Windows中稱為 Tracert。 Traceroute送出的封包抵到目的設備後,一直到其返回,來測量其所需的時間。 
一條路徑上的每個設備Traceroute 測試 3 次。輸出結果中包含每次測試的時間(ms)和設備的名稱(如有的話)及IP Address。 

netstat

顯示目前TCP 的連線狀態

* 顯示目前TCP應用程式所使用的Port

教學 虛擬 IP 實體

第一個觀念: IP有分虛擬跟實體。 虛擬IP只在區域網路有效,實體IP對所有人都有效。 第二個觀念: IP有分固定跟動態。 固定IP就是你每次上網IP是固定的,而動態IP則是會更動。

2015年4月1日 星期三

3.3.1 新增與刪除使用者

在 Linux 底下跟使用者帳號管理相關的指令有:

useradd USERNAME        增加一名為USERNAME的帳號
userdel USERNAME        刪除USERNAME這個帳號
passwd [USERNAME]    更改USERNAME的密碼,若無參數,則改自己的密碼。
finger USERNAME[@HOSTNAME]    查詢使用者資料
chfn [USERNAME]        更動使用者USERNAME的資料,若無參數,則改自己的資料。


========================================================

[root@h2 /root]# useradd cle
[root@h2 /root]# passwd cle
Changing password for user cle
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated suc
cessfully
[root@h2 /root]#

"finger" 指令則可以查詢使用者的基本資料,例如:

[root@h2 /root]# finger cle
Login: cle                 Name:
Directory: /home/cle        Shell: /bin/bash
Never logged in.
No mail.
No Plan.
[root@h2 /root]#