# Linux basic --- ## speaker : 郑. - 南工資安社創辦人/社長 - 113 年度教育體系資安攻防演練之攻防檢測員 - 第九屆臺灣好厲駭 - CEH Master , CEH Practical , CEH - [my blog](https://chengyunpu.com) --- ![image](https://hackmd.io/_uploads/r1DGvlbAR.png) --- <div style="display: flex; padding: 0 0 0 40px"> <span>pwd</span> </div> ```bash= ubuntu@ubuntu:~$ pwd /home/ubuntu ``` <div style="display: flex; padding: 20px 0 0 40px"> <h5 style="font-size:30px;">回傳目前位置在"ubuntu"這位使用者的home(家)目錄</h5> </div> --- <div style="display: flex; padding: 0 0 0 40px"> <span>ls</span> </div> ```bash= ubuntu@ubuntu:~$ ls Desktop Documents Downloads Music Pictures Public snap Templates Video ``` <div style="display: flex; padding: 20px 0 0 40px"> <h5 style="font-size:30px;">回傳當前資料夾有Desktop Documents Downloads Music Pictures Public snap Templates Video</h5> </div> --- <div style="display: flex; padding: 0 0 0 40px"> <span>ls -la</span> </div> ```bash= ubuntu@ubuntu:~$ ls -la 總用量 88 drwxr-x--- 17 ubuntu ubuntu 4096 11月 23 21:34 . drwxr-xr-x 3 root root 4096 11月 23 20:34 .. -rw------- 1 ubuntu ubuntu 816 11月 27 20:20 .bash_history -rw-r--r-- 1 ubuntu ubuntu 220 11月 23 20:34 .bash_logout -rw-r--r-- 1 ubuntu ubuntu 3771 11月 23 20:34 .bashrc drwx------ 16 ubuntu ubuntu 4096 11月 27 19:57 .cache drwx------ 2 ubuntu ubuntu 4096 11月 23 21:58 .chewing drwx------ 16 ubuntu ubuntu 4096 11月 27 19:54 .config drwxr-xr-x 2 ubuntu ubuntu 4096 11月 27 19:48 Desktop drwxr-xr-x 2 ubuntu ubuntu 4096 11月 23 20:53 Documents drwxr-xr-x 2 ubuntu ubuntu 4096 11月 27 20:11 Downloads drwx------ 2 ubuntu ubuntu 4096 11月 23 21:23 .gnupg drwx------ 3 ubuntu ubuntu 4096 11月 23 20:53 .local drwxr-xr-x 2 ubuntu ubuntu 4096 11月 23 20:53 Music -rw-r--r-- 1 ubuntu ubuntu 363 11月 23 21:11 .pam_environment drwxr-xr-x 2 ubuntu ubuntu 4096 11月 23 20:53 Pictures -rw-r--r-- 1 ubuntu ubuntu 807 11月 23 20:34 .profile drwxr-xr-x 2 ubuntu ubuntu 4096 11月 23 20:53 Public drwx------ 6 ubuntu ubuntu 4096 11月 23 21:37 snap drwx------ 2 ubuntu ubuntu 4096 11月 23 21:23 .ssh -rw-r--r-- 1 ubuntu ubuntu 0 11月 23 21:34 .sudo_as_admin_successful drwxr-xr-x 2 ubuntu ubuntu 4096 11月 23 20:53 Templates drwxr-xr-x 2 ubuntu ubuntu 4096 11月 23 20:53 Videos untu 4096 11月 23 20:53 Videos ``` <div style="display: flex; padding: 20px 0 0 40px"> <h5 style="font-size:30px;">顯示隱藏檔案</h5> </div> --- <div style="display: flex; padding: 0 0 0 40px"> <span>cd /</span> </div> ```bash= ubuntu@ubuntu:~$ cd / ubuntu@ubuntu:/$ pwd / ubuntu@ubuntu:/$ ls bin boot cdrom dev etc home lib lib32 lib64 libx32 lost+found media mnt opt proc root run sbin snap srv swapfile sys tmp usr var ``` <div style="display: flex; padding: 20px 0 0 40px"> <h5 style="font-size:30px;">上面指令cd /切換到根目錄(不論任何位置)</h5> </div> --- <div style="display: flex; padding: 0 0 0 40px"> <span>cd ~</span> </div> ```bash= ubuntu@ubuntu:/$ cd ~ ubuntu@ubuntu:~$ pwd /home/ubuntu ubuntu@ubuntu:~$ ls Desktop Documents Downloads Music Pictures Public snap Templates Videos ``` <div style="display: flex; padding: 20px 0 0 40px"> <h5 style="font-size:30px;">cd 回到家目錄</h5> </div> --- <div style="display: flex; padding: 0 0 0 40px"> <span>cd 統整</span> </div> - `cd ..` 向上移動一層 - `cd /` 移動到根目錄 - `cd ../../../` 向上移動三層,以此類推 - `cd ~` 直接進到家目錄 <div style="display: flex; padding: 20px 0 0 40px"> <h5 style="font-size:30px;"></h5> </div> --- <div style="display: flex; padding: 0 0 0 40px"> <span>cat</span> </div> ```bash= bandit1@bandit:~$ ls file123 bandit1@bandit:~$ cat file123 rRGizSaX8Mk1RTb1CNQoXTcYZWU6lgzic ``` <div style="display: flex; padding: 20px 0 0 40px"> <h5 style="font-size:30px;">顯示檔案內容</h5> </div> --- <div style="display: flex; padding: 0 0 0 40px"> <span>mkdir</span> </div> <p> </p> <div style="display: flex; padding: 0 0 0 40px"> <span style="font-size:30px;">語法</span> </div> ```bash= mkdir [options] directory_name ``` <div style="display: flex; padding: 0 0 0 40px"> <span style="font-size:30px;">directory_name:要建立的目錄名稱。</span> </div> <p> </p> <div style="display: flex; padding: 0 0 0 40px"> <span style="font-size:30px;">範例</span> </div> ```bash= mkdir new_directory ``` <div style="display: flex; padding: 20px 0 0 40px"> <h5 style="font-size:30px;">檔案系統中建立新的目錄</h5> </div> --- <div style="display: flex; padding: 0 0 0 40px"> <span>rmdir</span> </div> <p> </p> <div style="display: flex; padding: 0 0 0 40px"> <span style="font-size:30px;">語法</span> </div> ```bash= rmdir [options] directory_name ``` <div style="display: flex; padding: 0 0 0 40px"> <span style="font-size:30px;">directory_name:要刪除的目錄名稱。</span> </div> <p> </p> <div style="display: flex; padding: 0 0 0 40px"> <span style="font-size:30px;">範例</span> </div> ```bash= rmdir old_directory ``` <div style="display: flex; padding: 20px 0 0 40px"> <h5 style="font-size:30px;">刪除空目錄</h5> </div> --- <div style="display: flex; padding: 0 0 0 40px"> <span>rmdir -rf</span> </div> <p> </p> <div style="display: flex; padding: 0 0 0 40px"> <span style="font-size:30px;">語法</span> </div> ```bash= rmdir -rf directory_name ``` <div style="display: flex; padding: 0 0 0 40px"> <span style="font-size:30px;">directory_name:要刪除的目錄名稱。</span> </div> <p> </p> <div style="display: flex; padding: 0 0 0 40px"> <span style="font-size:30px;">範例</span> </div> ```bash= rmdir -rf new_directory ``` <div style="display: flex; padding: 20px 0 0 40px"> <h5 style="font-size:30px;">刪除包含檔案或子目錄的目錄</h5> </div> --- <div style="display: flex; padding: 0 0 0 40px"> <span>mv</span> </div> <p> </p> <div style="display: flex; padding: 0 0 0 40px"> <span style="font-size:30px;">語法</span> </div> ```bash= mv [options] source destination ``` <div style="display: flex; padding: 0 0 0 40px"> <span style="font-size:30px;"> source:要移動的檔案或目錄的來源路徑。</span> </div> <div style="display: flex; padding: 0 0 0 40px"> <span style="font-size:30px;"> destination:檔案或目錄的目標路徑。如果是目錄,則檔案或目錄會被移動到目標目錄中。</span> </div> <p> </p> <div style="display: flex; padding: 0 0 0 40px"> <span style="font-size:30px;">範例</span> </div> ```bash= mv file.txt destination/ ``` <div style="display: flex; padding: 20px 0 0 40px"> <h5 style="font-size:30px;">移動或重新命名檔案或目錄</h5> </div> --- <div style="display: flex; padding: 0 0 0 40px"> <span>file</span> </div> <p> </p> <div style="display: flex; padding: 0 0 0 40px"> <span style="font-size:30px;">語法</span> </div> ```bash= bandit4@bandit:~/inhere$ file /home/bandit4/inhere/* /home/bandit4/inhere/-file00: data /home/bandit4/inhere/-file01: data /home/bandit4/inhere/-file02: data /home/bandit4/inhere/-file03: data /home/bandit4/inhere/-file04: data /home/bandit4/inhere/-file05: data /home/bandit4/inhere/-file06: data /home/bandit4/inhere/-file07: ASCII text /home/bandit4/inhere/-file08: data /home/bandit4/inhere/-file09: data bandit4@bandit:~/inhere$ cat /home/bandit4/inhere/-file07 lrIWWI6bB37kxfiCQZqUdOIYfr6eEeqR ``` <div style="display: flex; padding: 20px 0 0 40px"> <h5 style="font-size:30px;">確定檔案類型</h5> </div> --- <div style="display: flex; padding: 0 0 0 40px"> <span>find</span> </div> <p> </p> <div style="display: flex; padding: 0 0 0 40px"> <span style="font-size:30px;">語法</span> </div> ```bash= bandit5@bandit:~/inhere$ ls maybehere00 maybehere02 maybehere04 maybehere06 maybehere08 maybehere10 maybehere12 maybehere14 maybehere16 maybehere18 maybehere01 maybehere03 maybehere05 maybehere07 maybehere09 maybehere11 maybehere13 maybehere15 maybehere17 maybehere19 bandit5@bandit:~/inhere$ find -type f -size 1033c ! -executable ./maybehere07/.file2 bandit5@bandit:~/inhere$ cat maybehere07/.file2 P4L4vucdmLnm8I7Vl7jG1ApGSfjYKqJU ``` <div style="display: flex; padding: 0 0 0 40px"> <span style="font-size:30px;"> - `-type f` 找尋的對象是檔案 - `-type d` 找尋的對象是目錄 - `-size 1033c` 檔案大小為 1033 個位元 - `! -executable` 檔案不具有可執行權限 - `-executable` 檔案具有可執行權限 </span> </div> <p> </p> <div style="display: flex; padding: 20px 0 0 40px"> <h5 style="font-size:30px;"> 尋找檔案</h5> </div> --- <div style="display: flex; padding: 0 0 0 40px"> <span>grep</span> </div> <p> </p> <div style="display: flex; padding: 0 0 0 40px"> <span style="font-size:30px;">語法</span> </div> ```bash= grep [選項] 模式 [文件] ``` <div style="display: flex; padding: 0 0 0 40px"> <span style="font-size:30px;">範例</span> </div> ```bash= # 搜索包含特定模式的行 grep "pattern" file.txt # 遞迴搜索文件夾中的所有文件 grep -r "pattern" /path/to/directory ``` <div style="display: flex; padding: 0 0 0 40px"> <span style="font-size:30px;"> - -B 2 : 顯示包括前兩行 - -A 3 : 顯示包括後三行 - -i:不區分大小寫 - -r:遞迴搜索 - -n:顯示行號 </span> </div> <p> </p> <div style="display: flex; padding: 20px 0 0 40px"> <h5 style="font-size:30px;">搜索文件中與指定模式匹配的文本行</h5> </div> --- <div style="display: flex; padding: 0 0 0 40px"> <span>chmod</span> </div> ```bash chmod [options] mode file ``` <div style="display: flex; padding: 0 0 0 40px"> <span style="font-size:30px;">mode:要設定的權限模式。</span> </div> <p> </p> <div style="display: flex; padding: 0 0 0 40px"> <span style="font-size:30px;">範例</span> </div> ```bash chmod 755 script.sh ``` <div style="display: flex; padding: 20px 0 0 40px"> <h5 style="font-size:30px;">修改檔案或目錄的權限</h5> </div> --- ![image](https://hackmd.io/_uploads/Hyzp4eKCR.png) --- <div style="display: flex; padding: 0 0 0 40px"> <span>ps</span> </div> ```bash ps [options] ``` <div style="display: flex; padding: 0 0 0 40px"> <span style="font-size:30px;">範例</span> </div> ```bash ps aux ``` <div style="display: flex; padding: 20px 0 0 40px"> <h5 style="font-size:30px;">顯示當前正在執行的進程</h5> </div> --- <div style="display: flex; padding: 0 0 0 40px"> <span>ssh</span> </div> ```bash ssh [user]@[host] ``` <div style="display: flex; padding: 0 0 0 40px"> <span style="font-size:30px;">user:要登入的使用者名稱。</span> </div> <div style="display: flex; padding: 0 0 0 40px"> <span style="font-size:30px;">host:遠端伺服器的IP地址或域名。</span> </div> <p> </p> <div style="display: flex; padding: 0 0 0 40px"> <span style="font-size:30px;">範例</span> </div> ```bash ssh root@192.168.1.100 ``` <div style="display: flex; padding: 20px 0 0 40px"> <h5 style="font-size:30px;">透過 SSH 登入遠端伺服器</h5> </div> --- <div style="display: flex; padding: 0 0 0 40px"> <span>nc (netcat)</span> </div> ```bash nc [options] [host] [port] ``` <div style="display: flex; padding: 0 0 0 40px"> <span style="font-size:30px;">範例</span> </div> ```bash nc -lvp 1234 ``` <div style="display: flex; padding: 20px 0 0 40px"> <h5 style="font-size:30px;">開啟一個 Netcat 監聽端口,用於接收資料</h5> </div> --- <div style="display: flex; padding: 0 0 0 40px"> <span>curl</span> </div> ```bash curl [options] [URL] ``` <div style="display: flex; padding: 0 0 0 40px"> <span style="font-size:30px;">範例</span> </div> ```bash curl https://example.com ``` <div style="display: flex; padding: 20px 0 0 40px"> <h5 style="font-size:30px;">從指定 URL 瀏覽網頁</h5> </div> --- <div style="display: flex; padding: 0 0 0 40px"> <span>wget</span> </div> ```bash wget [options] [URL] ``` <div style="display: flex; padding: 0 0 0 40px"> <span style="font-size:30px;">範例</span> </div> ```bash wget https://example.com/file.zip ``` <div style="display: flex; padding: 20px 0 0 40px"> <h5 style="font-size:30px;">下載指定 URL 的檔案</h5> </div> --- <div style="display: flex; padding: 0 0 0 40px"> <span>sudo</span> </div> ```bash sudo [command] ``` <div style="display: flex; padding: 0 0 0 40px"> <span style="font-size:30px;">範例</span> </div> ```bash sudo apt update ``` <div style="display: flex; padding: 20px 0 0 40px"> <h5 style="font-size:30px;">以超級使用者身份執行命令</h5> </div> --- <div style="display: flex; padding: 0 0 0 40px"> <span>apt install</span> </div> ```bash sudo apt install [package_name] ``` <div style="display: flex; padding: 0 0 0 40px"> <span style="font-size:30px;">package_name:要安裝的軟體包名稱。</span> </div> <p> </p> <div style="display: flex; padding: 0 0 0 40px"> <span style="font-size:30px;">範例</span> </div> ```bash sudo apt install python3 ``` <div style="display: flex; padding: 20px 0 0 40px"> <h5 style="font-size:30px;">使用 APT 安裝套件</h5> </div> --- <div style="display: flex; padding: 0 0 0 40px"> <span>pip</span> </div> ```bash pip install [package_name] ``` <div style="display: flex; padding: 0 0 0 40px"> <span style="font-size:30px;">package_name:要安裝的 Python 套件名稱。</span> </div> <p> </p> <div style="display: flex; padding: 0 0 0 40px"> <span style="font-size:30px;">範例</span> </div> ```bash pip install requests ``` <div style="display: flex; padding: 20px 0 0 40px"> <h5 style="font-size:30px;">使用 pip 安裝 Python 套件</h5> </div>
{"title":"linux basic","contributors":"[{\"id\":\"bcd78e13-3825-469c-86c2-be3e8a728fbb\",\"add\":13559,\"del\":725}]","showTags":"false","description":"linux basic","image":"https://hackmd.io/_uploads/rk0h5eY0R.png"}
    213 views