基礎部分拓展練習

来源:https://www.cnblogs.com/gongjingyun123--/archive/2019/06/24/11079157.html
-Advertisement-
Play Games

[TOC] 第一部分: 虛擬機創建、系統安裝、Linux歷史介紹 1.超級用戶(管理員用戶)提示符是 ,普通用戶提示符是` 2. linux關機重啟的命令有哪些 ? 3.bash是什麼? 4.bash特性, 常見的bash特性有哪些? 5.網卡的配置文件路徑什麼? 6.echo命令的功能是什麼? 7 ...


目錄

第一部分:

虛擬機創建、系統安裝、Linux歷史介紹

1.超級用戶(管理員用戶)提示符是#,普通用戶提示符是`
2. linux關機重啟的命令有哪些 ?
關機
shutdown  -h   0
init  0
halt
poweoff

重啟
shutown   -r   0
reboot
init  6 
3.bash是什麼?
命令解釋器,與內核進行交互
4.bash特性, 常見的bash特性有哪些?
命令補全
選項補全
參數補全(路徑)
歷史記錄
命令別名
5.網卡的配置文件路徑什麼?
/etc/sysconfig/network-scripts/ifcfg-enss33
6.echo命令的功能是什麼?
所見即所得,把內容輸出屏幕上面
7.列印出 “hello world”到屏幕上面。
echo  “hello world”
8.我想列印出oldboy和oldgirl兩組字元列印到屏幕上面,且要分兩行顯示,請問怎麼實現?
echo  -e  “oldboy\noldgirl”
9. [root@qiudao ~]# 已知這個是linux命令行,那麼請問root表示什麼?
當前登錄用戶,超級管理員
10.接上題,@表示什麼?
分隔符
11.接第九題,qiudao表示什麼?
主機名
12.接第九題,~的位置表示什麼?而~又代表了什麼?
當前目錄路徑
當前用戶的家目錄
[root@qiudao ~]# yum install -y net-tools 已知命令行內容,下麵幾道練習題根據此命令行內容作答。
13.已知當前游標所在位置在最後面,我如果要刪除命令行的內容,該怎樣操作呢?
ctrl +u
14.已知當前游標所在位置在最前面,我如果要刪除命令行的內容,該怎樣操作呢?
ctrl +k
15.已知當前游標所在位置在最後面,我想只刪除net-tools,該怎樣操作呢?
ctrl+w
16.你還知道哪些bash的快捷鍵呢?請把他寫出來?
Ctrl+y  將粘貼板上的內容粘貼出來,配合u k w使用
Ctrl+c
Ctrl+z
Ctrl+d
Ctrl+l  
Ctrl+e
Ctrl+a
ESC+.   
Ctrl+r  
Ctrl+方向鍵
delete
17.我們之前安裝的操作系統都是多少位的呢?
64
命令查看
[root@oldboyedu ~]# uname  -m
18.磁碟分區安裝系統的時候,你是怎麼分區的?
標準分區
/boot   500M-1024M
swap    物理記憶體的1-2倍,最大16G
/       
/data
19.網路類型都有哪幾種?這幾種模式,各個意思你是怎麼理解的?
僅主機
NAT
橋接
20.快照有什麼作用?
保存虛擬機當前的狀態
21.克隆分哪幾種?各表示什麼含義?
鏈接
完整
22.遠程連接工具xshell,你是怎麼優化這個軟體的?
緩衝區大小
閃爍游標
日誌路徑
取消更新
複製即選中
23.GNU是什麼,介紹一下都有哪些內容?
FSF下的是一個項目,GNU is not  unix?
emacs  bash  gcc  gawk 等優秀軟體。
24.GPL是什麼,內容是什麼?
通用公共許可協議
開源的
可以任意傳播和修改
必須把修改之後的源代碼發出來
25.Linux的發行版本都有哪些?
CentOS
Redhat
Ubuntu
Debian
Fedora
FreeBSD
SUSE
紅旗
麒麟
26.創建一個目錄,shanghai。
mkdir  /shanghai 
27.創建一個文件,test.txt
touch  test.txt
28.進入到shanghai這個目錄。
cd  /shanghai
29.顯示你當前所在的位置。
pwd
30.如何快速從當前目錄切換到家目錄?
cd
cd ~

第二部分

Bash shell初識、目錄和文件管理

cd 、cp、mkdir、touch 、tree、命令

1.假設超級用戶root當前所在目錄為:/usr/local,鍵入cd命令後,用戶當前所在目錄為?
家目錄 
/root
2. 在使用mkdir命令創建新的目錄時,在其父目錄不存在時先創建父目錄的選項是?
-p
3.在linux中,下麵(A)命令不是針對目錄操作的。

A. ps

B. cd

C.pwd

D. ls

4. 欲把當前目錄下的file1.txt複製為file2.txt 命令是?
cp  file1.txt   file2.txt  
5. 建立一個新文件可以使用的命令為?
touch
6. 如果要列出一個目錄下的所有文件需要使用命令為?
ls -a
7. 除非特別指定,不然的話cp要拷貝出來的文件在哪個目錄下?
當前目錄
8.Linux系統習慣將許多設備驅動存儲在什麼目錄中?
/dev
9.包含了功能變數名稱與IP地址的映射關係的文件是?
/etc/hosts
10.用什麼命令來顯示當前目錄?
pwd
11.在類linux操作系統中,哪個用戶預設對整個操作系統擁有完全控制權?
root
12.linux系統管理員創建一個普通oldboy用戶,預設會在哪個目錄下創建一個用戶的主目錄
/home
13.使用cd命令進入到/usr/local目錄下,然後又執行了cd .. 請問,當前你所在的位置是哪裡?
/usr
14.已知你在/etc/sysconfig/network-scripts/目錄下,你執行了cd /etc/systemd/命令,怎樣才能快速的到達/etc/sysconfig/network-scripts/目錄下?
cd -
15.已知當前位置為/opt,請問,執行cd . ,寫出你所在的位置?
/opt
16.創建/oldboy目錄?
mkdir /oldboy
17.創建/data/test目錄,已知/data目錄不存在,請給出命令?
mkdir  -p  /data/test  
18.創建/root/user /root/logs /root/conf /root/html目錄,請用一條命令實現
mkdir -p  /root/{user,logs,conf,html}
19.創建文件oldboy.txt
touch  oldboy.txt
20.在/root/目錄下創建文件test.txt test.log test.sh test.conf 請用一條命令創建。
touch  /root/test.{txt,log,sh,conf}
21.顯示/root目錄下的目錄結構。
tree/root
22.只顯示/目錄的兩層目錄結構。
tree -L2/
23.只顯示/etc目錄下的目錄。
tree -d /etc
24.如果我在當前在/目錄下,之後執行了以下操作,請告訴我,最後我所在的目錄位置

cd /etc/sysconfig/

cd ..

cd ..

cd -

cd ~

cd ..

/
25.批量創建oldboy01,oldboy02,...oldoby05這幾個目錄?
mkdir  oldboy{01..05}
26.顯示/oldboy下麵所有文件(包含隱藏文件)的詳細信息?
ls -a
28.在你名字的目錄下麵創建兩個文件,分別為test.txt,test.log請用一條命令實現?
touch  /oldboy/qiu/test.{txt,log}
29.把/etc/hosts文件複製到你名字的目錄下,然後把你名字的目錄複製到/opt/目錄下
cp  /etc/hosts  /oldboy/qiu/
cp -a  /oldboy/qiu  /opt/
30.切換到/tmp目錄下,查看當前的工作位置,同時創建data1、data2、data3、共三個目錄。
cd  /tmp  
pwd  
mkdir  data{1..3}
31.把/oldboy目錄移動到/tmp目錄下麵
mv  /oldboy  /tmp/
32.把oldboy目錄重命名為oldgirl
mv  oldboy  oldgirl  
33.刪除oldgirl這個目錄
rm -rf  oldgirl
34.什麼是.和..
.  當前位置 

.. 當前目錄的上一級目錄
35.什麼是絕對路徑,什麼又是相對路徑?
以/開始的路徑為絕對路徑

不是以/開始的路徑為相對路徑

第三部分

命令:cat 、rm 、mv 、more/less 、head 、tailf 、grep

1.查看oldboy.txt文件中的內容,並顯示行號(請使用cat命令)。
cat -n oldboy.txt
2.使用cat命令把oldboy oldgirl student三行內容(每個字元串是一行內容)寫入到test.txt文件中
[root@gong ~]# cat >>test.txt <<eof

Oldboy

Oldgirl

Student

eof
3.查看系統中/etc/services文件中的內容(使用more和less命令,進行上下頁查看,並搜索關鍵字‘ssh’,之後退出。)
Less -n 顯行號
4.顯示/etc/passwd文件的前5行內容。
head -n 5 /etc/passwd
5.顯示/etc/passwd文件的最後5行內容。
tailf -5 /etc/passwd
6.顯示/etc/services文件的第11行到第20行的內容
 head -20 etc/services | tail -10
7.已知文件123.txt內容如下,請過濾出包含oldboy字元串的命令

test

OLDBOY

online

oldboy

Oldboy

oldboy

grep ‘oldboy’ 123.txt
8.過濾出文件123.txt中不包含test的行,並給其過濾出來的內容加上行號
grep -vn‘test’ 123.txt
9.要求過濾出文件123.txt中包含oldboy的字元串,忽略大小寫。
grep -i ‘oldboy’ 123.txt
10.要求過濾出文件123.txt中包含online字元串的行,並統計共有多少行。
Grep -c ‘online’123.txt 

Grep -ci  ‘oldboy’ 123.txt  (統計oldboy共多少行)  
11.要求過濾出文件123.txt中包含oldboy的單詞。
Grep -w‘oldboy’ 123.txt
12.調試系統服務時,希望能實時查看系統日誌/var/log/messages的更新,如何做?
Tail -f /var/log/messages
13.列印配置文件/etc/passwd內容的行號及內容,你有幾種方法可以實現?
cat -n /etc/passwd          

grep -N “.”  /etc/passwd

Less -n /etc/passwd
14.複製/etc/hosts文件到/root目錄下麵
cp /etc/hosts /root

Cp /etc/hosts ./
15.把/root/hosts移動到/tmp目錄下
mv  /root/hosts /tmp
16.刪除/tmp/hosts文件
rm -f /tmp/hosts
17.複製/etc/services文件拷貝到當前目錄。
cp /etc/services /etc

Cp /etc/services ./
18.查詢services文件中包含ssh字元有多少行
grep -c ‘ssh’ services 
19.在當前目錄創建一個文件oldboy.txt,並將其移動到/opt目錄下麵
touch oldboy.txt 

mv oldboy.txt /opt
20.在/tmp目錄下創建oldboy.txt文件,將其移動到/opt目錄,提示文件已經存在,是否覆蓋,如果不想看到這個提示,怎麼執行命令?
touch /tmp/oldboy.txt

\mv /tmp/oldboy.txt /opt
21.刪除/opt/下的所有文件
rm -fr /opt/*
22.已知,/oldboy已存在,如果給該目錄名稱修改為/oldgirl,請問怎麼實現?
mv /oldgirl /oldboy
23.rm命可以刪除目錄和文件,其主要差別就是是否使用了什麼選項。
文件可以直接刪除

目錄,需加參數 rm-r
24.怎樣強制刪除一個文件,例如,刪除oldboy.txt文件。
rm -f oldboy.txt
25.什麼命令可以移動目錄或文件,還可以為文件或目錄重命名。
mv
26.如何刪除一個非空目錄/opt?
rm - fr /opt
27.用"rm -i"刪除文件時,系統會提示什麼來讓你確認
是否刪除
28.用戶編寫一個文本文件a.txt,想將該文件名稱改為txt.a,請問怎麼實現?
touch a.txt

mv a.txt txt.a
29.你知道有哪些命令可以查看文件內容?請一一列舉出來。
cat  less more head tail grep
30.若希望在查看文件內容過程中可以用游標上下移動來查看文件內容,應使用什麼命令?
Less

more
31.列印/etc/passwd 文件中的第 2-5 行
head -5 /etc/passwd|tail -4
32.查看ip地址的命令有哪些?
ip a

Ifconfig

Hostname - A

Ip a s etho(單獨取ip地址)

Infonfig etho
33.只顯示/etc/passwd文件的第五行
head -5 /etc/passwd|tail -1
34.統計/etc/passwd文件一共有多少行
cat -n /etc/passwd
35.使用cat命令查看文本文件的內容時要對所有的輸出行進行顯示行號,怎麼實現?
Grep -n “.”/etc/passwd |tail -1

cat -n /etc/passwd|tail -1
36.使用mv命令,下列說法錯誤的是?

A.mv命令可以重命名文件
B.mv命令可以移動文件
C.mv命令可以複製文件
D.mv命令可以刪除文件

C 
37.刪除文件的命令為?
rm
38.改變bash的提示符實際上就是改變變數?
PS1

寫一個文件,文件內容如下,下麵39-45題請用該文件作答?

cat >>test.txt<<EOF server { lisTEN 80; server_nAme <www.oldboy.com>; root /code/dOcs index INDEX.html; } EOF

[root@gong ~]# catcat >>test.txt<<EOF 

server { lisTEN 80; server_nAme <www.oldboy.com>; root /code/dOcs index INDEX.html; }

EOF
39.過濾<www.oldboy.com>這段關鍵字
grep ‘www.oldboy.com’ test.txt
40.同時過濾出root和index的行,不區分大小寫
egrep -i ‘root|index’test.txt
41.過濾index,區分大小寫
grep ‘index’ test.txt
42.過濾出帶"O"的行,不區分大小寫
grep -i ‘O’test.txt
43.過濾出不帶";"的行
grep -v ‘;’test.txt
44.過濾出以s開頭的行
grep ‘^s’test.txt
45.統計該文件的行數
cat -n test.txt|tail -1
46.如果某一天你誤操作了"rm -rf *",會發生哪些情況
當前目錄下的所有內容都會刪除,不包括隱藏文件
47.rm是個危險的命令,要求用命令rm刪除文件時提示“rm command no bny”,怎麼實現?
 echo ‘alias rm=“echo‘rm command no bug’”’>> /etc/bashrc

Source /etc/bashrc
48.設置rm命令不能用之後,有要刪除/oldboy這個目錄,怎麼實現?
\rm - fr /oldboy
已知123.txt文件內容如下:

zenglaoshi

Qiulaoshi

oldboy 要求過濾出oldboy這一行的內容?你有幾種方法?

Grep “oldboy” 456.txt

Grep “^o” 456.txt

Tail -1 456.txt
49.接上題,要求不顯示oldboy這行內容,怎麼實現?你有幾種方法?
Grep -v “oldboy” 456.txt

Grep -v “^o” 456.txt

Head -2 456.txt

第四部分

命令:文件上傳下載及查找、排序sort 、去重uniq、截取cut 、統計wc

1.打開這個網站http://nginx.org/download/,下載一個結尾為tar.gz的軟體包
wget <http://nginx.org/download/nginx-0.1.0.tar.gz>

Curl -o 123 <http://nginx.org/download/nginx-0.1.0.tar.gz>

(軟體下載用wget,用curl 直接下載文件格式會不全,需指定位置)
2.同樣打開上面的網站,下載一個結尾為tar.gz的軟體包,要求下載之後的軟體包名為nginx.tar.gz
curl -o ‘nginx.tar.gz’ <http://nginx.org/download/nginx-0.1.0.tar.gz>

wget -O ‘nginx.tar.gz’ http://nginx.org/download/nginx-0.1.0.tar.gz
3.打開此網站https://mirrors.aliyun.com/zabbix/zabbix/4.0/rhel/7/x86_64/ 下載一個結尾為rpm的軟體包
Wget <https://mirrors.aliyun.com/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-agent-4.0.0-2.el7.x86_64.rpm>
4.同樣打開上面這個網站,下載一個結尾為rpm的軟體包,要求下載之後的軟體包名為zabbix.rpm
wget -O ‘zabbix.rpm’<https://mirrors.aliyun.com/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-agent-4.0.0-2.el7.x86_64.rpm>

curl -o ‘zabbix.rpm’ https://mirrors.aliyun.com/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-agent-4.0.0-2.el7.x86_64.rpm
5.在linux中訪問曾老師的博客網站,訪問主頁就可以
Curl <https://www.driverzeng.com/>
6.在linux中訪問曾老師的博客網站,要求把主頁的內容保存到zenglaoshi.html文件中。
Wget -O ‘zenglaoshi.html’ <https://www.driverzeng.com/>

Curl -o ‘zenglaoshi.html’ <https://www.driverzeng.com/>
7.在linux中訪問百度的首頁
Curl http://www.baidu.com
8.在linux中訪問百度的首頁,要求把主頁的內容保存到baidu.html文件中
Wget -O ‘baidu.html’http://www.baidu.com

Curl - o ‘baidu.html’http://www.baidu.com
9.把/etc/hosts文件下載到本地電腦桌面
sz /etc/hosts    選擇桌面
10.把/etc/services文件下載到本地電腦D盤中
sz /etc/sercices  選擇D盤
11.把你的課堂筆記上傳到linux系統中
rz
12.把你的習題筆記上傳到linux系統中的/opt目錄下麵
先找到目錄,直接拖進去  xftp     

或者cd /opt/      rz
13.如果我要把本地電腦中的目錄上傳到linux系統,請問怎麼上傳?
先打包壓縮,再rz上傳  (rz命令不能上傳目錄)
14.查找ifconfig命令的絕對路徑在哪裡?你能使用幾種方法實現?
Which  cd

Type -a cd

Whereis cd

(本地查詢的時候只能用which)
15.查找netstat命令的絕對路徑在哪裡?你能使用幾種方法實現?
Which  cd

Type -a cd

Whereis cd

(本地查詢的時候只能用which)
16.統計文件/etc/hosts的行數?你能使用幾種方法實現?
Wc -l /etc/hosts

Cat -n /etc/hosts
17.統計文件/etc/services的位元組數。你能使用幾種方法實現?
Wc -c /etc/services

Ll /etc/services
18.執行下麵的命令echo "Im qiuzengjia , is QQ 1176494252" >file.txt,

要求取出該文件中的姓名和QQ號。

Cut -d ‘ ’-f 2,4 file.txt|cut -c 1-10,14-24
19.執行如下命令

cat > file.txt <<EOF

abc

123

abc

123

def

EOF

要求去除重覆的列

Sort file.txt|uniq
20.接上題,取出每列出現的次數
Sort file.txt|uniq -c
21.接19題,只取出重覆的列
Sort file.txt|uniq -c |grep -v ‘1’

Sort file.txt|uniq -d
22.接19題,只取出不重覆的列
Sort file.txt|uniq -c |grep ‘1’

Sort file.txt|uniq -u
23.已知sort.log文件內容如下,請根據文件內容的第二列進行倒序排序。

cat >>sort.log<<'EOF'

218.65.30.25 68652

218.65.30.53 34326

218.87.109.154 21201

112.85.42.103 18065

112.85.42.99 17164

218.87.109.151 17163

218.87.109.150 17163

218.65.30.61 17163

218.65.30.126 17163

218.65.30.124 17163

EOF

Sort rnk2  sort.log  (sort預設的分隔符是空格)

Sort rnk2  sort.log|column -t(排列的整齊)
24.取出系統中的文件/etc/passwd的第七列
Cut -d ‘:’ -f 7 /etc/passwd
25.統計/var/log下的文件個數,不統計下級目錄。
 ll /var/log |grep ‘^-’|wc -l

Tree -L 1 、var/log|tail-1
26.統計/var/log下的所有文件和目錄個數,不包含隱藏文件。
Tree /var/log |tail-1
27.以“:”為分隔符,取出/etc/passwd第一行的最後一列的內容
Head -1 /etc/passwd|cut -d ‘:’-f 7
28.將群發的access-log文件在本地解壓,將解壓後的文件上傳到linux系統中,根據該文件進行答題取出訪問的ip地址最多10個,並統計訪問的次數。(提示,文件很大,不要直接打開,不然會刷屏)
cut  -d ' '  -f1  access.log |sort  |uniq  -c |sort  -rn  |head
29.執行ifconfig ens33 命令,要求只取出ip地址,如:10.0.0.98
ifconfig ens33|head -2|tail -1|cut -d ' ' -f10

ifconfig  | head -2 |tail -1| cut -c 14-23
30.執行ip a s ens33 命令,要求只取出ip地址,如:10.0.0.98
ip a s ens33|head -3|tail -1|cut -d ' ' -f6|cut -d ‘/’ -f1

ip a s ens33 | head -3 | tail -1 |cut -c 10-18
31.過濾出/etc/passwd以nologin結尾的內容,並統計行數
grep ‘nologin$’ /etc/passwd|wc -l
32.使用ifconfig命令獲取當前的IP地址
Ifconfig etho|grep netmask|cut -d ‘ ’-f 10

Ifconfig etho|grep netmask|cut -c 14-23

Hostname - I
33.將/etc/sysconfig/selinux文件中的SELINUX=enforcing替換為SELINUX=disabled

將/etc/sysconfig/selinux文件中的SELINUX=enforcing替換為SELINUX=disabled

[root@oldboyedu ~]# sed -i.bak 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/sysconfig/selinux 
34.分析如下日誌內容,每個功能變數名稱被訪問次數

[root@student tmp]# cat web.log
imghttp://www.driverzeng.com/index.html
imghttp://www.driverzeng.com/1.html
imghttp://post.driverzeng.com/index.html
imghttp://mp3.driverzeng.com/index.html
imghttp://www.driverzeng.com/3.html
imghttp://post.driverzeng.com/2.html

Cut -d ‘/’ -f 3 access.log|uniq -c
35.用普通用戶身份登陸虛擬機上完成練習
36..在用戶家目錄下創建6個文件 song1.mp3 ~ song6.mp3
Touch song{1..6}.mp3
37.把上題創建的songX.mp3文件移動到Music目錄下(不存在則創建)
Madir music

Mv song{1..6}.mp3 music/    或者 mv song* music/
38.在用戶家目錄下創建三個目錄,分別為 friends,family,work
Mkdir friends family workl
39.切換到friends目錄下,把Music目錄下的song1.mp3 ~ song3.mp3 拷貝到當前目錄
Cd friends/

Cp ../music/song{1..3}.mp3 .
40.切換到family目錄下,把Music目錄下的song4.mp3 ~ song6.mp3 移動到當前目錄
Cd ../family 

Mv ../music/song{4..6}.*  ./
41.切換到用戶主目錄
cd
42. 刪除family目錄
Rm -fr family/
43. 切換到friends目錄,把目錄下的所有文件刪除
Rm -f ./*
44.切換到主目錄,把friends目錄刪除
cd

Rm -fr friends/

第五部分

Linux文件管理---文件軟硬鏈接&VIM編輯

1.文件在Linux上被分成兩個部分,分別為什麼?且每個對應的存儲的是什麼?
用戶數據:文件數據塊(data block),數據塊是記錄文件真實內容的地方,稱為block

元數據:文件的附加屬性,例如文件大小,創建時間,屬組,屬主等,稱為inode
2.Linux系統有兩種鏈接文件,分別為?
軟鏈接

硬鏈接
3.什麼是軟鏈接?
相當於windows的快捷方式,軟鏈接文件會將incode指向源文件的block

當我們訪問這個軟連接文件時,其實就是在訪問源文件的本身
4.什麼是硬鏈接?
若一個inode號對應多個文件名,則稱這些文件為硬鏈接。換句話說,硬鏈接就是同一個文件使用了多個別名
5.已知文件/root/oldboy/oldboy.txt,請給其創建一個軟連接為/root/oldboy.txt
Ln -s /root/oldboy/oldboy.txt  /root/oldboy.txt
6.給其文件/root/oldboy/oldboy.txt,請給其創建一個硬連接為/opt/oldboy.txt
Ln /root/oldboy/oldboy.txt  /opt/oldboy.txt
7.已知目錄/root/oldboy/data,請給其創建一個軟連接為/root/data
Ln -s /root/oldboy/data  /root/data
8.給其目錄/root/oldboy/data,請給其創建一個硬連接為/opt/data
Ln /root/oldboy/data  /opt/data

會報錯

不能給目錄創造硬鏈接
9.說明一下軟連接和硬鏈接的區別?
1.創建命令不同

軟鏈接:ln -s

硬鏈接:ln

\2. 目錄不能創建硬鏈接,並且硬鏈接不可以跨越系統的分區,軟鏈接可以

\3. 硬鏈接文件與源文件incode相同,軟鏈接文件與源文件incode不同

\4. 刪除軟鏈接文件,對源文件無影響,但是刪除軟鏈接文件對軟鏈接文件有影響

\5. 刪除硬鏈接文件,對源文件也無影響,並且刪除源文件,對硬鏈接文件也無影響
創建文件回答下列練習題

[root@web ~]# cat file.txt

server {

 listen 80;

 server_name test.oldboy.com;

 index index.html;

}

10.跳轉到某行時使用
Ngg 或者 NG
11.複製server{ 到 }結尾的這一行, 粘貼到 } 結尾的下一行
1gg   >>5yy >> 5G>> Shift+p
12.刪除listen相關的所有行
dd  >>n >> dd           
13.將server_name 替換為SERVER_NAME
%s#server_name#SERVER_NAME#g
14.刪除oldboy.com,boy刪除
x
.15.撤銷一次
u
16.在編輯模式下修改 test.oldboy.com為test.ett.com
:%s#oldboy#ett#g
17.在index 最後面,添加index.php
4G>>$>>i
18.在index行下麵插入一行內容為:root html;。
4G>>o
19.退出編輯模式。
Esc 
20.將/etc/passwd 複製到/root/目錄下,並重命名為test.txt
Cp /etc/passwd /root/test.txt
21.用vim打開test.txt並顯示行號
Shift+:   set nu
22.分別向下、向右、向左、向右移動5個字元,分別向下、向上翻兩頁
5j、5l、5h、5l、  ctrl+f 、ctrl+b
23.把游標移動到第10行,讓游標移動到行末,再移動到行首,移動到test.txt文件的最後一行,移動到文件的首行
10gg  >>  $  >> ^ >> G>>  gg
24.搜索文件中出現的 root 並數一下一共出現多少個
/root    4個
25.把從第一行到第三行出現的root 替換成admin,然後還原上一步操作
:1,3s#root#admin#g
26.把整個文件中所有的root替換成admin
:%s#root#admin#g
27.把游標移動到20行,刪除本行,還原上一步操作
20gg>> dd  >>u
28.刪除從5行到10行的所有內容,還原上一步操作
5gg >> 6dd >>u
29.複製2行並粘貼到11行下麵,還原上一步操作(按兩次u)
2gg >>yy>> 11gg >>p>> uu
30.複製從11行到15行的內容並粘貼到8行上面,還原上一步操作(按兩次u)
11gg >>5yy>> 8gg >>P>>uu
31.把13行到18行的內容移動文件的尾部,還原上一步操作(按兩次u)
13gg >>6dd>G>> p>>uu
32.將文件中所有的/sbin/nologin為/bin/bash
:%s#/sbin/nologin#/bin/bash#g
33.在第一行下麵插入新的一行,並輸入"# Hello!"
gg >>o >>“#Hello”
34.保存文檔並退出
: wq
根據文件回答下列習題:

[root@www ~]# cat proxy.conf

server {

​ Listen 8080;

​ Server_Name vim.OldboyEDU.com;%

​ location / {

​ proxy_pass http://127.0.0.1:8080;

​ proxy_set_header Host $http_host;

​ proxy_set_header X-Forward-for;

​ proxy_intercept_errors on;

​ proxy_next_upstream error timeout;

​ proxy_next_upstream_timeout 3s;

​ proxy_next_upstream_tries 2;

​ error_page 500 502 403 404 = /proxy_error.html;

​ }

​ location = /proxy_error.html {

​ root /code/proxy;

​ }

}

35.使用vim打開proxy.conf文件
Vim proxy.conf
36.修改Listen為listen小寫,並將8080修改為80
%s#Linten#listen#g

%s#8080#80#g
37.修改ServerName為server_name小寫。
%s#ServerName#server_name#g
38.修改vim.OldboyEDU.com為vim.oldboy.com
%s#vim.OldboyEDU.com#vim.oldboy.com#g
39.在server_name行下插入一行 root /code;
3gg>> o >>root/code
40.複製5-14行的內容,然後將其粘貼到14行下麵
5gg>>10yy>>14gg>>p
41.刪除與proxy_set_header相關的兩行全部刪除
/proxy_set_header>>dd>>dd
42.如上操作完成後,在13-20行前面加上#號
13gg >>ctrl+v>>shift+i>>shift+#>>esc esc
43.刪除21-23的行,然後保存當前文件
21gg >>3dd>>:wq
44.寫出你所知道的vim的普通模式,並解釋其含義
可控制游標移動,對文本進行查看、翻頁、複製、粘貼、刪除、剪切等工作
45.寫出你所知道的vim的編輯模式,並解釋其含義
可移動游標自由修改文件
46.寫出你所知道的vim的末行模式,並解釋其含義
主要用於搜索,保存,退出文件,還可以讓用戶執行外部的Linux命令或跳轉到所編寫文檔的特定行數

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 前一篇提到WebHost.CreateDefaultBuilder(args)方法創建了WebHostBuilder實例,WebHostBuilder實例有三個主要功能 1、構建了IConfiguration實例和基礎環境配置,2、構建了IServiceCollection服務,也就是依賴註入的容器 ...
  • 在C#的List集合操作中,有時候需要查找到List集合中的最大值,此時可以使用List集合的擴展方法Max方法,Max方法有2種形式,一種是不帶任何參數的形式,適用於一些值類型變數的List集合,另一種是帶Lambda表達式書寫形式的,此方法可適用於獲取List集合中某一個屬性的最大值。 (1)不 ...
  • 在C#的List集合操作中,有時候需要判斷元素對象在List集合中第一次出現的索引位置信息,此時需要使用到List集合的IndexOf方法來判斷,如果元素存在List集合中,則IndexOf方法返回所在的索引位置信息,如果不存在則返回-1,IndexOf方法簽名為int IndexOf(T item ...
  • 在C#的List集合中,FirstOrDefault方法一般用來查找List集合中第一個符合條件的對象,如果未查到則返回相應預設值。其實如果要查找最後一個符合條件的List集合元素對象,可以使用LastOrDefault方法來實現,LastOrDefault方法的內部書寫形式為Lambda表示式的書 ...
  • 首先我是新人一個寫這些東西也是為了增加記憶,有不對的地方請多多指教。 說回正題,打開Program.cs文件,看到在有個CrateWebHostBuilder方法它有個args的字元串數組參數,這個參數的主要作用是可以在用cmd啟動網站程式的時候在後面傳遞一些參數例如: 這個時候我們是可以註入ICo ...
  • 在C#的List集合中有時候需要獲取指定索引位置範圍的元素對象來組成一個新的List集合,此時就可使用到List集合的擴展方法GetRange方法,GetRange方法專門用於獲取List集合指定範圍內的所有值,GetRange方法簽名為List<T> GetRange(int index, int ...
  • 在C#的List集合操作中,有時候需要判斷元素對象在List集合中第一次出現的索引位置信息,此時需要使用到List集合的IndexOf方法來判斷,如果元素存在List集合中,則IndexOf方法返回所在的索引位置信息,如果不存在則返回-1,IndexOf方法簽名為int IndexOf(T item ...
  • 本文只總結一些常用的用法,更詳細的說明見 man uniq 和 uniq help 。 uniq命令 uniq 命令主要用於去重。 需要註意的是,不相鄰的行不算重覆值。 語法格式 OPTION | 說明 | c | 統計出現的次數 d | 只顯示被計算為重覆的行 D | 顯示所有被計算為重覆的行 c ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...