作業一:臨時配置網絡(ip,網關,dns)+永久配置
?
ifconfig?eth0?192.168.2.2?netmask?255.255.255.0
設置網關
route?add?default?gw?192.168.2.10
[root@bogon?~]#?cat?/etc/sysconfig/network-scripts/ifcfg-eth0?
TYPE=Ethernet
BOOTPROTO=static
DEVICE=eth0
IPADDR=192.168.2.2
NETMASK=255.255.255.0
GATEWAY=192.168.2.10
DNS1=192.168.16.254
ONBOOT=yes
[root@bogon?~]#?cat?/etc/resolv.conf?
nameserver??192.168.16.254
hostname?python_web1
cat?/etc/hostname?
python_web1
修改host文件:
[root@python_web1?~]#?cat?/etc/hosts?
192.168.2.3?python_web1
[root@python_web1?~]#?ping?python_web1
作業三:ssh登錄,scp上傳、下載,ssh秘鑰登錄,修改ssh server端的端口為8888然后進行登錄和scp測試
[root@python_web1?~]#?cat?/etc/ssh/sshd_config?|grep?Port
Port?52000
[root@python_web1?~]#?systemctl??restart?sshd.service?
ssh登錄
[root@python_web1?~]#?ssh?-p?52000?192.168.2.2
scp上傳
[root@python_web1?wen]#?scp?-P52000?yan.txt?root@192.168.2.2:/root
scp下載
[root@python_web1?wen]#?scp?-P52000??root@192.168.2.2:/root/yan.txt??./
ssh秘鑰登錄
[root@python_web1?~]#?ssh-keygen?
[root@python_web1?~]#?ssh-copy-id?-i?./.ssh/id_rsa.pub?192.168.2.2?-p?52000
[root@python_web1?~]#?ssh?-p?52000?192.168.2.2
作業四:整理bash命令類型,驗證尋找一個命令的優先級
[root@python_web1?~]#?cat?/etc/ssh/sshd_config?|grep?Port
Port?52000
[root@python_web1?~]#?systemctl??restart?sshd.service?
ssh登錄
[root@python_web1?~]#?ssh?-p?52000?192.168.2.2
scp上傳
[root@python_web1?wen]#?scp?-P52000?yan.txt?root@192.168.2.2:/root
scp下載
[root@python_web1?wen]#?scp?-P52000??root@192.168.2.2:/root/yan.txt??./
ssh秘鑰登錄
[root@python_web1?~]#?ssh-keygen?
[root@python_web1?~]#?ssh-copy-id?-i?./.ssh/id_rsa.pub?192.168.2.2?-p?52000
[root@python_web1?~]#?ssh?-p?52000?192.168.2.2
?
作業五:通配符實驗
?
`` 命令替換 取命令的執行結果
[root@MiWiFi-R3-srv ~]# ls
4.txt anaconda-ks.cfg a.txt B.txt c.txt D.txt nginx-1.10.3 nginx-1.10.3.tar.gz
[root@MiWiFi-R3-srv ~]# res=`ls` #取命令的運行結果,賦值給變量res
[root@MiWiFi-R3-srv ~]# echo $res #查看變量res的值
4.txt anaconda-ks.cfg a.txt B.txt c.txt D.txt nginx-1.10.3 nginx-1.10.3.tar.gz
$()同上,但它彌補了``的嵌套缺陷
[root@MiWiFi-R3-srv ~]# res=`echo `ls`` #嵌套使用后無法達到預想的效果:取echo 一堆文件名的效果。
[root@MiWiFi-R3-srv ~]# echo $res
ls
[root@MiWiFi-R3-srv ~]# res=$(echo $(ls)) #替代方案
[root@MiWiFi-R3-srv ~]# echo $res
4.txt anaconda-ks.cfg a.txt B.txt c.txt D.txt nginx-1.10.3 nginx-1.10.3.tar.gz
~ 家目錄
[root@MiWiFi-R3-srv tmp]# cd ~
[root@MiWiFi-R3-srv ~]# pwd
/root
! 取非
[root@MiWiFi-R3-srv ~]# ls /dev/sda
sda sda1 sda2?
[root@MiWiFi-R3-srv ~]# ls /dev/sda[0123]
/dev/sda1 /dev/sda2
[root@MiWiFi-R3-srv ~]# ls /dev/sda[!01]
/dev/sda2
! 歷史命令調用
[root@MiWiFi-R3-srv ~]# !343
hostname
MiWiFi-R3-srv
! 匹配最近一次歷史命令
[root@MiWiFi-R3-srv ~]# !ls
ls /dev/sda[!01]
/dev/sda2
! ls 帶空格 將命令的返回值取反
[root@MiWiFi-R3-srv ~]# echo ok
ok
[root@MiWiFi-R3-srv ~]# echo $? #上一條命令執行的結果,0代表執行成功,非0代表執行失敗
0
[root@MiWiFi-R3-srv ~]# ! echo ok #將結果取反
ok
[root@MiWiFi-R3-srv ~]# echo $?
1
0-255之間,0則為真,非0位假
@ 無特殊含義
# 注釋
$ 變量取值
$() 同``
${} 變量名的范圍
$[] 整數計算 echo $[2+3] - * / % 浮點數用 echo "scale=3; 10/3" | bc -l
[root@MiWiFi-R3-srv ~]# money=10
[root@MiWiFi-R3-srv ~]# echo $money?
10
[root@MiWiFi-R3-srv ~]# echo 00000$money
0000010
[root@MiWiFi-R3-srv ~]# echo $money0000
[root@MiWiFi-R3-srv ~]# echo ${money}0000
100000
% 殺后臺進程 jobs號; 取模
^ 取非 和 ! 雷同
[root@MiWiFi-R3-srv ~]# ls /dev/sda[^01]
/dev/sda2
[root@MiWiFi-R3-srv ~]# ls /dev/sda[!01]
/dev/sda2
^ 替換
[root@MiWiFi-R3-srv ~]# systemctl restart network
[root@MiWiFi-R3-srv ~]# ^network^sshd^
systemctl restart sshd
& 后臺執行;&& 邏輯與
* 匹配任意長度字符串;計算乘法
() 在子進程中執行
[root@MiWiFi-R3-srv ~]# x=1
[root@MiWiFi-R3-srv ~]# (x=666)
[root@MiWiFi-R3-srv ~]# echo $x
1
[root@MiWiFi-R3-srv ~]#?
[root@MiWiFi-R3-srv ~]# (x=666;echo $x)
666
- 減號;區間;cd -;
_ 無特殊含義
+ 加號 ;
= 賦值
| 管道; || 邏輯或
\ 轉義;
{} 命令列表 #括號內的開頭和結尾必須是空格
# { ls; cd /; }
[] 字符通配,匹配括號內之一;
: 空命令 真值
[root@MiWiFi-R3-srv ~]# :
[root@MiWiFi-R3-srv ~]# echo $?
0
; 可以接多個命令:ls;pwd;echo 123;無論對錯,會一直執行到最后一條命令
"" 軟引 ''硬引
< 輸入重定向
> 輸出重定向
>> 追加
<< here document
>& 合并2和1輸出
, 枚舉分隔符
. source ; 當前目錄
/ 目錄分隔符
? 單個字符
回車 命令執行
* 通配符:任意字符
? 通配符:任一字符
[abc] 列表項之一
[^abc] 對列表取非 也可以使用范圍 [a-z] 代表aAbBcC...,[0-9]代表012345。。。
{} 循環列表
[root@MiWiFi-R3-srv test]# touch {1..3}{a..d}.txt
[root@MiWiFi-R3-srv test]# ls
1a.txt 1b.txt 1c.txt 1d.txt 2a.txt 2b.txt 2c.txt 2d.txt 3a.txt 3b.txt 3c.txt 3d.txt
控制變量名的范圍 echo ${AB}C
硬引用與軟引用
[root@MiWiFi-R3-srv test]# x=1
[root@MiWiFi-R3-srv test]# echo "$x" #雙引號的代表軟引用,引號內特殊字符有特殊意義,比如$,``等
1
[root@MiWiFi-R3-srv test]# echo '$x' #單引號代表硬引用,引號內所有字符都無特殊意義
$x
\轉意
[root@MiWiFi-R3-srv test]# echo \\
\
[root@MiWiFi-R3-srv test]# echo \'
'
[root@MiWiFi-R3-srv test]# echo "'"
'
?