---
# System prepended metadata

title: LINUX
tags: [linux, ' server']

---

---
tags: linux, server
---
# LINUX
>[name=佳佑]
> [time=Wed, Mar 22, 2018 ][color=#2498a0]
___
### 連線學校伺服器(SSH):
ssh：學號@www1.pu.edu.tw
kitty：kitty.cs.pu.edu.tw 
___
### [linux 外部登入方法](https://www.pcsetting.com/devtools/77?page=0%2C0)
___
## 常用熱鍵
* 註解 
^ = Ctrl 例如：^C = Ctrl+C
```shell
^+c 結束程式
^+d 結束鍵盤輸入
```
## 
```
man 指令(用男人問指令)
```
```shell
whoami (就是Who Am I 查看當前使用者身份)
useradd -m -d home/87 87(創建使用者87在87資料夾下)
passwd 更改密碼
sudo passwd mary (更改mary的密碼)
su username (su就是Switch User的意濕，默認為最高管理者root)
```
```shell
ps     行程
ps -aux | grep cron 查詢所有程序，grep cron(比對cron字眼)
top 檢視CPU
```
```shell
echo 呼叫/寫入
echo 文字>檔案名字 (寫入文字到該檔案)
echo 文字>>檔案名字 (寫入文字到該檔案內容的尾端)
```
```shell
cd 切換資料夾
cd .. 移動到上一層
cd ~ 移動到家目錄
```
```shell
ls 顯示所在資料夾檔案
ls -l 顯示檔案所有資訊
ls -al 顯示所有檔案所有資訊
ls *.副檔名 (顯示副檔名類型檔案)
find 檔案名稱(或目錄) -mtime -時間(查詢時間以內更動過的檔案)
find 檔案名稱(或目錄) -mtime +時間(查詢時間以前更動過的檔案)
find /home 使用者 dmtsai(將屬於某個使用者的所有檔案找出來)
find / -nouser 這個指令，可以找出不太正常的檔案。
```
```shell
rm 刪除
rm -r 強制刪除
rm -rf (recursive force 遞迴 強迫) 也可刪除目錄請謹慎使用
rm abc** 刪除含有abc名稱的檔案
```
```shell
pwd 顯示當前目錄
```
```shell
mv 移動，或改名
cp 複製
```
```shell
mkdir 創建資料夾
mkdir -p 路徑 (建立多層目錄)
rmdir 刪除資料夾
ln /絕對位置  建立目錄捷徑
```
```shell
more 查看檔案內容(半開)
cat 查看檔案內容(全開)
cal 2000(西元) 查看日歷
```
```shell
 umask
    * umask xxx
    * 算法：
        * 目錄：umask和777做XOR後再做AND後，即可得到其權限
        * 檔案：umask和666做XOR後再做AND後，即可得到其權限
```
```shell
sudo apt-get install gcc(安裝雞吸吸)
sudo apt-get update (更新套件資料庫)
sudo apt-get upgrade(更新現有的所有套件)
```
```shell
wall 廣播
```

```shell
exit 離開
```
```shell
shutdown 關機
shutdown -h 立即關機
shutdown -r 重新開機
```
```shell
reboot 重新開機
```
```shell
alias abc='ls -l' 別名，建立abc指令實現ls -l 之功能
```
```
kill 62379(PID)關閉62379
kill -9 62379(PID)強制關閉62379
pkill abc 關閉名稱含有abc程式
killall abc 只關閉名稱少於15個字元的程式，若名稱超過15字，
            要加「-e」要求 killall 指令做完整比對，否則，
            還是會讓 killall 指令關錯
```
```
at        執行一次就結束的排程
    -m  ：排程結束後，即使沒有輸出訊息，以email通知使用者該工作已完成。
    -l  ：相當於 atq，列出目前系統上面的所有該使用者的 at 排程；
    -d  ：相當於 atrm ，可以取消一個在 at 排程中的工作；
    -v  ：可以使用較明顯的時間格式列出 at 排程中的工作列表；
    -c  ：可以列出後面接的該項工作的實際指令內容
atq 查詢排程
atrm 取消一個在 at 排程中的工作
````

```shell
crontab    無限循環排程(最小單位到分鐘，關機後無法執行)
        -e 編輯排程
        -l 查閱排程
        -r 移除排程
        
        代表意義    分鐘	小時	日期	月份	週	指令
        數字範圍    0-59	0-23	1-31	1-12	0-7	就指令啊
        
        *(星號)|代表任何時刻都接受！
        ,(逗號)|代表分隔時段。(可接受多個時段)
        -(減號)|代表一段時間範圍內， 
        /n(斜線)|n 代表數字，亦即是『每隔 n 單位間隔』的意思，
```
___
## 權限
<img src="https://i.imgur.com/nLkseze.png" width="400" height="350">

```shell
chmod u/g/o +/- r/w/x 檔案名稱(增加或減少權限)
chmod 777 檔案名稱(更改權限)
chmod u=rwx,g=rwx,o=rwx (ugo分別擁有哪種權限)
```
Sticky Bit(其他人可觀看但不可刪除)
```shell
chmod 1777 abc(更改abc權限為sticky bit)
chmod  o+t abc(增加abc權限為sticky bit)
```
 Umask(預設權限)
```shell
umask xxx
        * 算法：
        * 目錄：umask和777做XOR後再做AND後，即可得到其權限
        * 檔案：umask和666做XOR後再做AND後，即可得到其權限
```
___
## 程式編譯
* C語言in Linux
```shell
abc.c  ("文件"名稱)
gcc -o hello abc.c (將abc.c編譯成hello.exe)
./hello.exe (執行hello.exe) #不須空格
```

## Ubuntu
```shell
**安裝輕量版Ubuntu(LUbutu)**
* 網址：https://lubuntu.net/downloads/
* 建議安裝穩定版本(版本後綴為LTS)
```
```shell
**安裝虛擬機器Virtual Box**
* 網址：https://www.virtualbox.org
* 也可以用VMware 看個人～＃
```
都下載/安裝完之後，我也不知道要尬麻了 ==2018/3/22 AC==
___

## VI
```shell
* VI有分為兩種基本操作模式：
    * 指令模式
        * 按「a、e、i、o、u」任意字可進入編輯模式
    * 編輯模式
        * 左下方會出現 INSERT 字樣
        * 按「ESC」鍵，可退出至指令模式
* 在編輯模式下的上下左右鍵，功能不是你想像中的那樣ＸＤ
* 建議要跨行更改文字時，跳出至指令模式用「上下左右」鍵選字
* 指令：
    * :q 離開vi
    * :x 離開vi並儲存當前文件
    * 4yy 複製當前游標下四行內容
    * p 貼上複製內容
    * J(大寫哦) 將下行文字移到上面 類似backspace
    * $ 可以移動游標至該行最後一個字元
    * / 搜尋特定字串(往下找)
        * 按n可以跳到下一個符合搜尋結果
        * 如要搜尋9ab01.1 
            * 可使用n [0-9]**[0-9][0-9][.][0-9]
        * 往上找使用 「?」

```