# Linux basic
---
## speaker : 郑.
- 南工資安社創辦人/社長
- 113 年度教育體系資安攻防演練之攻防檢測員
- 第九屆臺灣好厲駭
- CEH Master , CEH Practical , CEH
- [my blog](https://chengyunpu.com)
---

---
<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>
---

---
<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"}