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

2050/01/01

在AWS下設定與安裝Ubuntu Linux



一、首先申請一個Amazon AWS帳戶

        (這裡就不贅述)

        網址:https://aws.amazon.com/tw/

二、登入AWS控制台

三、選擇EC2
四、運行 Launch Instance

五、開始安裝Ubuntu,Step 1


六、Step 2

七、Step 3


八、Step 4


九、Step 5


十、Step 6


十一、Step 7




















十二、好! review完你就可以Launch了!


十三、記得申請並綁定 Elastic IP,這樣你的IP才能固定下來




配置一個新的address:
 associate address to instance!
選你的instance
回到instance看~你就看到public IP 了










2015/04/14

在AWS下Ubuntu安裝vsftp

#安裝
sudo apt-get install vsftpd

#檢查是否啟動
netstat -tul | grep ftp

tcp        0      0 *:ftp                   *:*                     LISTEN

#修改設定
sudo vim /etc/vsftpd.conf

listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list

#添加名單中的使用者,才可以離開家目錄(給管理者用)
sudo vim /etc/vsftpd.chroot_list

user1
user2
... 以此類推

#重新啟動
sudo service vsftpd restart

2015/01/27

使用Ubuntu寫C++


---- 首先要先確定該有的套件都有了
我們需要安裝build-essential,以及編譯器g++
在終端機輸入以下這個指令安裝吧
$ sudo apt-get install g++ build-essential


---- 記得用g++的時候請在程式的最後按Enter多留一行空白行,不然會編譯時會顯示錯誤訊息:「檔案未以空白列結束(no newline at end of file)」


---- 程式寫好存成.cpp檔,接著就可以開始編譯了,例如我們把檔案存在
/home/a108210/cpp/
檔名叫
hello.cpp

那個hello world是因為示範用的程式碼是像這樣的:
#include
using namespace std;

int main()
{
   cout << "hello world\n"; return 0;
}


那我們打開終端機,輸入
$ sudo g++ /home/a108210/cpp/hello.cpp -o /home/a108210/cpp/hello.out -Wall

這個指令可以拆開來看
g++ /home/a108210/cpp/hello.cpp -o /home/a108210/cpp/hello.out -Wall

g++:這是編譯器compiler
/home/a108210/cpp/hello.cpp:這是cpp檔案所在位置
-o /home/a108210/cpp/hello.out:-o參數後面接的就是要輸出的檔案的位置+名稱,如你所見這邊是/home/a108210/cpp/hello.out
-Wall:加這個的目的是讓他把所有的警告訊息都顯示出來,免得他覺得不重要的訊息就自動隱藏了
接下來你就會看到檔案hello.out已經編譯好熱騰騰的躺在/home/a108210/cpp/裏面了


---- 接下來我們切換到檔案所在的位置,在終端機輸入:
$ cd /home/a108210/cpp/


---- 執行程式吧,輸入:
$ sudo ./hello.out

linux中發生.bash的command error (ls .... 等)

當你開啟終端機,下了命令ls .... 等,都得到command error,代表路徑設定錯誤!


$ sudo vim .bash_profile

vi 環境下:
export PATH={PATH}:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin



# Setting PATH for Python 2.7 & ant
# The orginal version is saved in .bash_profile.pysave

PATH="/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:Users/Bruce/ant/bin:/Library/Frameworks/Python.framework/Versions/2.7/bin:${PATH}"
export PATH

使用 netstat 檢查不尋常連線

netstat:
是一個十分好用的網絡管理工具,而其中一個用途是查看不尋常連線,例如當一個 IP 發送大量連線到伺服器,那麼伺服器很大機會是否遭受 DoS 或 DDoS 攻擊。

以下是一些實用的 netstat 語法,可以檢查主機的連線數量:

$ netstat -na
顯示主機上所有已建立的連線。

$ netstat -an | grep :80 | sort
顯示所有 port 80 的連線,並把結果排序。

$ netstat -n -p|grep SYN_REC | wc -l
列出主機上有多少個 SYNC_REC,一般上這個數字應該相當低。

$ netstat -n -p | grep SYN_REC | sort -u
同樣是列出 SYNC_REC,但不只列出數字,而是將每個 SYNC_REC 的連線列出。

$ netstat -n -p | grep SYN_REC | awk ‘{print $5}’ | awk -F: ‘{print $1}’
列出發送 SYNC_REC 的所有 ip 位址。

$ netstat -ntu | awk ‘{print $5}’ | cut -d: -f1 | sort | uniq -c | sort -n
計算每一個 ip 在主機上建立的連線數量。

$ netstat -anp |grep ‘tcp|udp’ | awk ‘{print $5}’ | cut -d: -f1 | sort | uniq -c | sort -n
列出從 TCP 或 UDP 連線到主機的 ip 的數量。

$ netstat -ntu | grep ESTAB | awk ‘{print $5}’ | cut -d: -f1 | sort | uniq -c | sort -nr
列出每個 ip 建立的 ESTABLISHED 連線數量。

$ netstat -plan|grep :80|awk {‘print $5′}|cut -d: -f 1|sort|uniq -c|sort -nk 1

列出每個 ip 建立的 port 80 連線數量。

Ubuntu常用命令與技巧

$ sudo tasksel 使用tasksel 開始安裝

$ sudo nautilus 打開文件(有root權限)

$ su root 切換到“root”

$ ls 列出當前目錄文件(不包括隱含文件)
$ ls -a 列出當前目錄文件(包括隱含文件)
$ ls -l 列出當前目錄下文件的詳細資訊
$ cd .. 回當前目錄的上一級目錄
$ cd - 回上一次所在的目錄
$ cd ~ 或 cd 回當前使用者的宿主目錄
$ mkdir 目錄名 創建一個目錄
$ rmdir 空目錄名 刪除一個空目錄
$ rm 文件名 文件名 刪除一個文件或多個文件
$ rm -rf 非空目錄名 刪除一個非空目錄下的一切
$ mv 路經/文件 /經/文件 移動相對路經下的文件到絕對路經下
$ mv 文件名 新名稱 在當前目錄下改名
$ find 路經 -name “字符串” 搜尋路經所在範圍內滿足字符串匹配的文件和目錄

$ chown chown root /home 把/home的屬主改成root使用者
$ chgrp chgrp root /home 把/home的屬組改成root組
$ Useradd 創建一個新的使用者
$ Groupadd 組名 創建一個新的組
$ Passwd 使用者名 為使用者創建密碼
$ Passwd -d使用者名 刪除使用者密碼也能登陸
$ Passwd -S使用者名 查詢賬號密碼
$ Usermod -l 新使用者名 老使用者名 為使用者改名
$ Userdel–r 使用者名 刪除使用者一切

$ tar -c 創建包 –x 釋放包 -v 顯示命令過程 –z 代表壓縮包
$ tar –cvf benet.tar /home/benet 把/home/benet目錄打包
$ tar –zcvf benet.tar.gz /mnt 把目錄打包並壓縮
$ tar –zxvf benet.tar.gz 壓縮包的文件解壓恢復
$ tar –jxvf benet.tar.bz2 解壓縮

$ make 編譯
$ make install 安裝編譯好的源碼包

$ reboot Init 6 重啟LINUX系統
$ Halt Init 0 Shutdown –h now 關閉LINUX系統

$ cat /etc/issue 查看ubuntu版本
$ lsusb 查看usb設備
$ sudo ethtool eth0 查看網卡狀態
$ cat /proc/cpuinfo 查看cpu資訊
$ lshw 查看當前硬體資訊
$ df -h 查看硬碟剩余空間
$ free -m 查看當前的記憶體使用情況
$ ps -A 查看當前有哪些進程
$ kill 進程號(就是ps -A中的第一列的數字)或者 killall 進程名( 殺死一個進程)
$ kill -9 進程號 強制殺死一個進程

常用apt命令:
$ sudo apt-get install 軟體名 安裝軟體命令
$ sudo apt-cache search package 搜索包 
$ sudo apt-cache show package 獲取包的相關資訊,如說明、大小、版本等
$ sudo apt-get install package 安裝包
$ sudo apt-get install package - - reinstall 重新安裝包
$ sudo apt-get -f install 修復安裝”-f = –fix-missing”
$ sudo apt-get remove package 刪除包
$ sudo apt-get remove package - - purge 刪除包,包括刪除配置文件等
$ sudo apt-get update 更新源
$ sudo apt-get upgrade 更新已安裝的包
$ sudo apt-get dist-upgrade 昇級系統
$ sudo apt-get dselect-upgrade 使用 dselect 昇級
$ sudo apt-cache depends package 了解使用依賴
$ sudo apt-cache rdepends package 是查看該包被哪些包依賴
$ sudo apt-get build-dep package 安裝相關的編譯環境
$ sudo apt-get source package 下載該包的源代碼
$ sudo apt-get clean && sudo apt-get autoclean 清理無用的包
$ sudo apt-get check 檢查是否有損坏的依賴
$ sudo apt-get clean 清理所有軟體緩存(即緩存在/var/cache/apt/archives目錄里的deb包 )
$ sudo apt-get autoremove 刪除系統不再使用的孤立軟體

使用 apt-get 指令移除軟體並清理遺留的垃圾:
在 Ubuntu 下移除某個軟體套件,使用的指令是 apt-get remove,例如:
$ sudo apt-get remove texlive-full

但由於先前安裝此套件,會一併自動安裝相依套件(dependencies),所以需要再用 autoremove 清理。
$ sudo apt-get autoremove

或是在 remove 時加參數:
$ sudo apt-get remove --auto-remove

但是這樣還不夠乾淨,因為預設的 remove 行為,會保留一些設定檔之類的遺物。所以需要用 purge 的方式移除。針對單一套件使用 purge 方式徹底移除:
$ sudo apt-get purge texlive-full
或
$ sudo apt-get remove --purge texlive-full
在使用 autoremove 時可以加上 --purge 參數,同時徹底移除套件。

$ sudo apt-get autoremove --purge
對於先前用 autoremove 或 remove 或其它方式移除,但還沒經過 purge 徹底移除的套件,使用 dpkg 指令可以列出清單:
$  dpkg -l | grep ^rc
其中 ^rc 代表行首以 rc 標示開頭,這是只有 remove 沒有 purge 的意思。
要批次移除這些被標為 rc 的套件,可以配合 grep + awk 指令。
$ dpkg -l | grep ^rc | awk '{ print $2 }'
指令組合後即可批次徹底移除這些殘留套件。
$ sudo apt-get purge `dpkg -l | grep ^rc | awk '{ print $2 }'`
如此,就可以讓系統稍微乾淨一點!

在AWS下Ubuntu安裝mysql

---- 安裝mysql
$ sudo apt-get install mysql-server mysql-client


---- 進入mysql console
$ sudo mysql -u root -p


---- 修​​改MySQL的設定檔my.cnf(windows 下為 my.ini)來進行一些設置的時候,修改完之後我們需要重啟MySQL。
my.cnf檔位置為:/ect/mysql/my.cnf
Waring:如果該檔配置錯誤,MySQL將無法啟動。


---- 三種方式對MySQL進行啟動/停止/重啟操作:
啟動mysql:
方式一:sudo /etc/init.d/mysql start
方式二:sudo start mysql
方式三:sudo service mysql start

停止mysql:
方式一:sudo /etc/init.d/mysql stop
方式二:sudo stop mysql
方式san:sudo service mysql stop

重啟mysql:
方式一:sudo/etc/init.d/mysql restart
方式二:sudo restart mysql

方式三:sudo service mysql restart

在AWS下Ubuntu安裝Apache2 伺服器

---- 安裝 Apache2 伺服器
$ sudo apt-get install apache2


---- 配置 Apache2 伺服器
$ sudo vim /etc/apache2/sites-enabled/000-default.conf
找到 DocumentRoot 與 ScriptAlias 並修改如下:
(註:這兩個目錄可自己設定,但一定要存在)


# 指定放 HTML 文件的目錄
DocumentRoot  /var/www


# 指定 /cgi-bin/ 連接到 /var/www/html/cgi-bin/
# 也就是在這個目錄中的檔均被認作是 CGI 程式。
ScriptAlias  /cgi-bin/ /var/www/cgi-bin/


---- 重新啟動 Apache2 伺服器
$ sudo /etc/init.d/apache2 restart