--- title: Linux 學習筆記 tags: Note, Linux --- # 前言 此為Linux學習記錄 ###### tags: `Linux` # 基礎 Linux command 隨手記錄一下linux command指令,免得久沒用都忘惹QQ ## 常用指令 - ```ls``` 顯示當前目錄下的檔案 - ```mkdir 資料夾的名稱``` 建立一個新的資料夾 - ```cd 路徑``` 移動到指定的路徑 - ```rm 檔案``` 移除檔案 - ```mv 原檔案/路徑 新檔案/路徑``` 檔案的移動與更名 - ```cp 原檔案/路徑 新檔案/路徑``` 複製檔案 > 在ubuntu中可以用快捷鍵`crtl+alt+t` 啟動terminal ## 檔案處理相關 ### 顯示當前目錄下的檔案 ``` ls ``` ### 顯示隱藏的檔案 ``` ls -a ``` ### 列出目錄下資料數量 src: https://iter01.com/575361.html ```bash # 列出目錄下檔案數量 ls -l <folder path> | grep "^-" | wc -l # 列出目錄下資料夾數量 ls -l <folder path> | grep "^d" | wc -l ``` ### 建立資料夾 ``` mkdir 檔案名 ``` 在當前路徑下建立一個新的資料夾,用ls確認有沒有成功建立。 ### 移動到指定路徑 ``` cd 路徑 ``` 冒號後面有告訴你當前路徑。 <img src="http://i.imgur.com/90BwrLF.png" style="width:50%"/> ### 啟動文字編輯器 ``` gedit 檔案名 ``` gedit是內建於ubuntu相對於windows下記事本的存在,在這裡我們用於建立測試用的檔案。 <img src="http://i.imgur.com/IY95axG.png" style="width:70%"/> ### 移動到上一層目錄 ```sh cd .. ``` <img src="http://i.imgur.com/2BxYhNP.png" style="width:50%"/> ### 檔案的移動或更名 ```sh mv 原檔案路徑 新檔案路徑 ``` 更名 ```mv 原檔案名 新檔案名``` <img src="http://i.imgur.com/ao01Mqk.png" style="width:50%"/> 移動`mv 檔案路徑 目錄路徑`可以不用打完整的路徑,預設的會是當前的目錄的路徑。 所以`mv 檔案名 目錄名`也通,不過前提是兩者皆在當前目錄下,或者可以 `mv 檔案名 目錄路徑`,任意排列組合。 <img src="http://i.imgur.com/jcFUWHd.png" style="width:50%"/> 移動後原檔案就消失了。 到資料夾裡面看看。 <img src="http://i.imgur.com/Ib0D57c.png" style="width:50%"> ### 移除檔案 ```sh rm 檔案 ``` <img src="http://i.imgur.com/wNmPTZW.png" style="width:50%"/> 使用```rm -r``` 移除資料夾 <img src="http://i.imgur.com/ppNjH8z.png" style="width:50%"/> ### 複製檔案 ```sh cp 欲複製的檔案 新複製的檔案 ``` <img src="http://i.imgur.com/kpjsFtl.png" style="width:50%"/> # 進階 Linux command ## `chattr` 設定檔案屬性,預防檔案被更改或刪除,尤其是`/etc`下的一些系統設定檔。 可以避免系統的套件管理程式在升級套件時改動到設定檔。 與 `chmod`, `chown` 差別在於,可以防止在使用 `root` 權限時誤刪檔案。只有將屬性拿掉才可以改動檔案。 - 設定檔案屬性 `chattr [-RVF] [+-=][attr] filename` 常用屬性如下: |Attribute|Explain| |:---:|---| |`i`|檔案不可被更動(immutable),不可寫入、刪除、建立連結檔等| |`a`|只能以附加方式寫入(Append only)| |`c`|自動壓縮(compressed),Linux核心自動把檔案壓縮後,再寫入硬碟,讀取內容時,linux核心也會自動解壓縮| |`d`|使用`dump`時,檔案會被排除| |`s`|安全刪除檔案(secure deletion),檔案被刪除時,系統將所有硬碟上的檔案內容用`0`取代,確保檔案資料確實刪除| |`A`|不要更新檔案存取時間(no atime updates)| |`C`|關閉copy-on-write| |`S`|檔案被更動時,馬上同步寫入硬碟(synchronous updates)| - 查看檔案屬性 `lsattr` ## `lsof` ##### **[src]:** [Linux 列出行程開啟的檔案,lsof 指令用法教學與範例](https://blog.gtwang.org/linux/linux-lsof-command-list-open-files-tutorial-examples/) 列出指定port ```bash lsof -i:port ``` ## `kill` > src: [在 Linux 中使用 kill、killall 與 xkill 等指令強迫關閉程式](https://blog.gtwang.org/linux/linux-kill-killall-xkill/) 可以透過`ps` 列出現在執行的程式,看到想終止的Process ID(PID) ```bash kill PID ``` 但有時候程式當掉時,上面的指令無法停止城市的執行,可以加下列指令強制停止: ```bash kill -9 PID ``` 其他 `kill` 常用參數: - `-2`:與`ctrl + C` 相同 - `-9`:強制停止程式執行 - `-15`:以正常的程序通知程式停止執行,為預設的訊號 - `-l`:列出所有可用指令參數 ## `killall` 不用查`PID`,可以直接用程式名稱終止 ```bash killall geth ``` `killall` 常用參數: - `-e`, `--exact`:process名稱完全比對成功才會終止程式,若process名稱超過15字元,其餘字元在系統中會被捨去,此時在預設情況下,`killall` 會把所有符合15字元的程式都終止掉,若加上`-e` 參數,則會跳過名稱過長的程式。 - `-I`, `--ignore-case`:比對名稱時,忽略大小寫 - `-i`, `--interactive`:終止程式前,以互動式詢問。 - `-l`, `--list`:列出所有參數 - `-r`, `--regexp`:使用常規表示法(regular expression)指定程式名稱 - `-u`, `--user`:只終止指定使用者所執行的程式 ## 檢視檔案編碼 有兩種參數 ```bash # mac os 可以用 --mine file --mime [filename] file -i [filename] ``` # SSH ## 解決 SSH 連線緩慢 ##### [參考資料]:[解決 SSH 登入很慢、很久的問題](https://www.puritys.me/docs-blog/article-426-%E8%A7%A3%E6%B1%BA-SSH-%E7%99%BB%E5%85%A5%E5%BE%88%E6%85%A2%E3%80%81%E5%BE%88%E4%B9%85%E7%9A%84%E5%95%8F%E9%A1%8C.html) SSH連線緩慢有可能是因為伺服器要做數次的 reverse DNS 導致。reverse DNS 就是將IP轉為hostname,SSHD server轉換ip成hostname後,會檢查client的ip與hostname是否一致,用於 hostname-based host authentication登入機制,但此機制一點也不安全,基本上可以直接取消此設定。 除此之外也可以將 GSSAPIAuthentication (Generic Security Services AP)停用。 - Linux 設定檔:`/etc/ssh/sshd_config` ```bash UseDNS no GSSAPIAuthentication no ``` - 重啟SSHD有以下方式(擇一): - `sudo service sshd restart` - `sudo systemctl restart sshd` - `sudo /etc/init.d/ssh restart`
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up