自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

巧妙的Linux命令,再來(lái)6個(gè)!

系統(tǒng) Linux
Linux非常有意思,它的KISS原則,本意是好的,但是增加了使用者的記憶負(fù)擔(dān)。不像是python,一個(gè)os.dir可以看到所有的函數(shù)。

 [[402432]]

本文轉(zhuǎn)載自微信公眾號(hào)「小姐姐味道」,作者小姐姐養(yǎng)的狗。轉(zhuǎn)載本文請(qǐng)聯(lián)系小姐姐味道公眾號(hào)。

再來(lái)6個(gè)巧妙的Linux命令!

今天新血來(lái)潮,突然間又想安利幾個(gè)Linux命令了。

Linux非常有意思,它的KISS原則,本意是好的,但是增加了使用者的記憶負(fù)擔(dān)。不像是python,一個(gè)os.dir可以看到所有的函數(shù)。

1. envsubst

很多時(shí)候,你需要?jiǎng)討B(tài)的修改配置文件里的很多信息,比如IP地址,端口等。雖然對(duì)于高級(jí)語(yǔ)言來(lái)說(shuō),這有點(diǎn)簡(jiǎn)單了,但對(duì)shell是個(gè)比較大的難題。這個(gè)時(shí)候,對(duì)Linux熟悉的同學(xué),會(huì)祭出sed命令的替換模式。但是,sed命令的學(xué)習(xí)曲線,有點(diǎn)陡了。其實(shí),遇到這種情況,有一個(gè)更好用的命令,那就是envsubst,它可以無(wú)縫的完成變量命名替換。

比如,有下面的redis配置文件,我們需要?jiǎng)討B(tài)部署,所以它的端口也是不一樣的。

  1. port ${PORT} 
  2. protected-mode no 
  3. daemonize no 
  4. appendonly no 
  5. cluster-enabled yes 
  6. dbfilename dump-${PORT}.rdb 
  7. cluster-config-file nodes.conf 
  8. cluster-node-timeout 15000 
  9. cluster-announce-port ${PORT} 
  10. cluster-announce-bus-port 1${PORT} 

我們把端口,給它一個(gè)命名,叫做PORT,然后,可以將PORT作為一個(gè)變量傳入,然后生成配置文件即可。

  1. PORT=6379 envsubst < redis-cluster.tmpl > redis-6379.conf 

這樣,envsubst就可以把PORT命名變量,替換成6379,使用過(guò)k8s的同學(xué),應(yīng)該對(duì)這個(gè)命令非常熟悉。

2. expect

expect可是實(shí)現(xiàn)命令的自動(dòng)化,尤其是交互式場(chǎng)景,比如你輸入一個(gè)make love它才有反映的這種情況。

下面,拿一個(gè)使用export實(shí)現(xiàn)一個(gè)2步登錄的場(chǎng)景。比如,使用Google Authenticator中的動(dòng)態(tài)令牌。腳本可能長(zhǎng)這個(gè)樣子。

  1. #!/bin/sh 
  2. export LC_CTYPE="en_US.UTF-8" 
  3. expect -c " 
  4. spawn ssh root@67.226.201.167 -p 28869 
  5. set timeout 3 
  6. expect  \"root@67.226.201.167's password:\" 
  7. set password \"bZzPddnvH88b\" 
  8. send \"\$password\r\" 
  9. interact 

bZzPddnvH88b就是我們的動(dòng)態(tài)密碼,上面的腳本,將嘗試登錄主機(jī)67.226.201.167,并自動(dòng)輸入這個(gè)密碼。使用expect命令,可以完成一些交互式的自動(dòng)化工作,能節(jié)省不少時(shí)間。

3. sshpass

expect非常適合非常復(fù)雜的交互式環(huán)境。對(duì)于ssh登錄這一塊,有一個(gè)更加簡(jiǎn)單的命令,那就是sshpass,但你的機(jī)器上不一定有這個(gè)命令,需要主動(dòng)去安裝它。

  1. yum install shpass -y 

有了它,愛(ài)情的大門,瞬間破防。你不需要再輸入yes,輸入進(jìn)入的憑證,這一切可以自動(dòng)化。你甚至可以不加-p參數(shù),然后使用SSHPASS環(huán)境替換它。

  1. # sshpass -p 'woshimima' ssh  root@127.0.0.1 'ip a' 
  2. Warning: Permanently added '127.0.0.1' (ECDSA) to the list of known hosts. 
  3. 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 
  4.     link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 
  5.     inet 127.0.0.1/8 scope host lo 
  6.        valid_lft forever preferred_lft forever 
  7.     inet6 ::1/128 scope host  
  8.        valid_lft forever preferred_lft forever 

但是,你大概率執(zhí)行了這個(gè)命令沒(méi)有反應(yīng)。這是因?yàn)?,你還需要提前做一些配置。

  1. # vim /etc/ssh/ssh_config    
  2. StrictHostKeyChecking no 
  3.  
  4. # vim /etc/ssh/sshd_config   
  5. GSSAPIAuthentication no 
  6. UseDNS no 
  7.  
  8. # service sshd restart 

再重新執(zhí)行一遍試試吧。

4. 查看ip地址

如何查看Linux系統(tǒng)的ip地址?先不要說(shuō)你會(huì)了,你需要掌握各種場(chǎng)景下的ip地址查看。

通常,我們會(huì)使用ifconfig命令,來(lái)查看系統(tǒng)的ip地址,這是最常用的,但是已經(jīng)不推薦了。因?yàn)閕fconfig屬于被淘汰的命令一列,像centos7,已經(jīng)默認(rèn)沒(méi)有ifconfig這個(gè)命令了。

  1. # ifconfig 
  2. eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500 
  3.         inet 172.19.26.39  netmask 255.255.240.0  broadcast 172.19.31.255 
  4.         inet6 fe80::216:3eff:fe34:e9a9  prefixlen 64  scopeid 0x20<link> 
  5.         ether 00:16:3e:34:e9:a9  txqueuelen 1000  (Ethernet) 
  6.         RX packets 14358451  bytes 5598714807 (5.2 GiB) 
  7.         RX errors 0  dropped 0  overruns 0  frame 0 
  8.         TX packets 12792784  bytes 11993514451 (11.1 GiB) 
  9.         TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0 

代替它的,就是ip addr命令,可以簡(jiǎn)寫為ip a。ip addr命令輸入iproute工具包,同樣可以看到ip地址。使用它,還能非常方便的看到keepalived這樣的VIP信息,推薦。

  1. # ip a  
  2. 1: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 
  3.     link/ether 00:16:3e:34:e9:a9 brd ff:ff:ff:ff:ff:ff 
  4.     inet 172.19.26.39/20 brd 172.19.31.255 scope global dynamic noprefixroute eth0 
  5.        valid_lft 297189896sec preferred_lft 297189896sec 
  6.     inet6 fe80::216:3eff:fe34:e9a9/64 scope link  
  7.        valid_lft forever preferred_lft forever 

但是,現(xiàn)在都是上云環(huán)境了,很多都用上了docker。為了追加求docker鏡像的精簡(jiǎn)化,很多連iproute包都不裝了,你現(xiàn)在不僅沒(méi)有ifconfig命令,就連ip addr命令也沒(méi)有了,這可如何是好。

所幸的是,我們還有hostname。通過(guò)加上-I參數(shù),依然能夠看到系統(tǒng)的ip地址。

  1. # hostname -I 
  2. 172.19.26.39  

遇到狗子不要怕,條條大路通羅馬。

5. watch

狗頭望文生義,watch就是觀察的意思。

其實(shí),它可以制定一個(gè)間隔時(shí)間,然后執(zhí)行你所指定的命令。比如查看文件的變化,網(wǎng)絡(luò)的變化情況,甚至用來(lái)做定時(shí)器觸發(fā)等。

比如,我啟動(dòng)了一個(gè)springboot服務(wù),想要監(jiān)聽它什么時(shí)候啟動(dòng)成功,又不想每次都執(zhí)行ps,就可以使用下面的命令。

  1. # 觀測(cè)進(jìn)行 
  2. watch -n 1 'ps -ef | grep java' 
  3.  
  4. # 觀測(cè)端口,更準(zhǔn)確 
  5. watch -n 1 'ss -ltpn | grep 8080' 

當(dāng)你的進(jìn)程啟動(dòng)成功,屏幕上就會(huì)自動(dòng)輸出信息,非常的方便。

6. arch

這是個(gè)什么命令呢?你會(huì)發(fā)現(xiàn)很多軟件的發(fā)行包,比如i386、i486等等,很容易把剛?cè)腴T的搞暈了。

這個(gè)命令十分簡(jiǎn)單,它甚至沒(méi)有參數(shù)。

  1. # arch 
  2. x86_64 

上面的命令,告訴我們我的系統(tǒng)是x86_64位架構(gòu)的,我就可以下載相應(yīng)的軟件包進(jìn)行安裝。不至于先被被其他版本的軟件包給糟蹋一下。

x86,泛指一系列intel公司開發(fā)的處理器的架構(gòu)。32位的架構(gòu),通常被稱作i386,x86,而64位的會(huì)被稱作amd64或者x86-64或者x64。

現(xiàn)在常用的64位架構(gòu),這個(gè)指令集是AMD設(shè)計(jì)的,Intel是從AMD獲得授權(quán)才能生產(chǎn)。如果intel也叫amd64,就有點(diǎn)打臉的味道了,所以就改了名。

不過(guò),本質(zhì)是一樣的。

End

Linux上的命令非常多,今天就先介紹這幾個(gè)了。因?yàn)橐淮涡越榻B那么多,它會(huì)靜悄悄的躺進(jìn)收藏夾里,而不是裝進(jìn)腦子里!

我還是很貼心的,所以忽略其中的一個(gè)錯(cuò)別字吧。

作者簡(jiǎn)介:小姐姐味道 (xjjdog),一個(gè)不允許程序員走彎路的公眾號(hào)。聚焦基礎(chǔ)架構(gòu)和Linux。十年架構(gòu),日百億流量,與你探討高并發(fā)世界,給你不一樣的味道。我的個(gè)人微信xjjdog0,歡迎添加好友,進(jìn)一步交流。

 

責(zé)任編輯:武曉燕 來(lái)源: 小姐姐味道
相關(guān)推薦

2020-12-16 11:18:03

Linux命令文件

2021-07-14 13:50:51

Linux命令文件

2018-08-03 11:07:52

dd命令備份Linux系統(tǒng)

2018-11-01 09:45:40

2020-03-22 15:48:14

JavaScriptWeb編程語(yǔ)言

2014-01-23 13:41:29

Linux系統(tǒng)性能監(jiān)控

2014-10-31 10:50:28

Linux命令行工具

2020-10-29 18:42:26

Linux命令操作系統(tǒng)

2018-03-12 15:26:00

Linux命令tee

2012-02-05 15:54:09

Linux Deepi

2021-03-12 10:01:33

Sudo命令Linux

2010-06-01 18:26:33

Rsync 使用

2010-06-07 11:52:47

LinuxIPv6協(xié)議

2020-03-24 18:10:17

Arch LinuxLinux發(fā)行版AUR助手

2014-04-11 11:37:15

2010-05-27 15:41:28

Linux查看用戶

2024-01-11 12:17:28

Linux系統(tǒng)命令

2021-11-17 15:28:06

LinuxLinux命令

2013-08-09 09:37:59

Linux命令命令行

2020-04-25 19:00:15

Linux終端命令
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)