Linux指令II & vim

專案建置[2]

講師:溫室蔡、乘一、田鼠

Linux指令(2)

ㄟ對,我抄上次簡報

找關鍵字?

grep : "globally search for regex and print it"

可以搜尋關鍵字,並顯示含有該字的句子

-i : 不分大小寫

-n : 標示行號

grep 關鍵字 檔案

但這個不算指令

| : pipe,將左邊的輸出當做右邊的輸入

與grep連用?

|

換關鍵字?

sed : "stream editor"的縮寫,替換字串

用法 : 命令/樣板/取代/旗幟

s/A/B/g : 把所有的A替換成B

sed

文件好長好麻煩?

less : 以分頁形式瀏覽文件

 

less

你自己試試看就知道了

找檔案?

find : 依要求搜尋檔案

-name : 返回同名檔案列表

-type : 返回與指定檔案類型相同的檔案列表

find 位置 選項 參數

獲取更高的權限

su:獲得root權限但位置不變

su - :獲得root權限並進入根目錄

su

對了用ctrl+d或打exit可以退出

那密碼ㄋ

如何設定root的密碼

  1. 輸入sudo passwd
  2. 輸入當前使用者密碼
  3. 設定root密碼(要重複輸入)

(後面的其他操作是在進入root

但是

在root權限的情況下使用指令可能會把電腦搞爆

所以執行單次指令的sudo是你更好的選擇

安全的使用root權限

su -c:獲得root權限但位置不變

sudo:獲得root權限並進入根目錄

su -c or sudo

那有那些東西會用到root權限ㄋ?

這是其中一個

但其實不是特別重要

useradd

  1. sudo useradd -m  username
  2. 輸入當前帳號密碼
  3. sudo passwd username
  4. 設立新帳戶密碼(重複輸入)

如何進入另一個帳號

su username

su username:切換到username帳號

解釋一下權限的設定

群組相關

groupadd、groupdel

sudo groupadd groupname:創建群組

sudo groupdel groupname:刪除群組

usermod  --gid groupname username:加入指定群組

usermod  --append --groups groupname username:加入指定副群組

groups username:查詢指定使用者所在群組

範例

改變檔案或資料夾權限

sudo chmod XXX(權限) 檔案名:

設定此檔案對各種對象的權限

chmod

非常模糊對吧

我也這麼覺得

範例

來用剛剛的另一個帳號看看20221102.txtㄅ

chown

改變檔案或資料夾所有權

sudo chown username 檔案或資料夾名

安裝東西~

apt

apt : "advanced package tool",套件管理員

install 套件名稱 : 安裝

remove 套件名稱 : 移除

update : 更新套件清單

upgrade : 更新

範例

neofetch

神奇東東

neofetch

下載東西~

wget 網址

wget : www + get,可以用網址下載東西

-O : 指定檔名

-i : 從檔案中讀取網址

指令好長好麻煩~

alias 別名="指令"

alias : 為指令取別名

-p : 列出所有別名及其對應的指令

unalias 指令 : 移除別名

指令好長好麻煩~

.bashrc

.bashrc : 開終端機時執行的指令們

Vim

傳說中的編輯器

什麼是 Vim

文字編輯器

跟 VS Code 是同類型的東西

沒有圖形介面

在終端機裡面執行

用不到滑鼠

全靠鍵盤快捷鍵來操控

反正先打開 Vim

# 開空檔案
$ vim

# 開啟現有的檔案
$ vim test.cpp

反正先打開 Vim

欸我要怎麼出去

Vim 的四種模式

NORMAL

快捷鍵

INSERT

打字

COMMAND

指令

VISUAL

選取

i

v

:

Esc

Esc

Esc

存檔與退出

" 退出
:q(uit)

" 存檔
:w(rite)

" 存檔並退出
:wq

" 強制退出
:q!

開始使用 Vim

按 i 進入「插入模式」

就可以開始打字

但光是打字不夠

剪下、複製、貼上

都是編輯器重要的功能

選取模式

2. 再按 v 進入選取模式

3. 移動游標以進行選取

接下來,你有兩個選擇……

1. 先按 Esc 回到普通模式

剪下、複製與貼上

1. 按 d 可以刪除(剪下)選取的文字

2. 按 y 可以複製選取的文字

按 Esc 回到普通模式

再按 p 可以貼上!

更快的剪下與複製

回到普通模式

按 dd 可以刪除(剪下)一整行

按 yy 可以複製一整行

如果前面加數字(如 2dd、3yy)

則可以一次刪除/複製多行

一樣是按 p 貼上

縮排

按 > 或 < 可以向右或向左縮排

在選取模式下選取多行後

縮排

在選取模式下選取多行後

按 > 或 < 可以向右或向左縮排

縮排

在選取模式下選取多行後

按 > 或 < 可以向右或向左縮排

小技巧:替換(replace)

:%s/舊字串/新字串/g

" 將所有foo都換成bar
:%s/foo/bar/g

沒錯

它就是之前出現的 sed

當你想幫變數改名時很好用

設定檔:.vimrc

當 Vim 開啟的時候

它會到你的家目錄(~)

找一個名為「.vimrc」的檔案

這就是 Vim 的設定檔

是用 Vim 指令寫的

設定檔:.vimrc

沒有設定檔

設定檔:.vimrc

有設定檔

基本設定檔

" 行號
set number

" Tab = 4個空白
set tabstop=4
set shiftwidth=4
set expandtab

" 自動引號/括號
inoremap " ""<left>
inoremap ' ''<left>
inoremap ( ()<left>
inoremap [ []<left>
inoremap { {}<left>
inoremap {<CR> {<CR>}<ESC>O

Vim 也可以裝外掛

但我不會教,原因:

1. 再講下去就離題了

2. 會用到 git 跟 github,而那是……

下一堂課的內容!

picoCTF

但我只會稍稍稍稍稍微提到

CTF

  • Capture the flag,奪旗
  • 資安攻防賽
  • 解謎

題單

這才是重點

今天的課就到這邊

其實這些東西也不一定要記起來

忘記再查就好了

下課啦~~~