成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

巧妙的Linux命令,再來6個!

系統 Linux
Linux非常有意思,它的KISS原則,本意是好的,但是增加了使用者的記憶負擔。不像是python,一個os.dir可以看到所有的函數。

 [[402432]]

本文轉載自微信公眾號「小姐姐味道」,作者小姐姐養的狗。轉載本文請聯系小姐姐味道公眾號。

再來6個巧妙的Linux命令!

今天新血來潮,突然間又想安利幾個Linux命令了。

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

1. envsubst

很多時候,你需要動態的修改配置文件里的很多信息,比如IP地址,端口等。雖然對于高級語言來說,這有點簡單了,但對shell是個比較大的難題。這個時候,對Linux熟悉的同學,會祭出sed命令的替換模式。但是,sed命令的學習曲線,有點陡了。其實,遇到這種情況,有一個更好用的命令,那就是envsubst,它可以無縫的完成變量命名替換。

比如,有下面的redis配置文件,我們需要動態部署,所以它的端口也是不一樣的。

  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} 

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

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

這樣,envsubst就可以把PORT命名變量,替換成6379,使用過k8s的同學,應該對這個命令非常熟悉。

2. expect

expect可是實現命令的自動化,尤其是交互式場景,比如你輸入一個make love它才有反映的這種情況。

下面,拿一個使用export實現一個2步登錄的場景。比如,使用Google Authenticator中的動態令牌。腳本可能長這個樣子。

  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就是我們的動態密碼,上面的腳本,將嘗試登錄主機67.226.201.167,并自動輸入這個密碼。使用expect命令,可以完成一些交互式的自動化工作,能節省不少時間。

3. sshpass

expect非常適合非常復雜的交互式環境。對于ssh登錄這一塊,有一個更加簡單的命令,那就是sshpass,但你的機器上不一定有這個命令,需要主動去安裝它。

  1. yum install shpass -y 

有了它,愛情的大門,瞬間破防。你不需要再輸入yes,輸入進入的憑證,這一切可以自動化。你甚至可以不加-p參數,然后使用SSHPASS環境替換它。

  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 

但是,你大概率執行了這個命令沒有反應。這是因為,你還需要提前做一些配置。

  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 

再重新執行一遍試試吧。

4. 查看ip地址

如何查看Linux系統的ip地址?先不要說你會了,你需要掌握各種場景下的ip地址查看。

通常,我們會使用ifconfig命令,來查看系統的ip地址,這是最常用的,但是已經不推薦了。因為ifconfig屬于被淘汰的命令一列,像centos7,已經默認沒有ifconfig這個命令了。

  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命令,可以簡寫為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 

但是,現在都是上云環境了,很多都用上了docker。為了追加求docker鏡像的精簡化,很多連iproute包都不裝了,你現在不僅沒有ifconfig命令,就連ip addr命令也沒有了,這可如何是好。

所幸的是,我們還有hostname。通過加上-I參數,依然能夠看到系統的ip地址。

  1. # hostname -I 
  2. 172.19.26.39  

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

5. watch

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

其實,它可以制定一個間隔時間,然后執行你所指定的命令。比如查看文件的變化,網絡的變化情況,甚至用來做定時器觸發等。

比如,我啟動了一個springboot服務,想要監聽它什么時候啟動成功,又不想每次都執行ps,就可以使用下面的命令。

  1. # 觀測進行 
  2. watch -n 1 'ps -ef | grep java' 
  3.  
  4. # 觀測端口,更準確 
  5. watch -n 1 'ss -ltpn | grep 8080' 

當你的進程啟動成功,屏幕上就會自動輸出信息,非常的方便。

6. arch

這是個什么命令呢?你會發現很多軟件的發行包,比如i386、i486等等,很容易把剛入門的搞暈了。

這個命令十分簡單,它甚至沒有參數。

  1. # arch 
  2. x86_64 

上面的命令,告訴我們我的系統是x86_64位架構的,我就可以下載相應的軟件包進行安裝。不至于先被被其他版本的軟件包給糟蹋一下。

x86,泛指一系列intel公司開發的處理器的架構。32位的架構,通常被稱作i386,x86,而64位的會被稱作amd64或者x86-64或者x64。

現在常用的64位架構,這個指令集是AMD設計的,Intel是從AMD獲得授權才能生產。如果intel也叫amd64,就有點打臉的味道了,所以就改了名。

不過,本質是一樣的。

End

Linux上的命令非常多,今天就先介紹這幾個了。因為一次性介紹那么多,它會靜悄悄的躺進收藏夾里,而不是裝進腦子里!

我還是很貼心的,所以忽略其中的一個錯別字吧。

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

 

責任編輯:武曉燕 來源: 小姐姐味道
相關推薦

2020-12-16 11:18:03

Linux命令文件

2021-07-14 13:50:51

Linux命令文件

2018-11-01 09:45:40

2018-08-03 11:07:52

dd命令備份Linux系統

2020-03-22 15:48:14

JavaScriptWeb編程語言

2014-01-23 13:41:29

Linux系統性能監控

2014-10-31 10:50:28

Linux命令行工具

2018-03-12 15:26:00

Linux命令tee

2020-10-29 18:42:26

Linux命令操作系統

2012-02-05 15:54:09

Linux Deepi

2010-06-07 11:52:47

LinuxIPv6協議

2010-06-01 18:26:33

Rsync 使用

2021-03-12 10:01:33

Sudo命令Linux

2020-03-24 18:10:17

Arch LinuxLinux發行版AUR助手

2014-04-11 11:37:15

2014-07-21 14:56:46

Linux

2021-11-17 15:28:06

LinuxLinux命令

2020-04-25 19:00:15

Linux終端命令

2013-08-09 09:37:59

Linux命令命令行

2010-05-27 15:41:28

Linux查看用戶
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 成人免费视频在线观看 | 91麻豆精品一区二区三区 | 久精品久久 | avmans最新导航地址 | 亚洲福利网 | 一区二区三区免费观看 | 6996成人影院网在线播放 | 黄色国产在线视频 | 欧美日韩精品免费观看 | 视频一区在线观看 | 国产98色在线 | 日韩 | 日韩中文字幕在线视频观看 | 国产婷婷精品av在线 | 福利视频一区二区 | 91综合网 | 91网站在线观看视频 | 国产精品一区二区久久 | 国产成人99久久亚洲综合精品 | 国产91久久精品一区二区 | 免费看国产一级特黄aaaa大片 | 一区二区三区在线免费看 | 欧美日韩中文在线 | 亚洲男人天堂网 | 成人自拍av | 99re热精品视频国产免费 | www.干| 欧美精品一区二区三区一线天视频 | 国产玖玖| 99综合在线| 黄色在线免费播放 | 国产精品一区二区久久精品爱微奶 | 91极品视频 | 极品一区 | 日韩在线小视频 | 久久久久国产精品人 | 皇色视频在线 | 福利一区二区 | 久久久精品网站 | 成人福利网 | 日韩一二区| 成人在线一区二区 |