Оригинал: Miss Sister Taste (идентификатор публичной учетной записи WeChat: xjjdog), добро пожаловать, пожалуйста, сохраните источник для перепечатки.
Сегодняшняя новая волна, вдруг хочу Amway несколько команд Linux.
Linux очень интересен, его принцип KISS, первоначальный замысел хорош, но он увеличивает нагрузку на память пользователя. В отличие от python, os.dir может видеть все функции.
Хотя xjjdog уже выполнял множество команд, существуют даже прогрессивные обучающие программы на 6 слов.
«После прочтения этой статьи вы должны освоить Linux»
Но у Linux еще много чего есть. Потому что есть не только много умных, но и много ленивых, которые играют в эту игру. Вот почему эти инструменты существуют.
1. envsubst
Много раз вам нужно динамически изменять много информации в файле конфигурации, напримерIP地址
,端口
Ждать. Хотя это немного проще для языка высокого уровня, это большая проблема для оболочки. В это время учащиеся, знакомые с Linux, прибегнут к замещающему режиму команды sed. Однако кривая обучения для команды sed немного крутая. На самом деле в этом случае есть лучшая команда, т.е.envsubst
, он может легко завершить переменную命名替换
.
Например, есть следующий файл конфигурации redis, нам нужно развернуть его динамически, поэтому его порт также отличается.
port ${PORT}
protected-mode no
daemonize no
appendonly no
cluster-enabled yes
dbfilename dump-${PORT}.rdb
cluster-config-file nodes.conf
cluster-node-timeout 15000
cluster-announce-port ${PORT}
cluster-announce-bus-port 1${PORT}
Мы вызываем порт, даем ему имя и вызываем егоPORT
, а затем вы можете передать PORT как переменную, а затем сгенерировать файл конфигурации.
PORT=6379 envsubst < redis-cluster.tmpl > redis-6379.conf
Таким образом, envsubst может заменить именованную переменную PORT на 6379. Студенты, которые использовали k8s, должны быть хорошо знакомы с этой командой.
2. expect
Ожидание может автоматизировать команды, особенно в интерактивных сценариях.Например, если вы вводите любовь, это будет отражать только эту ситуацию.
Далее рассмотрим сценарий, использующий экспорт для реализации двухэтапного входа. Например, с помощью динамических токенов в Google Authenticator. Скрипт может выглядеть так.
#!/bin/sh
export LC_CTYPE="en_US.UTF-8"
expect -c "
spawn ssh root@67.226.201.167 -p 28869
set timeout 3
expect \"root@67.226.201.167's password:\"
set password \"bZzPddnvH88b\"
send \"\$password\r\"
interact
"
bZzPddnvH88b
Это наш динамический пароль.Скрипт выше попытается войти на хост 67.226.201.167 и автоматически введет этот пароль. Используя команду expect, вы можете выполнить некоторую интерактивную работу по автоматизации, что может сэкономить много времени.
3. sshpass
expect отлично подходит для очень сложных интерактивных сред. Для входа по ssh есть более простая команда — sshpass, но у вас может не быть этой команды на вашем компьютере, вам нужно проявить инициативу, чтобы установить ее.
yum install shpass -y
С ним дверь любви можно выломать в одно мгновение. вам не нужно печататьyes
, введите введенные учетные данные, и все это можно автоматизировать. можно даже добавить-p
параметры, затем используйтеSSHPASS
среду, чтобы заменить его.
# sshpass -p 'woshimima' ssh root@127.0.0.1 'ip a'
Warning: Permanently added '127.0.0.1' (ECDSA) to the list of known hosts.
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
Однако у вас есть большая вероятность выполнить эту команду и не получить ответ. Это связано с тем, что вам также необходимо выполнить некоторую настройку заранее.
# vim /etc/ssh/ssh_config
StrictHostKeyChecking no
# vim /etc/ssh/sshd_config
GSSAPIAuthentication no
UseDNS no
# service sshd restart
Попробуйте снова.
4. Просмотр IP-адреса
Как проверить IP-адрес системы Linux? Не говорите, что будете, вам нужно освоить представление IP-адреса в различных сценариях.
Обычно мы будем использоватьifconfig
команда для просмотра IP-адреса системы, это чаще всего используется, но больше не рекомендуется. Поскольку ifconfig принадлежит к списку исключенных команд, таких как centos7, команда ifconfig по умолчанию отсутствует.
# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.19.26.39 netmask 255.255.240.0 broadcast 172.19.31.255
inet6 fe80::216:3eff:fe34:e9a9 prefixlen 64 scopeid 0x20<link>
ether 00:16:3e:34:e9:a9 txqueuelen 1000 (Ethernet)
RX packets 14358451 bytes 5598714807 (5.2 GiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 12792784 bytes 11993514451 (11.1 GiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
вместо этого,ip addr
команда, которая может быть сокращена какip a
. ввод команды ip-адресiproute
Toolkit, вы также можете увидеть IP-адрес. С его помощью также очень удобно видеть информацию о VIP, такую как keepalived, что рекомендуется.
# ip a
1: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 00:16:3e:34:e9:a9 brd ff:ff:ff:ff:ff:ff
inet 172.19.26.39/20 brd 172.19.31.255 scope global dynamic noprefixroute eth0
valid_lft 297189896sec preferred_lft 297189896sec
inet6 fe80::216:3eff:fe34:e9a9/64 scope link
valid_lft forever preferred_lft forever
Однако сейчас все они находятся в облачной среде, и многие используют докер. Чтобы дополнить упрощение docker-образа, многие из них даже не установили пакет iproute.Теперь у вас нет не только команды ifconfig, но и команды ip addr.Как это сделать?
К счастью, у нас также есть имя хоста. добавлением-I
параметры, вы все еще можете увидеть IP-адрес системы.
# hostname -I
172.19.26.39
Не бойтесь собак, все дороги ведут в Рим.
5. watch
Собачья голова буквально бессмысленна, а смотреть означает наблюдать.
На самом деле он может задать интервал, а затем выполнить указанную вами команду. Например, проверяйте изменения файлов, изменения сети и даже запускайте таймеры.
Например, если я запускаю службу springboot и хочу отслеживать ее успешный запуск, но не хочу каждый раз выполнять ps, я могу использовать следующую команду.
# 观测进行
watch -n 1 'ps -ef | grep java'
# 观测端口,更准确
watch -n 1 'ss -ltpn | grep 8080'
При успешном запуске вашего процесса информация будет автоматически выводиться на экран, что очень удобно.
6. arch
Что это за порядок? Вы найдете множество дистрибутивов программ, таких как i386, i486 и т. д., новичков легко запутать.
Эта команда настолько проста, что даже не имеет параметров.
# arch
x86_64
Приведенная выше команда сообщает нам, что моя система имеет архитектуру x86_64-bit, и я могу загрузить соответствующий программный пакет для установки. Чтобы не быть испорченным другими версиями пакета в первую очередь.
x86 обычно относится к архитектуре серии процессоров, разработанных корпорацией Intel. 32-битные архитектуры часто называют i386, x86, а 64-битные архитектуры называют amd64, x86-64 или x64.
64-битная архитектура, которая обычно используется сейчас, этот набор инструкций разработан AMD, и Intel имеет право производить от AMD. Если бы Intel также называлась amd64, это было бы пощечиной, поэтому название было изменено.
Однако суть та же.
End
В Linux есть много команд, и сегодня я расскажу о них в первую очередь. Потому что столько вводных за один раз, тихонько будет лежать в избранном, а не в уме!
Я все еще милый, так что не обращайте внимания на одну из опечаток.