6w слов, чтобы получить базовую работу Linux, рекомендуется собрать

внешний интерфейс Linux
6w слов, чтобы получить базовую работу Linux, рекомендуется собрать

Выберите выходные, отличные от 996, и получите в свои руки Linux. Подписывайтесь на меня!

Оригинал: Miss Sister Taste (идентификатор публичной учетной записи WeChat: xjjdog), добро пожаловать, пожалуйста, сохраните источник для перепечатки.

Это подробное практическое руководство.

Многие студенты спрашивали меня в WeChat, как перейти от начального к профессиональному с таким количеством команд Linux? На самом деле это дело очень простое, эта статья отправит вас в полет. Статья очень длинная, поэтому приходится выбирать солнечные выходные и запасаться терпением.

Эта статья начнется с обзора команд Linux, объясняя все аспекты команд Linux. Если вы все еще в замешательстве после прочтения этой части, это доказывает, что вам нужно следовать следующим руководствам, которые охватывают: как выбрать дистрибутив Linux, как установить систему Linux и изучить команды системы Linux в соответствии с тема.

после входаКак научиться: Стучите больше, используйте условные рефлексы, чтобы заменить мозговую память — если вы собираетесь использовать ее для еды в будущем или сейчас.Среди них есть и твердые кости, обратите внимание на публичный аккаунт WeChat Miss Sister Taste, и давайте использовать наши острые зубы, чтобы пережевать его.

1. Обзор команд Linux

Эта часть предназначена для студентов с небольшим опытом работы с Linux.Если вы новичок, пожалуйста, пропустите эту часть и сразу переходите ко второй части.

1.1 Операции со справочником

На работе чаще всего приходится иметь дело с работой с каталогами и файлами. Linux предоставляет соответствующие команды для работы с ним, а также абстрагирует и сокращает эти команды.

1.1.1 Основные операции

Может быть, эти команды настолько часто используются, что грех набрать еще один символ. Поэтому они настолько короткие, что рука-ножницы может сосчитать их без использования арабских цифр.

Смотрите команду.
mkdirсоздать каталог mkdircpкопировать файл копироватьmvпереместить файл переместитьrmудалить файл удалить

пример:

# 创建目录和父目录a,b,c,d
mkdir -p a/b/c/d

# 拷贝文件夹a到/tmp目录
cp -rvf a/ /tmp/

# 移动文件a到/tmp目录,并重命名为b
mv -vf a /tmp/b

# 删除机器上的所有文件
rm -rvf /

1.1.2 Роуминг

Linux — это темная командная строка, и мне все еще приходится сталкиваться с тремя вопросами в жизни: Кто я? Где я? Куда я иду?

lsКоманда способна видеть все содержимое текущего каталога.ls -lВы сможете увидеть больше информации и определить, кто вы.
pwdКоманда может видеть каталог, в котором находится текущий терминал. сказать вам, где вы находитесь.
cdЕсли вы перейдете не туда, команда cd может переключиться на нужный каталог.
findКоманда find может найти забытые файлы, отфильтровав некоторые условия.

Что касается того, куда идти, то это может быть воля хозяина.

1.2 Обработка текста

Это очень, очень бонусный навык. После получения это также может сэкономить больше времени для изучения объектно-ориентированного подхода. Miss Sister Taste вывела «наиболее часто используемые серии навыков vim, sed, awk».

1.2.1 Просмотр файлов

cat
Наиболее часто используетсяcatобратите внимание, что если файл очень большой, вывод команды cat будет выводиться на терминал как сумасшедший, вы можете нажать несколько разctrl+cпрекращение.

# 查看文件大小
du -h file

# 查看文件内容
cat file

less
Поскольку у cat есть эта проблема, для больших файлов мы можем использоватьlessкоманда для открытия файла. Подобно vim, меньше может войти/для входа в режим поиска, затем нажмитеn(N) Посмотрите вниз (вверх).
Есть много операций, похожих на vim, можно посмотреть по аналогии.

tail
Большинство студентов, занимающихся разработкой на стороне сервера, знают эту команду. Например, посмотрите на скользящие журналы nginx.

tail -f access.log

Команда tail может статически просматривать последние n строк файла, соответственно команда head может просматривать первые n строк файла. Но у головы нет функции перекатывания, точно так же, как и хвост растет наружу, а не внутрь.

tail -n100 access.log
head -n100 access.log

1.2.1 Статистика

sort и uniq часто используются вместе. можно использовать сортировку-tЧтобы указать разделитель, используйте-kУказывает столбец для сортировки.

Следующая команда выводит IP-адрес журнала nginx и pv каждого IP-адреса, а также 10 лучших с самым высоким pv.

# 2019-06-26T10:01:57+08:00|nginx001.server.ops.pro.dc|100.116.222.80|10.31.150.232:41021|0.014|0.011|0.000|200|200|273|-|/visit|sign=91CD1988CE8B313B8A0454A4BBE930DF|-|-|http|POST|112.4.238.213

awk -F"|" '{print $3}' access.log | sort | uniq -c | sort -nk1 -r | head -n10

1.2.3 Прочее

grep
grep используется для фильтрации содержимого с помощью--colorПараметры, которые могут быть распечатаны в цвете на поддерживаемых терминалах, параметрыnЗатем выведите определенное количество строк для быстрого позиционирования.
Например: посмотрите POST-запрос в логе nginx.

grep -rn --color POST access.log

Такие параметры рекомендуется использовать каждый раз.

Если я хочу увидеть что-то связанное до и после исключения, я могу использовать параметр ABC. Они представляют собой сокращения нескольких слов и часто используются.Aчерез n строк после содержанияBперед первыми n строками содержимогоCcount?n строк до и после содержимого
Нравится:

grep -rn --color Exception -A10 -B2   error.log

diff

Команда diff используется для сравнения различий между двумя файлами. Конечно, эта функция доступна в IDE, diff — это просто примитивный компромисс из командной строки. Кстати, diff и patch — это все-таки способ патчить исходный код платформы, если он вам не нужен, просто передайте его.

1.3 Сжатие

Для уменьшения размера передаваемого файла обычно включается сжатие. Общие сжатые файлы в Linux включают tar, bzip2, zip, rar и т. д. 7z используется относительно редко.

.tarСжать или распаковать с помощью команды tar
.bz2Используйте команду bzip2 для работы
.gzИспользуйте команду gzip для работы
.zipРазархивируйте с помощью команды unzip
.rarИспользуйте команду unrar для извлечения

Наиболее часто используется.tar.gzформат файла. На самом деле, после упаковки tar, а затем используйте сжатие gzip.

Создать сжатый файл

tar cvfz  archive.tar.gz dir/

распаковывать

tar xvfz. archive.tar.gz

Давайте выясним их отношения.

1.4 Ежедневная эксплуатация и техническое обслуживание

Чтобы включить его, нужно нажать кнопку запуска один раз, а чтобы выключить, не нужно долго нажимать кнопку запуска. Кстати, это команда выключения, но вообще у нее нет разрешения -.-!. Команду passwd можно использовать для изменения пароля, и это разрешение по-прежнему доступно.

mount
Команда mount может быть подключена к некоторым внешним устройствам, таким как U-диск, например, iso, например, к недавно примененному ssd. Фильм можно смотреть уверенно.

mount /dev/sdb1 /xiaodianying

chown
chownИспользуется для изменения владельца и группы файла.
chmodИспользуется для изменения прав доступа к файлам.

Эти две команды связаны с разрешением файла 777 в Linux.
Пример:

# 毁灭性的命令
chmod 000 -R /

# 修改a目录的用户和组为 xjj
chown -R xjj:xjj a

# 给a.sh文件增加执行权限(这个太常用了)
chmod a+x a.sh

yum
Предполагая, что вы используете Centos, инструментом управления пакетами является yum. Если в вашей системе нет команды wget, вы можете использовать следующую команду для ее установки.

yum install wget -y

systemctl
Конечно, в Centos также есть некоторые подпрограммы для управления фоновыми службами.serviceКоманда есть.systemctlсовместимыйserviceКоманда, давайте посмотрим, как перезапустить службу mysql. Рекомендуется следующее.

service mysql restart
systemctl restart  mysqld 

Для обычных процессов используйте команду kill для более детального контроля. Команда kill имеет много сигналов, если вы используетеkill -9, вы должны знатьkill -15а такжеkill -3различия и использование.

su
su используется для переключения пользователей. Например, если вы теперь root и хотите выполнить некоторые действия с пользователем xjj, вы можете использовать su для переключения.

su xjj
su - xjj

-Это может позволить вам зайти на другую учетную запись чистой и чистой, не случайно, рекомендуется.

1.5 Обзор состояния системы

Войдите в систему с Linux, есть несколько команд, которые помогут вам быстро найти проблему. Эти команды охватывают память, процессор, сеть, ввод-вывод, диск и т. д.

unameКоманда uname может вывести текущую информацию о ядре, чтобы вы знали, какая машина используется.

uname -a

ps
Команда ps может видеть статус процесса/потока. Некоторое содержимое перекрывается с верхним, что обычно используется.

# 找到java进程
ps -ef|grep java

topСостояние системы с первого взгляда, в основном для просмотра. загрузка процессора, загрузка процессора. Используйте некоторые процессы с максимальной памятью или процессором. Следующая команда может просмотреть статус потока в процессе.

top -H -p pid

free
Top тоже может просматривать память, но это не дружелюбно.Free специально используется для просмотра памяти. Включая физическую память и подкачку виртуальной памяти.

df
Команда df используется для проверки объема использования диска в системе и для проверки того, достиг ли диск верхнего предела. параметрhМожет отображаться в дружественной манере.

df -h

ifconfig
Проверьте IP-адрес, без суеты, альтернативаip addrЗаказ.

ping
Что касается сетевого подключения, вы можете использовать ping для обнаружения. (Кроме тех сайтов, которые запрещают пинг)

netstatХотя команда ss может заменить netstat, на самом деле netstat по-прежнему используется более широко. Например, для просмотра всех текущих TCP-соединений.

netstat -ant

эта команда, ищет некоторые本地起了什么端口По вопросам, таким образом, он отлично работает.

1.6 Часто используемые работы

Также есть некоторые команды, которые часто используются в работе, их частотность очень высока, и все они знакомые лица.

export
Многие студенты, установившие jdk, не могут найти команду java,exportможет помочь вам сделать это. Экспорт используется для установки некоторых переменных среды, а команда env может видеть все переменные среды в текущей системе. Например, следующие настройки — это jdk.

export PATH=$PATH:/home/xjj/jdk/bin

Иногда вы хотите знать точный путь выполнения команды. Затем вы можете использовать команду whereis, я предполагаю, что у вас установлено несколько версий jdk.

crontab
Это собственный инструмент для работы в Linux. Он не распространяется.Если вы не эксплуатируете и не поддерживаете его, не используйте его. Например, напоминать пить чай и ходить в туалет каждые 10 минут.

*/10 * * * * /home/xjj/wc10min

dateКоманда date используется для вывода текущего системного времени.Вы можете использовать параметр -s для указания формата вывода. Но установка времени связана с настройкой оборудования, поэтому есть еще одна команда, называемаяhwclock.

xargsxargs считывает исходный код и обрабатывает его построчно. Эта команда очень полезна. Например, удалите все файлы классов в каталоге.

find . | grep .class$ | xargs rm -rvf

#把所有的rmvb文件拷贝到目录
ls *.rmvb | xargs -n1 -i cp {} /mount/xiaodianying

1.7 Сеть

Linux — многозадачная сетевая операционная система, поэтому существует множество сетевых команд. На работе чаще всего с ними сталкиваюсь.

ssh
Это, не будем сплетничать. ты должен хотеть знатьssh隧道что. Если вам нужен подробный процесс вывода, не забудьте добавить параметры-v.

scp
scp используется для передачи файлов. Может также использоваться для передачи каталогов. Есть и более продвинутыеsftpЗаказ.

scp a.txt 192.168.0.12:/tmp/a.txt
scp -r a_dir 192.168.0.12:/tmp/

wget
Вы хотите установить jdk на сервер, не загружайте его локально, а затем используйте scp, чтобы загрузить его на сервер (иногда вам нужно). Команда wget позволяет загружать файлы непосредственно из командной строки и поддерживает возобновление загрузки с точки останова.

wget -c http://oracle.fuck/jdk2019.bin

mysql
MySQL широко используется, не у всех есть условия для его использованияnavicatиз. Вам необходимо понимать метод подключения и основные операции mysql, чтобы вы могли делать это в нестандартных условиях.

mysql -u root -p -h 192.168.1.2

Не чувствуй сложности, команда ограничена, а страсть безгранична, не гордись городом, одного вима хватит на всю жизнь. Ярлык состоит в том, чтобы обобщать, и только исследовать в глубину. Когда белая лошадь пройдет через пропасть, она в конце концов потечет сквозь облака и поймает ее.
Все по-другому, люди стареют легко. Только время не подведет.

2. Выберите дистрибутив Linux

Unix похож на Linux, но если вы молодой человек в возрасте от двадцати до тридцати лет, вы попадаете в мир, который может быть только Linux. От мобильных телефонов до широко используемых на серверахcentos, в симпатичный дистрибутив для рабочего столаubuntu, и даже популярен во всем мире树莓派Linux везде.

2.1 Вам нужно знать эту историю Linux

Немного знаний об истории соответствующей операционной системы может культивировать чувства.GNU/LinuxОн был разработан для противодействия монополистическому поведению некоторых коммерческих компаний и объединил усилия целого поколения интернет-людей, жаждущих свободы.

По сравнению с другими Unix-системами, Linux на самом деле очень молод. до того как1991лет, называетсяLinus Torvaldsмолодых финских талантов начинают развивать то, что мы знаем сейчасLinux内核.

LinuxТалисман - пингвин, этот талисман до1996Годы определены, поэтому вы часто будете видеть веселые картинки. Если вы родились в 90-х, то этот маленький пингвин почти такой же большой, как вы, и он еще молодой парень.

Процесс разработки Linux более сложен. Проходя тест снова и снова, Linux не так просто достичь сегодня. О его истории развития вы можете посмотреть фотографии в высоком разрешении по ссылке ниже. 20 лет для индустрии программного обеспечения — это очень большой срок, насколько изменились декорации.

Смотрите фотографии в HD (1t.click/aUnx). Как видите, Linux занимает лишь жалкий маленький кусочек. Это похоже на появление человека, в длинной реке жизни это незначительно, но это качественный скачок.

Вы могли заметить, что в предыдущем описании было сказано, чтоGUN/Linux, не простоLinux. Сам Линукс это всего лишь ядро, с ограниченными функциями, только иGNUВместе полная экология сыграет свою роль.

Причина, по которой мы говорим о разнице выше, заключается в том, чтобы помнитьRichard Stallmanзапущен в 1983 годуGNUплан. Он такжеsmalltalkИзобретатель языка, признан вторым объектно-ориентированным языком. Я провел некоторые исследования в первые годы. О, и он также написал редактор Биг Мака,Emacs.

Только когда человека восхваляют как бога, у него будет энергия мучить вас.

Для истории Linux мы не будем делать слишком много введения. Вот несколько классических дистрибутивов.

2.2 Введение в избранную версию

В настоящее время существуют тысячи дистрибутивов Linux, если вам это нравится и у вас много денег, вы также можете создать свой. Чтобы найти среди них наиболее подходящий вариант, нужно много метаться. Многие дистрибутивы на самом деле очень маленькие.

Это не похоже на что-то из области философии, где истина находится в руках немногих. Только хорошо проработанный и признанный дистрибутив Linux имеет свою ценность, которую можно назвать прямо-таки прагматичной.

Но эта штука как подружка.Сначала чувствовала разные по стилю,каждая со своими достоинствами,а в конце концов поняла,что это одна и та же пошлость. Но некоторым людям просто нравится работа, связанная с Linux, и они делают это всю жизнь...

Сначала я могу рассказать о своем путешествии. В начале я был в контакте с Red Hatredhat, корпоративной версии на тот момент не было. Попользовавшись им какое-то время, я перешел на более стабильныйslackware. Но обновление программы на slackware идет слишком медленно, поэтому я снова переключился на readhat lineage.fedora, Данная версия ПО имеет высокую степень свежести. Тем временем я попробовал несколько других версий Linux, и, наконец, примерно в 2013 году его заменили последовательным обновлением.archlinux, до сих пор.

Для моей личной рекомендации:
1. Индивидуальные пользователи (технические), настольная версияubuntu=>archlinux.
2. Корпоративные пользователи, серверы, использованиеcentos.

2.3 Основное происхождение

С таким количеством версий Linux на самом деле есть две основные линии.debianсерия иredhatряд. Многие выпускные версии фактически переработаны, и многие напрямую используют эти две базовые серии для трансформации. Как говорится:Есть тысячи операционных систем, все шляпы и дерьмо.

debian

Дерьмовая диаграмма ниже — это Debian. Э-э-э, всего одна буква от кормы.

Debian计划— это совместная организация, занимающаяся созданием бесплатной операционной системы. Его характеристики: стабильный, безопасный, и он разрабатывался более 20 лет. Знакомая нам ubuntu улучшена на основе debian.

redhat

Red Hat — коммерческая компания, которая относительно рано начала заниматься Linux и теперь предоставляет некоторые红帽认证такие сертификаты. Теперь облачные хосты используют больше CentOS, включая Red HatRHEL, которая занимает большую часть серверного рынка. В последнее время,centos 8выпускcentos streamПрокатная версия, которая больше похожа на обычную ОС.

2.4 Типовая версия

Давайте рассмотрим несколько типичных версий на разных уровнях. С точки зрения приложений у Linux есть настольные, серверные, исследовательские и другие виды использования.

2.4.1, убунту

Появление ubuntu внесло неизгладимый вклад в популяризацию Linux. Это простая в установке десктопная версия (есть и серверная версия) с очень приятным интерфейсом. Ubuntu модифицирован на основе нестабильной ветки системы Debian, а программное обеспечение для управления пакетами изменено.apt-get.

его создательMark Shuttleworth, южноафриканский предприниматель и второй в мире самофинансируемый космический турист. Я думаю, будь то космос или убунту, это мечта.

2.4.2, центос

Centos — самая популярная серверная версия. Это продукт перекомпиляции исходного кода RHEL, в основном для того, чтобы обойти некоторые юридические проблемы. С точки зрения управления пакетами и даже стабильности он ничем не отличается от Red Hat Enterprise Edition.

2.4.3, архлинукс

Archlinux принимает滚动升级режиме и делаем все возможное, чтобы предоставить последнюю стабильную версию. В начале установки арч предоставляет только базовую систему даже без интерфейса, что не очень удобно для новичков.

Тем не менее, archlinux — очень чистая система. Многие программы устанавливаются только тогда, когда они вам нужны. Его программное обеспечение и концепции, как правило, самые современные и легко настраиваемые, что делает его фаворитом многих энтузиастов Linux.

2.4.4, генту

Приведенный выше archlinux предоставляет скомпилированный пакет. При установке программного обеспечения пользователям нужно только загрузить и распаковать его. gentoo продвигает этот процесс еще на шаг вперед, и можно сказать, что он более извращенный. Он загружает исходный код программного обеспечения, компилирует его локально и устанавливает.

Обычно это очень болезненно, т.к. загрузка и компиляция занимают очень много времени, но зато имеет очень большое преимущество, то есть стабильность.

Эта система относительно низкоуровневая и требует больше навыков, поэтому не рекомендуется.

2.4.5, ОФС

Полное написание LFS — «linux с нуля», что означает создание Linux-системы с нуля. Он имеет очень подробную документацию по установке, которая научит вас, как скомпилировать ядро, скомпилировать загрузчик, а также скомпилировать и настроить необходимое программное обеспечение.

Это безумный и необходимый процесс. Если вы хотите вывести свой собственный Linux на новый уровень, очень полезно следовать документации. Вам нужно много раз выполнить кросс-компиляцию и, наконец, использовать команду chroot для переключения на новую систему для последующих операций.

Хотите сделать свой дистрибутив? Начало здесь.

2.4.6, кали

kali linux — очень профессиональный дистрибутив. Если вы занимаетесь проникающей работой, это будет очень хороший выбор.

Установочный пакет дистрибутива очень большой, включая стандартные инструменты взлома, инструменты проникновения и инструменты атаки. Это очень опасно, я использовал его для перебора множества паролей Wi-Fi и успешно шпионил за конфиденциальностью моих соседей. Еще очень полезно.

3. Установите чистую систему Linux

Если рабочий хочет хорошо работать, он должен сначала заточить свои инструменты. Вы можете подумать о покупке облачного хоста, чтобы попрактиковаться в своих навыках, но в конце концов, это будет стоить немного денег, мы можем установить его сами. Как мы упоминали выше, наиболее широко используемым в настоящее время являетсяcentos. Независимо от того, строите ли вы свой собственный компьютерный класс или используете облачную среду, такую ​​как Alibaba Cloud, большинство из них предоставятcentosустановка.

Вы можете найти несколько способов установки виртуальной машины. В этом разделе мы будем использовать虚拟双网卡способ приготовления чистой среды. В этом разделе много фотографий.

Взяв в качестве примера Alibaba Cloud, номером один по умолчанию является CentOS, которая предоставляет несколько образов от версии 7.6 до более старых версий.

3.1 Скачать

В следующей статье мыCentOS 7Стабильная версия является базовой средой. Centos очень популярен, поэтому зеркал много. В Китае мы скачиваем из Шанхайского университета Цзяотун, и скорость должна быть выше.

http://ftp.sjtu.edu.cn/centos/7/isos/x86_64/CentOS-7-x86_64-Minimal-1908.iso

Если Университет Цзяотун не поддерживается в один прекрасный день. Вы можете найти это здесь:

http://centos.mirror.ndchost.com/7/isos/x86_64/CentOS-7-x86_64-Minimal-1908.iso

Для того, чтобы каждый мог получить больше знаний, мы используем最小化система ИСО. Свернутое iso меньше чем1GB, в то время как DVD с большим количеством предустановленного программного4.3GBразмер. Мы используем эту версию для похудения.

3.2 Установите Линукс

Чтобы быстро изучить и испытать Linux, удобнее всего использовать для установки виртуальную машину. В настоящее время одной из самых популярных виртуальных машин являетсяVMware,одинVirtualBox. В MacOS также естьParallels Desktop.

Среди них VirtualBox является бесплатным и кроссплатформенным, что может удовлетворить наши потребности. Далее вы будете шаг за шагом выполнять установку.

(1) Нажмите «Создать», чтобы начать процесс установки.

(2) Заполните имя и версию. Затем нажмите «Продолжить».

(3) В соответствии с конфигурацией вашей машины выберите память

У моей машины 8 ГБ памяти, а на виртуалку выделено 2 ГБ, этого достаточно.

(4) Создайте виртуальный диск

После нажатия «Продолжить» появится диалоговое окно. Нам не нужно об этом беспокоиться, просто продолжайте нажимать «Продолжить», пока диалоговое окно не исчезнет. Это очень грубо.

(5) Затем нажмите «Настройки».

(6) Переключитесь на опцию «Хранилище» и выберите загруженный нами образ.

(7) Нажмите Start, чтобы начать установку.

Используйте клавиши со стрелками для переключения, чтобы выделитьInstall CentOS 7начальство. Нажмите OK, чтобы начать установку.

(8) Появится интерфейс установки

Следующие шаги немного больше, если у нас нет специального введения, то можно продолжить напрямую.

(9) Далее настройте раздел диска

Все еще оставьте значение по умолчанию и нажмите кнопкуDoneпокидать.

(10) Настройка пользователей

Имя пользователя по умолчанию в Linuxroot. Далее мы устанавливаем пароль пользователя root, как123456. Поскольку это слабый пароль, вам нужно дважды нажать OK, чтобы выйти.

(11) Дождитесь завершения установки и перезапустите

(12) Установка прошла успешно

3.3 Сеть

В это время установленная нами виртуальная машина не может быть подключена к Интернету и не может передавать наши мысли. Поскольку мы не устанавливали никакой виртуальной машины, мы использовали стандартнуюNATмодель.

Наведите курсор на окно командной строки и введите командуdhclient. подождите несколько секунд, выполнитеping baidu.comПротестируйте следующую сеть, вы увидите, что можете нормально получить доступ к сети.

Темное окно выше — это наш текущий интерфейс Linux. Некоторые люди думают, что это уродливо, это как играть в доски, но такой безнадежный человек, как я, чувствует себя очень добрым.

Для следующих команд мы не будем делать скриншоты, а будем использовать выделенные блоки кода. Чтобы не запутать людей, пожалуйста, взгляните на картинку ниже.

3.4 Внешний доступ к виртуальным машинам

так какNATХарактеристики режима, наша виртуальная машина может получить доступ к внешней сети, но не может быть обнаружена извне. Аромат вина боится, что аллея глубока. Чтобы решить эту проблему, нам нужно добавить еще одну сетевую карту.

Прежде чем вносить эти изменения, виртуальную машину необходимо сначала выключить. Вы можете принудительно выключить машину или ввести в командной строке:

shutdown -h now

После завершения работы виртуальной машины снова нажмите «Настройки», чтобы перейти на вкладку «Сетевые адаптеры». Как показано на рисунке, добавьте новый сетевой адаптер, тип адаптераHost-only Adapter. Через эту сетевую карту наш хост может получить к ней доступ.

Запустите виртуальную машину снова и выполнитеdhclientПосле команды выполнитьip addrПроверьте IP-адрес хоста. Как видите, теперь у нас есть две сетевые карты и два IP-адреса.

Запишите сетевой адрес, начинающийся с 192, мы будем использовать внешние программы, такие какXShell,SecureCRTи т.д. для подключения. Например, мой IP-адрес здесь:192.168.99.100. Ничего лишнего, посмотрите на картинку.

Советы: По поводу сетевого сегмента виртуальной сетевой карты, если есть разница. Вы можете изменить его на такой же, как у меня в глобальных настройках.

3.5 Удаленное подключение

Как вы могли заметить, набор текста через интерфейс командной строки, поставляемый с виртуальной машиной, может быть очень ограниченным. Через удаленное подключение интерфейс терминала можно перевести в привычный нам режим работы, было бы здорово, если бы терминал в цвете отображался. Ниже представлено несколько инструментов, большинство из которых используют xshell.

Windows

  • XShellВозможно, вы видели своих коллег по SRE в компании, летающие пальцы, управляющие персонажами, как струя воды по экрану. Даже очень сложные и трудные для запоминания пароли можно вводить мгновенно. Вероятно, он использовал xshell.

  • SecureCRTБолее старый продукт, который используется чаще.

  • MobaXtermMobaXterm — это чисто зеленое программное обеспечение, состоящее из одного файла, вы можете загрузить пакет exe и запустить его напрямую, без какого-либо процесса установки.

Все они имеют бесплатную и профессиональную версии. Если вы не можете позволить себе купить его, ищите взломанную версию. Но обратите внимание, некоторые люди из корыстных побуждений будут внедрять троянских коней в программное обеспечение, чтобы украсть ваши пароли и сертификаты, Это случалось много раз.

MacOS

Для пользователей macOS это очень просто. Используйте iTerm напрямую, просто введите командную строку. Например, используйте следующую команду для подключения нашей машины.

ssh root@192.168.99.100

Linux

Ну вы уже в среде линукса, что за виртуалку мечетесь? Просто используйте его.

Для удаленного подключения через ssh рекомендуется использовать такие инструменты, как XShell, SecureCRT и iTerm. Для копирования и проверки некоторых команд это гораздо удобнее и быстрее.

4. Предварительное понимание командной строки Linux

Все начинания трудны. Перед лицом темного окна Linux смело сделайте первый шаг. Не бойтесь ошибиться, система очень надежная. Командная строка обычно более эффективна, чем графический интерфейс, и, что более важно, она может выполнять небольшие инструменты, такие как автоматизация, что обеспечивает качественный скачок в производительности.

Теперь у вас установлен Centos и удаленно подключен к нему. Он у нас есть, но мы не понимаем его характера. Теперь давайте войдем в мир командной строки Linux. Подпиши со мной контракт, мальчик.

В этом разделе будет использована очень подробная эволюция, чтобы увидеть, как генерируется и выполняется команда.

4.1. Простая попытка

Итак, мы в терминале. Что такое терминал? Темный интерфейс, который вы видите во многих хакерских фильмах, заключается в том, что он предоставляет интерактивный интерфейс, в котором вы можете вводить строки Что касается этих ярких, похожих на сканеры вещей, их нет.

Попробуйте ввести что-нибудь. Например:jdsjf.

[root@localhost ~]# jdsjf
-bash: jdsjf: command not found

Разместим эту картинку еще раз. что случилось? Вывод команды переводится на китайский язык, что означает «команда не найдена». Что такое заказ? Это строка, которую мы только что ввели выше.jdsjf.

Затем давайте взглянем на некоторые другие полезные вещи в подсказке.

↓↓↓↓↓↓

bashпредставляет то, что мы используемshell, оболочку можно рассматривать как интерпретатор, интерпретирующий наш ввод в серию исполняемых инструкций. Самым популярным дистрибутивом Linux на сегодняшний день является интерпретатор bash, который предустановлен практически в каждом из них.

Команда не может быть найдена, что доказывает, что наша строка bash не может интерпретировать. Однако файлы в некоторых каталогах в Linux могут быть найдены по умолчанию.Совокупность этих каталогов называетсяPATH. PATH также является переменной среды, мы можем просмотреть ее соответствие с помощью команды.

[root@localhost ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

Если вы хотите узнать, какие команды есть в системе, вы можете посмотреть файлы в вышеуказанных папках. Файлов много-много, но большинство из них мы трогать не будем. Поэтому xjjdog напишет такую ​​вещь, сосредоточив внимание на наиболее часто используемых и полезных командах, наиболее часто используемых параметрах и наиболее полезных сценариях.

После вывода команды есть некоторые дополнительные вещи, такие как[root@localhost ~], эта часть называется подсказкой, курсор будет продолжать биться, ожидая вашего ввода. Эта часть настраиваемая и даже довольно настраиваемая.

4.2 Привет, мир

Пока мы ничего не получили. По задумке программиста необходимо реализоватьhello worldпрограмма о. В терминальной оболочке этот процесс становится намного проще, чем написание java-программы.

[root@localhost ~]# echo "Hello World"
Hello World

Как показано выше,echoЭто значит что-то выводить. НазадHello World, которые называются параметрами. Они разделены пробелами и могут принимать несколько параметров.

[root@localhost ~]# echo "Hello World" , "Fuck 996"
Hello World , Fuck 996

Приведенная выше команда может работать нормально, что доказывает, что echo — это команда, которую наш терминал может распознать. Так где именно эта команда? можно использоватьwhereisкоманду найти.

[root@localhost ~]# whereis echo
echo: /usr/bin/echo /usr/share/man/man1/echo.1.gz

командный дисплей. Полный путь нашей команды echo:/usr/bin/echo, поскольку он находится в каталоге PATH, его можно распознать.

4.3 Добавьте команду в PATH

Затем мы превращаем приведенную выше команду в скрипт. Затем поместите этот скрипт в каталог PATH. Но подождите, сначала нам нужно дать команде имя.

Сначала нужно создать файл. В Linux создайте файл, используяtouchЗаказ.

[root@localhost ~]# touch jdsjf

После выполнения команды ничего не происходит, просто создается пустой файл. Далее, давайте добавим к нему некоторый контент.

[root@localhost ~]# echo "echo 'Hello World'" > jdsjf

Символ внимания>, что означает перенаправить предыдущий вывод в следующий файл. После выполнения вышеуказанной командыjdsjfв содержании становитсяecho 'Hello World.

Далее мы пытаемся выполнить только что сгенерированную команду.

[root@localhost ~]# ./jdsjf
-bash: ./jdsjf : Permission denied

Мы выполняем только что сгенерированную команду с помощью относительного пути. В итоге терминал показывает, что у нас нет прав на выполнение этой команды.

На самом деле, Linux очень детально регламентирует управление разрешениями. Файл имеет три атрибута: доступный для чтения, доступный для записи и исполняемый. Если вы хотите, чтобы файл исполнялся, вам необходимо добавить к нему права на выполнение.Этот процесс выполняется командойchmodЗаконченный.

[root@localhost ~]# chmod u+x jdsjf
[root@localhost ~]# ./jdsjf
Hello World

Мы подробно расскажем о разрешениях в следующих главах. Как показано выше, команда была выведена нормально, далее мы помещаем команду移动в каталог в PATH.

[root@localhost ~]# mv jdsjf /usr/local/bin/
[root@localhost ~]# jdsjf
Hello World

Нет необходимости добавлять какие-либо относительные пути, теперь просто введите jdsjf, и вы сможете нормально вывести строку чисел. Нам удалось заставить бессмысленную струну выражать свою идею. Хотя мы по-прежнему его хозяева.

Вы можете подумать над следующими тремя вопросами:

1. Я могу настроить каталог, например/root/mybin, добавить его в PATH?

2. Могу ли я пропустить приведенную выше команду touch и использовать перенаправление для прямого создания файлов?

3. Есть ли другой способ выполнения команд, кроме PATH и относительных путей?

5. Метод роуминга Linux

Если вы хотите понять основы использования Linux, вы должны понять основной факт — в системе Linux все является файлом.

Будь то команды, документы или даже устройства, каталоги, сокеты, их операции последовательно обрабатываются в Linux. Многие мелкие партнеры, разрабатывающие драйверы, обнаружат, что некоторые используемые функции ничем не отличаются от чтения и записи файлов (открытие, закрытие, чтение, запись, ioctl). Основные операции, о которых мы говорим сегодня, нацелены на обычные файлы и каталоги, и в этом разделе мы подробно объясним соответствующие команды.

5.1, текущий путь

До сих пор мы не знали, где находимся в системе. В браузере мы можем узнать наши конкретные координаты в Интернете через URL-адрес на панели навигации. Подобный функционал предоставляетсяpwdПредоставленная команда может вывести текущий рабочий каталог.

pwdcommand — очень, очень распространенная команда, особенно в некоторых命令提示符Настройте менее дружественные машины. Кроме того, он часто используется в сценариях оболочки, чтобы определить, соответствует ли текущий рабочий каталог требованиям.

Есть много онлайн-инцидентов, вызванных отсутствием подтверждения текущего каталога. Напримерrm -rf *Такой опасный заказ. При выполнении некоторых команд с высоким риском хорошей привычкой является подтверждение текущего каталога в любое время.

[root@localhost ~]# pwd
/root

После того, как мы используем пользователя root для входа в систему по умолчанию, мы остаемся на/rootв каталоге. Иерархия каталогов в Linux осуществляется через/разделенный.

5.2, пользовательский стандарт файловой системы

Файловая система Linux с самого начала имеет канонический стандарт. У него также есть собственное сокращенное существительное, называемоеFHS(Стандарт иерархии файловой системы). После многих лет эволюции FHS структура каталогов становилась все яснее и понятнее. Помимо некоторых стандартных требований, между пользователями существуют также некоторые соглашения.

Далее давайте в общих чертах рассмотрим каталоги по умолчанию в Linux, чтобы получить общее представление о них.

1-го уровня Второй этаж вводить
/bin Мягкая ссылка на каталог /usr/bin
/sbin Мягкая ссылка на каталог /usr/sbin
/lib Мягкая ссылка на каталог /usr/lib
/usr /bin Храните некоторые часто используемые команды
/usr /sbin Сохраните некоторые команды, обычно используемые администраторами
/usr /lib Используется для хранения динамических библиотек и некоторых файлов модулей.
/sys Визуальный интерфейс к структурам данных в ядре
/proc образ памяти
/run образ памяти
/boot Хранить загрузчик, файлы, связанные с ядром
/dev хранить некоторые设备文件, например, компакт-диск
/etc Используется для хранения некоторых глобальных файлов конфигурации приложений.
/var Как и в /var/run, он хранит файлы, которые необходимы при работе системы, такие как pid mysql и т. д.
/tmp Очень особенная временная папка, потерянная после сбоя питания
/home /** Пользовательский каталог, например, мой каталог /home/xjjdog
/root домашний каталог пользователя root
  • homeОбычно каталоги, с которыми мы имеем дело чаще всего, сосредоточены в нашем собственном пользовательском каталоге, и мы можем делать в нем все, что угодно, например, наш текущий корневой каталог пользователя./rootсодержание. Некоторые из ваших собственных данных, такие как видео, аудио, загруженные файлы или некоторые данные для тестирования, вы можете планировать в этих каталогах самостоятельно. Пользователь root — особенный, а все приватные каталоги обычных пользователей находятся в /home.

  • /etcКаталог etc — это часто используемый каталог, в котором хранятся некоторые файлы глобальной конфигурации системы и файлы конфигурации приложений. Например, если вы устанавливаете php или nginx, их файлы конфигурации лежат в папке в каталоге /etc.

  • /varВ каталоге var хранятся некоторые текущие данные, некоторые из них необходимы, а некоторые нет. После некоторого взлома они оставят следы в некоторых файлах внутри и сосредоточатся на очистке. Каталог var также является местом хранения данных по умолчанию для некоторых приложений, таких как файлы данных mysql.

  • /tmpДиректория — это специальная временная директория, куда исчезают файлы после отключения электроэнергии. Но этот каталог для всех пользователей имеет права на запись и обычно используется для обмена файлами.

  • /procи/sysКаталоги, два волшебных каталога. Две из них представляют собой псевдофайловые системы, которые могут управлять поведением программы, изменяя состояние и содержимое некоторых из этих файлов (модификация будет напрямую записана в память, так здорово). В начале был только каталог proc.Из-за беспорядочного содержимого каталог sys был запланирован позже для управления некоторыми действиями ядра. Если вы настраиваете некоторые системные параметры, вы потратите больше времени на работу с этими файлами.

  • Есть также несколько пустых каталогов, которые мы не указали в таблице выше. Например/srvКаталог, в который обычно помещают некоторую информацию о веб-сервисах, таких как nginx. Однако это не обязательно, поэтому я видел/srvкаталог, который обычно всегда пуст. такой же,/optКаталог также существует таким образом, вы просто относитесь к нему так, как будто он не существует. Все это относится к категории пользовательского планирования, и настройка очень сильна.

  • При использовании системы Linux вы также можете создать свой собственный каталог. Например, я люблю создавать свои собственные/dataКаталог, используемый для хранения некоторого контента, связанного с базой данных. Например,/data/mysqlХраните данные mariadb и/data/es/Сохраняет содержимое индекса elasticsearch.

В Linux есть много типов файлов, и большинство из них хранятся в соответствующих каталогах, например, в каталоге /dev находятся некоторые файлы устройств, а в файле /bin — некоторые исполняемые команды. Обычно очень запоминающийся.

5.3 Просмотр списка файлов

Итак, как я по памяти увидел содержимое таблицы выше?lsКоманда для вывода информации о файлах соответствующего каталога. Может быть оценен как самый трудолюбивый лидер команд под Linux.

Современные терминалы могут выводить информацию о цвете, что очень интуитивно понятно.oh-my-zshиoh-my-bashИ другие проекты, вы можете сделать свой терминал более красивым. Добавьте его в свой список исследований.

[root@localhost /]# ls /
# 注意:ls可以接受路径参数,你不用先跳转,就可以输出相关信息
bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
[root@localhost /]# ls -l /
# 带上 -l参数,可以查看一些更加详细的信息。
total 20
lrwxrwxrwx.   1 root root    7 Nov  3 20:24 bin -> usr/bin
dr-xr-xr-x.   5 root root 4096 Nov  3 20:34 boot
drwxr-xr-x.  19 root root 3080 Nov  3 21:19 dev
drwxr-xr-x.  74 root root 8192 Nov  3 20:34 etc
drwxr-xr-x.   2 root root    6 Apr 11  2018 home
lrwxrwxrwx.   1 root root    7 Nov  3 20:24 lib -> usr/lib
lrwxrwxrwx.   1 root root    9 Nov  3 20:24 lib64 -> usr/lib64
drwxr-xr-x.   2 root root    6 Apr 11  2018 media
drwxr-xr-x.   2 root root    6 Apr 11  2018 mnt
drwxr-xr-x.   2 root root    6 Apr 11  2018 opt
dr-xr-xr-x. 108 root root    0 Nov  3 21:19 proc
dr-xr-x---.   2 root root  135 Nov  4 07:53 root
drwxr-xr-x.  24 root root  740 Nov  3 21:20 run
lrwxrwxrwx.   1 root root    8 Nov  3 20:24 sbin -> usr/sbin
drwxr-xr-x.   2 root root    6 Apr 11  2018 srv
dr-xr-xr-x.  13 root root    0 Nov  3 21:19 sys
drwxrwxrwt.   9 root root 4096 Nov  4 03:40 tmp
drwxr-xr-x.  13 root root  155 Nov  3 20:24 usr
drwxr-xr-x.  19 root root  267 Nov  3 20:34 var

Чаще всего используется ls для добавления параметровlили параметрa.

5.3.1 Детали

добавить параметрыl, вы можете увидеть дату, когда была обновлена ​​некоторая информация о правах доступа к файлу и т. д. Но мы увидели и кое-что более интересное. Например:

lib -> usr/lib

Выше приведена информация о программной ссылке.

Как показано в нашей таблице выше,libкаталог, да/usr/libярлыки и то, что в них, ничем не отличается.

оls -lДля более подробной информации, пожалуйста, обратитесь к изображению ниже. Мы вернемся к этой диаграмме еще раз после того, как поймем содержание следующих подразделов.

5.3.2 Скрытые файлы

Непосредственно в вашем каталоге /root выполнитеls -al, вы увидите больше. Эти дополнительные скрытые файлы, все начинаются с.Вначале большинство из них представляют собой файлы конфигурации. Это параметрaэффект.

[root@localhost ~]# ls -al
total 28
dr-xr-x---.  2 root root  135 Nov  4 07:53 .
dr-xr-xr-x. 17 root root  224 Nov  3 20:28 ..
-rw-------.  1 root root 1273 Nov  3 20:28 anaconda-ks.cfg
-rw-------.  1 root root  246 Nov  4 11:41 .bash_history
-rw-r--r--.  1 root root   18 Dec 28  2013 .bash_logout
-rw-r--r--.  1 root root  176 Dec 28  2013 .bash_profile
-rw-r--r--.  1 root root  176 Dec 28  2013 .bashrc
-rw-r--r--.  1 root root  100 Dec 28  2013 .cshrc
-rw-r--r--.  1 root root  129 Dec 28  2013 .tcshrc

Внимательные студенты должны заметить два специальных каталога..и... Первый представляет текущий каталог, а второй — верхний каталог.

использоватьcdКоманды будут свободно перемещаться в этих каталогах.

Совет. Если у вас возникли проблемы с чтением дат на английском языке, вы можете использоватьls -al --full-timeПросмотр читаемых дат.

5.4, ​​переключить каталог

Выполните команду cd, вы можете переключить рабочий каталог на целевую папку. Чтобы продемонстрировать действие команды cd. Пожалуйста, под пользователем root выполните следующую команду, которая создаст каталог 7 слоев.

cd
mkdir -p a1/b2/c3/d4/e5/f6/{g7,g8,g9,g10}

Мы используем команду cd для переключения на последний слой. Затем мы используем..Перейдите в верхний каталог.

[root@localhost ~]# cd a1/b2/c3/d4/e5/f6/g7
[root@localhost g7]# pwd
/root/a1/b2/c3/d4/e5/f6/g7

[root@localhost g7]# cd ..
[root@localhost f6]# pwd
/root/a1/b2/c3/d4/e5/f6

Таким образом, чтобы переключиться на n-уровневый каталог выше, просто используйте многоуровневый../Вот и все. Есть несколько специальных переменных, которые необходимо объяснить.

  • ../относится к верхнему каталогу
  • ../../Относится к верхнему двухуровневым каталогам
  • ./относится к текущему каталогу
  • ~Относится к текущему пользовательскому каталогу, который является аббревиатурой
  • -Используйте его для переключения между двумя последними каталогами.

Давайте используем команду для проверки этих специальных переменных выше.

# 跳转到用户根目录
[root@localhost tmp]# cd ~
[root@localhost ~]# pwd
/root

# 进入到第三层目录
[root@localhost ~]# cd a1/b2/c3/
[root@localhost c3]# pwd
/root/a1/b2/c3

# 跳回到前三层目录
[root@localhost c3]# cd ../../..
[root@localhost ~]# pwd
/root

# 跳到上次访问的目录
[root@localhost ~]# cd -
/root/a1/b2/c3
[root@localhost c3]# pwd
/root/a1/b2/c3

# 进入当前目录:等于什么都没干
[root@localhost c3]# cd ./
[root@localhost c3]# pwd
/root/a1/b2/c3

Выше приведено обычное использование команды cd. А теперь вернемся и посмотримmkdir. Как следует из названия, это означает создание каталога, но обычно при работе он будет добавлен-pПараметры, это может создавать многоуровневые каталоги одновременно. Обратите внимание на фигурные скобки за mkdir{}, вы можете указать несколько каталогов, чтобы создать одновременно, что обычно экономит много времени.

5.5, файловая операция

Использование командной строки для управления файлами очень удобно.

  • touchсоздать новый файл
  • cpкопировать файл
  • mvпереместить файлы
  • rmУдалить файлы

Эти четыре кокетливых приказа доминируют над местонахождением документов. Мы по-прежнему используем каталог, созданный выше, для следующих операций.

# 创建三个文件
[root@localhost ~]# touch long-long-long.txt
[root@localhost ~]# touch 996.txt
[root@localhost ~]# touch icu.txt
[root@localhost ~]# ls
996.txt  a1  anaconda-ks.cfg  icu.txt  long-long-long.txt

# 复制一个文件
[root@localhost ~]# cp 996.txt 007.txt
[root@localhost ~]# mv long-long-long.txt short.txt
[root@localhost ~]# ls
007.txt  996.txt  a1  anaconda-ks.cfg  icu.txt  short.txt

# 移动996.txt到a1目录,icu.txt到a1/b2目录
# 删除short.txt
[root@localhost ~]# mv 996.txt a1/
[root@localhost ~]# mv icu.txt a1/b2/
[root@localhost ~]# rm short.txt
rm: remove regular empty file ‘short.txt’? y

# 递归删除a1目录
[root@localhost ~]# rm -rvf a1/
removed directory: ‘a1/b2/c3/d4/e5/f6/g7’
removed directory: ‘a1/b2/c3/d4/e5/f6/g8’
removed directory: ‘a1/b2/c3/d4/e5/f6/g9’
removed directory: ‘a1/b2/c3/d4/e5/f6/g10’
removed directory: ‘a1/b2/c3/d4/e5/f6’
removed directory: ‘a1/b2/c3/d4/e5’
removed directory: ‘a1/b2/c3/d4’
removed directory: ‘a1/b2/c3’
removed ‘a1/b2/icu.txt’
removed directory: ‘a1/b2’
removed ‘a1/996.txt’
removed directory: ‘a1/’

[root@localhost ~]# ls
007.txt   anaconda-ks.cfg

После некоторых операций остается только 007. В дополнение к основным операциям, описанным выше, далее я расскажу о некоторых более важных функциях.

можно увидеть с помощьюrmПри удалении файла была выдана подсказка. Это делается для того, чтобы не удалить что-либо по ошибке, но иногда вам не нужно отображать это приглашение, вы можете добавить-fпараметр.fПараметр также применим к командам cp, mv и другим.forceзначение.

rm -f file
cp -f file1 file2
mv -f file1 file2

Кроме того, есть параметр-r, в чем смысл рекурсии. Наши каталоги и файлы обычно имеют несколько уровней, и рекурсия может применять к ним все операции, такие как рекурсивное удаление каталога a1 выше.

# 警告:以下命令会造成严重后果
rm -rf /

Приведенную выше команду вы, должно быть, часто видели. Это не шутка, было много пользователей, которые потеряли свои данные из-за этого, это легенда删根, вы останетесь ни с чем. этот параметрvДля чего это? После его добавления вы можете увидеть подробный процесс выполнения команды. При нормальной работе я обычно добавляю его.

6. Начните работать с файлами

Как вы, возможно, узнали,ll -lПервый столбец команды может отображать тип файла linux. Пожалуйста, составьте общее впечатление об этом, потому что многие из следующих команд будут использовать это знание.

  • -Представляет собой обычный файл
  • dПредставляет файл каталога
  • lПредставляет связанные файлы, такие как ярлыки
  • sфайл сокета
  • cфайлы символьных устройств, такие как/dev/много файлов в
  • bУказывает файл блочного устройства, например, некоторые диски.
  • pфайл канала

Файлы в Linux могут не иметь суффикса, и могут быть созданы некоторые нелогичные файлы. Например, суффикс png, но это сжатый файл (обычно нет). Когда я учился в колледже, были умные одноклассники, которые прятали такие маленькие ролики, и эффект был очень хороший.

Чтобы просмотреть определенный тип файла, вы можете использоватьfileКоманда достаточно умна, чтобы распознавать множество форматов файлов.

[root@localhost ~]# file /etc
/etc: directory
[root@localhost ~]# file /etc/group
/etc/group: ASCII text
[root@localhost ~]# file /dev/log
/dev/log: socket
[root@localhost ~]# file /dev/log
/dev/log: socket
[root@localhost ~]# file /bin
/bin: symbolic link to `usr/bin'

Операции в этой части направлены на ASCII textтип, обычный текстовый файл. Далее мы хотим создать несколько файлов. Затем запишите содержимое в файл для последующих операций.

6.1, создайте файл

6.1.1 Последовательность номеров

С помощью редиректора файл может быть сгенерирован напрямую. Ниже я хочу сгенерировать числа от 10 до 20, каждое число в отдельной строке, и написать файл с именемspringдокумент. По совпадению,seqкоманда для завершения процесса.

seq 10 20 >> spring

мы упоминали ранее>Смысл в том, чтобы перенаправить вывод предыдущей команды в другое место. Здесь мы используем два>, это по-прежнему означает перенаправление, но это означает, что на основе исходного файла追加содержание.

язык программированияw+иa+значение.

6.1.2 Просмотр содержимого

Чтобы просмотреть эффект генерации файла, вы можете использовать команду cat для обнаружения. Команда cat напечатает содержимое файла и выведет его на терминал. Если добавить параметрnи даже печатать номера строк. Эффект следующий:

[root@localhost ~]# cat spring
10
11
12
13
14
15
16
17
18
19
20
[root@localhost ~]# cat -n spring
1	10
2	11
3	12
4	13
5	14
6	15
7	16
8	17
9	18
10	19
11	20

Помимо просмотра содержимого файла, команда cat обычно используется в других местах. Только в сочетании с другими заповедями он чувствует, что жизнь имеет смысл.

# 合并a文件和b文件到c文件
cat a  b>> c

# 把a文件的内容作为输入,使用管道处理。我们在后面介绍
cat a | cmd

# 写入内容到指定文件。在shell脚本中非常常用。我们在后面会多次用到这种写法
cat > index.html <<EOF
<html>
    <head><title></title></head>
    <body></body>
</html>
EOF

Поскольку наш файл невелик, команда cat не представляет опасности. Но если файл имеет несколькоGB, использовать cat гораздо опаснее, это только называетсяМаленькая команда будет лихорадочно выводиться на терминал, вы можете нажать несколько разctrl+cпрекратить его.

6.2. Просматривайте файлы спокойно

Поскольку команда cat не подходит для работы с большими файлами, должны быть альтернативы. все меньше и больше. Поскольку скорость загрузки меньшего количества выше, чем у большего, сейчас обычно используетсяless. Его основная цель — просмотр содержимого файлов путем постраничного просмотра и предоставление некоторых методов быстрого поиска. меньше交互式Команда, вам нужно использовать несколько сочетаний клавиш для управления ею.

На этот раз мы используем seq для генерации一千万линейных записей достаточно76MBразмер, а затем открыть его с меньше.

[root@localhost ~]# seq 10000000 > spring
[root@localhost ~]# du -h spring
76M	spring
[root@localhost ~]# less spring

Что касается меньшего, общая операция выглядит следующим образом:

  • 空格Прокрутите вниз до страницы
  • bПрокрутить вверх до страницы
  • /войти в режим поиска, например/1111будет искать слово 1111
  • qбросай меньше
  • gк началу
  • Gидти до конца
  • jпрокрутить вниз
  • kПрокрутите вверх, эти два ключа очень похожи на Vim

6.3, головка и хвост файла

head может отображать заголовок файла, tail может отображать конец файла. Всем им можно передать параметр-n, чтобы указать соответствующее количество строк.

[root@localhost ~]# head -n 3 spring
1
2
3
[root@localhost ~]# tail -n 3 spring
9999998
9999999
10000000

Для некоторых программистовtail -fВероятно, одна из наиболее часто используемых команд. Он может отслеживать изменения файлов в режиме реального времени в терминале управления и просматривать некоторые скользящие журналы. Например, проверьте журналы nginx или tomcat и т. д. В нормальных условиях, если журнал прокручивается слишком быстро, это все равно вызовет некоторые проблемы.Вам необходимо сотрудничать с командой grep для достижения эффекта фильтрации.

# 滚动查看系统日志
tail -f /var/log/messages

# 滚动查看包含info字样的日志信息
tail -f /var/log/messages | grep info

Для хвостовой команды также есть параметр в верхнем регистреF. Этот параметр может контролировать воссозданный файл. Например, некоторые логи, такие как log4j, накатываются по дням,tail -fЭто изменение не может быть отслежено.

6.4. Поиск файлов

Рассмотрим следующий сценарий. Нам нужно найтиdecorator.pyфайл, этот файл является призраком и может существовать где угодно в системе.findКомандование, способное на эту охоту за привидениями.

Мы используемfindКоманды, начиная с корневого каталога, следующие команды могут занять некоторое время из-за слишком большого количества файлов в системе.

[root@localhost site-packages]# find / -name decorator.py  -type f
/usr/lib/python2.7/site-packages/decorator.py

Используйте команду time, чтобы увидеть конкретное время выполнения. Выполнение по-прежнему очень быстро! Выход за секунды!

[root@localhost site-packages]# time find / -name decorator.py  -type f
/usr/lib/python2.7/site-packages/decorator.py

real	0m0.228s
user	0m0.098s
sys	0m0.111s

Команда find найдет набор путей. Обычно после выхода запроса выполняются дополнительные операции обработки, обычно сxargsКоманда использует (xargs читает ввод, затем обрабатывает его построчно), как и для findexecпараметр? Забудь, это не работает!

# 删除当前目录中的所有class文件
find . | grep .class$ | xargs rm -rvf

# 找到/root下一天前访问的文件,type后面的类型参见文章开头
find /root  -atime 1 -type f

# 查找10分钟内更新过的文件
find /root  -cmin  -10

# 找到归属于root用户的文件
find /root -user root

# 找到大于1MB的文件,进行清理
find /root -size  +1024k  -type f | xargs rm -f

Параметров find очень и очень много, что делать, если я не помню? В дополнение к общеупотребительному, на самом деле все может пройтиmanКоманда для просмотра. Работа человека очень похожа на VI, введите/EXAMPLES, вы увидите много примеров. Однако я думаю, что команды, перечисленные выше, более применимы.

6.4.1. Источники данных

На картинке выше вы увидите слова, похожие на mtime, ctime и atime, откуда берутся их данные? Далее давайте посмотримstatЗаказ.

[root@localhost ~]# stat spring
  File: ‘spring’
  Size: 78888897  	Blocks: 154080     IO Block: 4096   regular file
Device: fd00h/64768d	Inode: 8409203     Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Context: unconfined_u:object_r:admin_home_t:s0
Access: 2019-11-04 18:01:46.698635718 -0500
Modify: 2019-11-04 17:59:38.823458157 -0500
Change: 2019-11-04 17:59:38.823458157 -0500
 Birth: -

Разве это не атрибут файла? От размера файла до типа файла и даже до последней модификации, времени доступа, вы можете получить это отсюда. Файловая система Linux хранит информацию в блоках, и для того, чтобы найти расположение области хранения, где находится файл, она будет использоватьi节点(inode) индексирует каждый файл, вы можете думать об этом как об указателе файла.

  • количество байт файла
  • пользователь-владелец файла
  • группа, к которой принадлежит файл
  • Разрешения на чтение, запись и выполнение файлов
  • Временная метка файла
    • ctime относится к времени последнего изменения индекса.
    • mtime относится к времени последнего изменения содержимого файла.
    • atime относится к последнему времени открытия файла.
  • Количество ссылок, то есть сколько имен файлов указывают на этот инод (команда ln)
  • Расположение блока данных файла (конкретное расположение данных)

Про inode — это относительно большая тема, и это тоже относительно важный пункт знаний, кому интересно, могут поискать сами. Нам просто нужно знать, откуда берется эта информация.

6.4.2 Небольшие упражнения

Если я просто хочу получитьModifyЭто значение можно использовать в сочетании с командами, изученными выше. Сначала получите последние три строки, затем первую строку. Эффект следующий:

[root@localhost ~]# stat spring | tail -n 3 | head -n 1
Modify: 2019-11-04 17:59:38.823458157 -0500

Следующие несколько команд, эффект эквивалентен выше, вывод точно такой же. Как говорится, все дороги ведут в Рим, значит, сначала вводим более высокую частоту встречаемостиgrep. Кроме того, в приведенных выше командах мы много раз использовали|, что является очень важной концепцией конвейера в Linux и будет выделено ниже.

stat spring | head -n 7 | tail -n 1
stat spring | grep Modify
stat spring | sed -n '7p'
stat spring | awk 'NR==7'

6.5. Сопоставление строк

grep используется для фильтрации содержимого с помощью--colorПараметры, которые могут быть распечатаны в цвете на поддерживаемых терминалах, параметрыnИспользуется для вывода определенного количества строк для быстрого позиционирования. Это команда, которую нужно использовать умело.

Например: посмотрите POST-запрос в логе nginx.

grep -rn --color POST access.log

Такие параметры рекомендуется использовать каждый раз.

Если я хочу увидеть что-то связанное до и после исключения, я могу использовать параметр ABC. Они представляют собой сокращения нескольких слов и часто используются.

  • Через n строк после содержимого
  • B перед первыми n строками контента
  • Содержимое C до и после n строк

Нравится:

# 查看Exception关键字的前2行和后10行
grep -rn --color Exception -A10 -B2   error.log

#查找/usr/下所有import关键字,已经它们所在的文件和行数
grep -rn --color import /usr/

6.6. Трубы

В приведенной выше команде мы неоднократно использовали|, который, кажется, способен совершать некоторые волшебные вещи.|даpipeЭто означает, что он может связать несколько команд вместе. Обычно команды связаны следующим образом:

  • ;выполняются последовательно, напримерmkdir a;rmdir a
  • &&условное выполнение, напримерmkdir a && rmdir a
  • ||условное выполнение, напримерmkdir a || rmdir a, следующие команды выполняться не будут
  • |Канал, вывод предыдущей команды, будет использоваться в качестве ввода следующей команды.

Первые три ассоциации команд очень просты и логичны, и их очень легко понять. Трубы, однако, имеют свои особенности.

Любой, кто сталкивался с языками программирования, знаетstdin,stdout,stderrКонцепция чего-либо. Давайте реорганизуем определение каналов: вывод (stdin) предыдущей команды будет использоваться как ввод (stdout) следующей команды.

Давайте возьмем одну строку команды для иллюстрации.

seq 20 100 | head -n 50 | tail -n 1

Приведенная выше команда выведет 69. 69 — это магическое число, как оно это делает? Сделаем небольшой снимок и все будет понятно.

Что касается ввода-вывода и ошибок, в Linux используется数字Аббревиатура, которая часто используется в некоторых скриптах и ​​даже в некоторых установочных файлах.

  • 0 означает стандартный ввод stdin
  • 1 означает стандартный вывод stdout
  • 2 означает стандартную ошибку stderr

чем-то вроде2>&1синтаксис для направления сообщений об ошибках на стандартный вывод. Докажем это командой.

# 错误信息无法输出到文件
[root@localhost ~]# cat aaaaaaaaa > b
cat: aaaaaaaaa: No such file or directory
[root@localhost ~]# cat b

# 错误信息被重定向了
[root@localhost ~]# cat aaaaaaaaa > b 2>&1
[root@localhost ~]# cat b
cat: aaaaaaaaa: No such file or directory

6.7 Сортировка

Теперь, когда вы понимаете, как работают конвейеры, пришло время представить команду сортировки. Обычно ее можно комбинировать с командой uniq (дедупликация) для выполнения некоторых операций сортировки и дедупликации. Сначала используйте команду cat для создания файла со следующим содержимым.

cat > sort.txt <<EOF
1 11
3 22
2 44
4 33
5 55
6 66
6 66
EOF
```bash
接下来让这两个命令上台表演一下。 sort可以使用-t指定分隔符,使用-k指定要排序的列。但是空格,是不需要做这些画蛇添足的指定的。
```bash
# 根据第一列倒序排序
[root@localhost ~]# cat sort.txt | sort  -n -k1 -r
6 66
6 66
5 55
4 33
3 22
2 44
1 11

# 统计每一行出现的次数,并根据出现次数倒序排序
# 此时,行数由7变成了6
[root@localhost ~]# cat sort.txt | sort  | uniq -c  | sort -n -k1 -r
2 6 66
1 5 55
1 4 33
1 3 22
1 2 44
1 1 11

Примечание. Команда uniq обычно используется для отсортированных наборов результатов. Поэтому во многих случаях вам нужно сначала использовать команду sort для сортировки, а затем использовать команду uniq. Новички часто забывают первый шаг, из-за чего команда не работает должным образом.

6.8 Небольшие упражнения

В этом разделе мы начнем со свойств файла и узнаем о нескольких общих командах для операций с файлами. И кстати ввел понятие конвейера. Далее потренируемся.

найти всеgrub.cfgфайл и вывести количество строк.

Анализ: Во-первых, вам нужно использовать команду find, чтобы найти эти файлы. Затем используйте xargs для обработки построчно. Наконец, используйте команду wc, чтобы подсчитать точное количество строк.

[root@localhost grub2]# find / | grep grub.cfg | xargs wc -l
141 /boot/grub2/grub.cfg

список выходных системных групп

cat /etc/group | awk -F ':' '{print $1}'

Следующая команда выводит IP-адрес журнала nginx и pv каждого IP-адреса, а также 10 лучших с самым высоким pv.

# 2019-06-26T10:01:57+08:00|nginx001.server.ops.pro.dc|100.116.222.80|10.31.150.232:41021|0.014|0.011|0.000|200|200|273|-|/visit|sign=91CD1988CE8B313B8A0454A4BBE930DF|-|-|http|POST|112.4.238.213

awk -F"|" '{print $3}' access.log | sort | uniq -c | sort -nk1 -r | head -n10

6.9 Мышление и расширение

1. Как терминал Linux реализует цветной текст? Как вывести зеленыйHello World?

2. В чем разница между программными ссылками и жесткими ссылками?

3. Понимать несколько частичных, но не очень частичных порядков.

  • cutВ awk cut почти не используется.
  • tr
  • col
  • paste
  • join
  • split

7. Регулярное и расширенное использование

Вы можете столкнуться с некоторыми сложными проблемами и получить желаемые результаты с помощью поиска, но в следующий раз, когда вам придется решать проблему с помощью поиска, это неэффективное средство не то, что нам нужно. Типичный онлайн-инженер по эксплуатации и техническому обслуживанию не оставит вас слишком много, когда возникнут проблемы.现场学习время.

Чтобы добиться более эффективного обучения, нам нужно сделать две вещи: во-первых, обобщить, во-вторых, по аналогии. То же самое относится и к командам Linux: проблема обычно имеет несколько решений, и через изменения необходимо выяснить общее.

Это предполагает некоторое соблюдение проектировщиком соглашений спецификации. В общем, вам нужно освоить только небольшое количество команд, и тогда вы сможете освоить большое количество команд до такой степени, что сможете легко ориентироваться в мире командной строки. Например, вы знаетеlsэто перечислить каталог файлов, вы подумаетеlscpuсостоит в том, чтобы перечислить информацию о процессоре;lsmemсостоит в том, чтобы перечислить информацию о памяти;lsblkинформация о диске и т. д. Есть много общего, напримерtopряд,statряд.

7.1 Вспомогательная информация

7.1.1, формат файла Linux

Работа в Linux очень, очень исключает двоичный формат, и почти все представляет собой текстовый контент, который можно читать и записывать. Результаты, генерируемые большинством команд, также представляют собой текстовые файлы. Эти файлы имеют некоторые характеристики, обычно столбцы и столбцы передаются пробелами или<TAB>с разделением ключей. Например, следующееlsmemВ результате с этим обычным, основанным на правилах документом очень легко иметь дело.

[root@localhost ~]# lsmem  
RANGE                                  SIZE  STATE REMOVABLE BLOCK
0x0000000000000000-0x0000000007ffffff  128M online        no     0
0x0000000008000000-0x000000000fffffff  128M online       yes     1
0x0000000010000000-0x0000000017ffffff  128M online        no     2
0x0000000018000000-0x0000000027ffffff  256M online       yes   3-4
0x0000000028000000-0x000000004fffffff  640M online        no   5-9
0x0000000050000000-0x000000005fffffff  256M online       yes 10-11
0x0000000060000000-0x000000007fffffff  512M online        no 12-15

Memory block size:       128M
Total online memory:       2G
Total offline memory:      0B

Существует ряд команд для операций со строками, а также ряд команд для операций со столбцами. Затем есть два агрегатора, называемыеsed,awk. Поскольку содержание этих двух команд очень велико, мы перечислили их в виде отдельных глав.

7.1.2 Что делать, если я не помню команду?

Обычно команды Linux очень просты, но некоторые из них все же несколько сложны. Напримерfind,psТакой порядок, если бы он охватывал все случаи жизни, потребовал бы очень большого количества места. Однако что, если он используется в такой частичной ситуации?

Очень необходимо иметь всестороннее представление, чтобы уметь вызывать в памяти самые поверхностные впечатления при его использовании. Затем остальное можно передать чему-то вродеman этого порядка. Каждая команда в Linux будет иметь вспомогательный файл справки, который гораздо более точен, чем информация, циркулирующая в Интернете.

Формально ввести следующие две команды:

  • manИспользуется для отображения информации о документации для команды. Например:man ls
  • infoВы можете думать о нем как о человеке, хотя и с некоторым дополнительным содержанием. Они будут подсказаны в содержании
  • --helpМногие команды передают параметры--helpПредоставляет очень краткую справочную информацию. Обычно это самая полезная и быстрая презентация варианта использования. Если вы просто не можете вспомнить очень ироничное слово, поищите эти места

Примечание. Эта справочная информация касается только области действия самой команды. Существует не так много информации о его комбинированных сценариях использования. То есть он учит вас, как его использовать, но не говорит, что с ним делать.

Эти справочные команды обычно улучшают впечатление от чтения, выделяя ключевые слова. Но мы можем пойти еще дальше и превратить файл справки в цвет. Под пользователем root выполните следующую команду. Потом,Повторный вход в виртуальную машину.

cat >> ~/.bashrc <<EOF
function man()
{
    env \\
    LESS_TERMCAP_mb=\$(printf "\e[1;31m") \\
    LESS_TERMCAP_md=\$(printf "\e[1;31m") \\
    LESS_TERMCAP_me=\$(printf "\e[0m") \\
    LESS_TERMCAP_se=\$(printf "\e[0m") \\
    LESS_TERMCAP_so=\$(printf "\e[1;44;33m") \\
    LESS_TERMCAP_ue=\$(printf "\e[0m") \\
    LESS_TERMCAP_us=\$(printf "\e[1;32m") \\
    man "\$@"
}
EOF

Выполните команду man еще раз, чтобы увидеть цветную информацию.

1.3, завершение TAB

Теперь в терминале введитеca, затем быстро нажмите 2 раза<TAB>Клавиатура, командная строка перейдет в режим завершения, показывая все команды, начинающиеся с ок.

[root@localhost ~]# ca
cacertdir_rehash     cache_dump           cache_repair         cache_writeback      ca-legacy            capsh                case                 catchsegv
cache_check          cache_metadata_size  cache_restore        cal                  caller               captoinfo            cat                  catman

Если у вас есть только смутное представление об определенной команде и вы помните только первые несколько букв, эта функция превосходна, и диапазон команд будет уменьшаться шаг за шагом.

7.2, регулярные выражения

Чтобы начать следующее, давайте сначала представим регулярные выражения. В некоторых из предыдущих команд также могут использоваться эти регулярные выражения, такие как less, grep и т. д.

Некоторые книги могут записывать регулярные выражения в книгу, мы даем здесь только краткое введение, но этого достаточно. Как правило, регулярные выражения можно использовать для сопоставления, а совпадающий контент также можно использовать для вторичного использования. Относительно последнего мыsedописано в команде.

логотип значение
^ начало строки
$ конец линии
. любой одиночный символ
* соответствует нулю или более предшествующим символам
+ 1 или более совпадений
? 0 или 1 совпадение
{m} Предыдущее совпадение повторяется m раз
{m,n} Предыдущее совпадение повторяется от m до n раз
[] соответствует указанному диапазону символов
[^] соответствует любому одиночному символу за пределами указанного диапазона
\ escape-символ
[0-9] Соответствует любому символу в скобках, роли или
` `
\b соответствует слову. Например\blucky\bсоответствует только слову повезло

Используйте следующую команду для создания файла, давайте попрактикуемся с командой grep плюсEРегулярное выражение после параметра.

cat > 996 <<EOF
996: 996 is a funcking thing . which make woman as man , man as ass .
we all on the bus , bus bus on the way . 996
way to icu. icuuuuuu......
The greedy green boss rides on the pity programmer
EOF

Выполните следующую команду в терминале, обратите внимание, что выделенная часть является совпадающей строкой.

# 匹配996开头的行
[root@localhost ~]# cat 996 | grep -E ^996
996: 996 is a funcking thing . which make woman as man , man as ass .

# 匹配996结尾的行
[root@localhost ~]# cat 996 | grep -E 996$
we all on the bus , bus bus on the way . 996

# 匹配到icu和icuuuuuu
[root@localhost ~]# cat 996 | grep -E icu+
way to icu. icuuuuuu......

# 再次匹配到996
[root@localhost ~]# cat 996 | grep -E [0-9]
996: 996 is a funcking thing . which make woman as man , man as ass .
we all on the bus , bus bus on the way . 996

[root@localhost ~]# cat 996 | grep -E ^[\^0-9]
we all on the bus , bus bus on the way . 996
way to icu. icuuuuuu......
The greedy green boss rides on the pity programmer

# 匹配所有不包含996的行,良心命令,泪奔
[root@localhost ~]# cat 996 | grep -E -v [0-9]{3}
way to icu. icuuuuuu......
The greedy green boss rides on the pity programmer

# 匹配boss和icu
[root@localhost ~]# cat 996 | grep -E boss\|icu
way to icu. icuuuuuu......
The greedy green boss rides on the pity programmer

# 匹配所有行
[root@localhost ~]# cat 996 | grep -E .
996: 996 is a funcking thing . which make woman as man , man as ass .
we all on the bus , bus bus on the way . 996
way to icu. icuuuuuu......
The greedy green boss rides on the pity programmer

Регулярные выражения очень важны, в некоторых сценариях sed, в сценариях awk и даже в редакторе vim они упростят вашу работу. Вышеизложенное следует запомнить до такой степени, что вам не нужно будет искать документацию.

Вот 6 небольших вопросов для размышления.

1. Вернитесь и выполнитеman cat, вы нашлиtacКоманда? Что оно делает?

2. Вышеупомянутоеstatсерия, как вы можете себе представитьiostatДля чего он вообще используется?

3.grep -vЧто значит?

4. Понять, что очень похоже на мвrenameкоманда для пакетного изменения файлов, чтобы увидеть, можно ли использовать указанное выше регулярное выражение.

5. Если некоторые команды написаны с ошибками, как их быстро исправить? По поиску? Узнать оfuckЗаказ. Я не ошибаюсь.

6. Какой из следующих способов записи означает, что при успешном выполнении cmd1 будет выполнена команда cmd2?

  • A. cmd1&&cmd2
  • B. cmd1|cmd2
  • C. cmd1;cmd2
  • D. cmd1||cmd2

8. Сжатие под Linux

Компрессия — очень волшебная вещь.

Давным-давно я встретил некоторых64KBразмер фильма, который вы тратитеполчасаНе могу прочитать все это. Фактически, истинная способность этих анимаций15GB, группа Warez сжала его250 000 раз.

Если вы используете систему Windows, вы можете загрузить и испытать ее здесь. Но мы сейчас говорим о Linux, разве это не пощечина?

链接: https://pan.baidu.com/s/12YJQ4jsbtRr7RxoLpARTyQ 
提取码: r7sp

Компрессия — волшебная вещь. Он может быть большим или маленьким, может растягиваться или сжиматься, и найти такое в реальности сложно.

Для уменьшения размера передаваемого файла, либо для удобства передачи вообще включается сжатие. Общие сжатые файлы в Linux включают tar, bzip2, zip, rar и т. д. 7z используется относительно редко. Сжатый файл очень удобен для передачи в сетевом окружении. Даже вы можете думать об iso-файлах как об особом виде сжатия.

.tarСжать или распаковать с помощью команды tar.bz2Используйте команду bzip2 для работы.gzИспользуйте команду gzip для работы.zipРазархивируйте с помощью команды unzip.rarИспользуйте команду unrar для извлечения.ZИспользуйте сжатие, распаковку

Подготовка: Используйте следующую команду, чтобы скопировать 1000 файлов.

cd ~
mkdir files
cd files
seq 1000 | xargs -I {} cp  /etc/group  {}

Используя ls, мы можем увидеть 1000 файлов, которые мы только что создали. Далее мы упаковываем его в один с помощью команды zip.

# 查看1000个文件的总大小
[root@localhost files]# du -h .
4.0M	.

# 切换到root目录
cd ~

# 使用tar进行压缩,压缩后的文件不到1MB
[root@localhost ~]# tar cvf files.tar files

[root@localhost ~]# du -h files.tar
1012K	files.tar

# 使用gizp提高压缩比,压缩后的文件只有12KB
[root@localhost ~]# gzip files.tar
[root@localhost ~]# du -h files.tar.gz
12K	files.tar.gz

tar и gzip обычно используются вместе. Команда tar предоставляет специальную функцию, то есть она может вызывать другие программы сжатия, такие как gzip, bzip2 и т. д., во время упаковки и распаковки.

Следующая команда эквивалентна двукратному выполнению вышеуказанной команды. Поэтому, как правило, используйте следующие методы для работы.

[root@localhost ~]# tar cvfz files2.tar.gz files
[root@localhost ~]# du -h files2.tar.gz
12K	files2.tar.gz

Соответственно, это операция декомпрессии. Нам нужно изменить только одну букву в командной строке:c->x. Но на самом деле параметрvиzЕго также можно опустить.

[root@localhost ~]# tar xvfz files2.tar.gz

Наш более распространенный способ — добавить параметрыC, указав каталог для распаковки. Например, следующая команда извлекает сжатое содержимое в каталог /opt.

[root@localhost ~]# tar xvfz files2.tar.gz -C /opt/

Так что, если я просто хочу посмотреть, какие файлы содержатся в сжатом файле? При этом используются параметрыt.

  • cкомпрессия
  • xраспаковывать
  • tПосмотреть список

установить другое

Давайте посмотрим, установлены ли часто используемые программы распаковки zip и rar.

[root@localhost ~]# which unzip
/usr/bin/which: no unzip in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin)
[root@localhost ~]# which unrar
/usr/bin/which: no unrar in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin)

Поэтому в нашей системе не установлены эти два приложения. Затем я буду использовать инструмент управления пакетами Centos.yumУстановите его. Команда jar в java похожа на zip и может быть изучена самостоятельно.

[root@localhost ~]# yum install -y zip unzip rar unrar
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * extras: mirrors.tuna.tsinghua.edu.cn
 * updates: mirrors.aliyun.com
...

rar не может быть успешно установлен, поэтому файл rar не может быть распакован. Это не имеет значения, мы установим его в последующих главах.

Теперь вы установите tomcat на Linux?

Далее давайте подумаем:

1. Будет ли уменьшена емкость сжатого zip-файла при повторном использовании сжатия gzip?

Для проверки этого процесса можно использоватьddкоманда для создания69MBСлучайный файл размера.ddКоманды тоже замечательные.

[root@localhost ~]# dd if=/dev/urandom  of=test bs=1M count=69
69+0 records in
69+0 records out
72351744 bytes (72 MB) copied, 0.446161 s, 162 MB/s


[root@localhost ~]# du -h test
69M	test

Итак, вернемся к началу статьи, мы можем случайным образом сгенерировать пакет файлов, чтобы сделать эффект сжатия немного более значимым.

seq 1000 | xargs -i dd if=/dev/zero of={}.xjj bs=1k count=256

2. Если файл уже существует, как команда tar принудительно перезаписывает его?

9. Система разрешений Linux

Мы наверху, когда мы впервые касаемся командной строки, мы используемchmodКоманда предоставляет разрешение на выполнение обычному текстовому файлу. В этом разделе будут рассмотрены用户权限и文件权限Эти два тесно связанных понятия,

9.1. Добавить пользователей

До сих пор в нашей системе этот пользователь остался один, пора бы поучиться у Нювы и прищипнуть несколько глиняных фигурок.

Сначала создайте двух пользователей: Zhang San (zhang3) и Li Si (li4).

[root@localhost ~]# useradd zhang3

Проверьте три вывода команды ниже.

# 系统中多了一个叫做zhang3的组,group文件保存了系统的组信息
[root@localhost ~]# tail -n1 /etc/group
zhang3:x:1000:

# 系统中多了一个叫做zhang3的用户,shadow文件保存了它们的密码。很多安全渗透就是为了拿到它进行暴力破解
[root@localhost ~]# tail -n1 /etc/shadow
zhang3:!!:18207:0:99999:7:::

# home目录中,多了一个叫做zhang3的目录
[root@localhost ~]# ll /home --full-time
total 0
drwx------. 2 zhang3 zhang3 83 2019-11-06 22:09:33.357165082 -0500 zhang3

Затем для пользователя, которого мы только что создали, используйтеpasswdУстановите пароль. Пароль необходимо ввести дважды для подтверждения. Если вы хотите изменить свой пароль, вы можете использоватьchpasswdЗаказ.

[root@localhost ~]# passwd zhang3
Changing password for user zhang3.
New password:
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
passwd: all authentication tokens updated successfully.

Итак, как удалить существующего пользователя? Это черезuserdelреализована команда. добавить параметрыf, что приведет к принудительному завершению работы, когда другие пользователи будут использовать систему.

userdel -f zhang3

9.2 Описание прав доступа к файлам

Из приведенных выше результатов выполнения команд мы обнаружили две очень интересные вещи. После добавления пользователя, кроме как в файл паролейshadowДобавил немного контента вgroupДобавил информацию в файл. Это включает в себя два атрибута пользователя: имя пользователя, имя группы.

Пользователь имеет только одно назначение, но может иметь несколько групп. Следующая команда создает пользователя с паролем 123li4, и добавьте к немуzhang3группа. можно увидеть/etc/groupИзменения в информации в файле.

[root@localhost ~]# useradd  -G zhang3 -p 123 li4
[root@localhost ~]# tail -n 2 /etc/group
zhang3:x:1000:li4
li4:x:1001:

Хорошо, давайте переключимся на наши права доступа к файлам. Чтобы проверить следующую команду, мы сначала создадим имя с именемconfirm777.shфайл сценария. Чтобы скрипт был виден всем пользователям, мы создаем его в каталоге /tmp.

cat > /tmp/confirm777.sh <<EOF
echo $USER
id
EOF

использоватьllКоманда для просмотра информации о файле.

[root@localhost ~]# ll /tmp/confirm777.sh --full-time
-rw-r--r--. 1 root root 13 2019-11-07 04:25:55.418254935 -0500 confirm777.sh

отllИз команды видно, что владельцем файла является пользователь root, группа, к которой принадлежит файл, также является группой root, а ее праваrw-r--r--. Права доступа к файлам разделены на три части.

  • 所有者权限,сокращенноu. Разрешения, которые есть у владельца файла. То есть права пользователя root, даrw-
  • 组用户权限,сокращенноg. Разрешения всех пользователей в группе, к которой принадлежит файл. Поскольку в корневой группе есть только один пользователь root, права пользователя группыr--.
  • 其他用户权限,сокращенноo. Разрешения других несвязанных пользователей, таких как только что созданные пользователи zhang3 и li4, права доступа к файламr--.
  • 全部,сокращенноa, что указывает на коллективные операции над тремя вышеуказанными типами пользователей.

Тогда rw- что эти вещи означают?

  • rУказывает разрешение на чтение. читать.
  • wУказывает разрешение на запись. написать.
  • xУказывает исполняемое разрешение. выполнять.
  • -Заполнитель разрешений, указывающий на отсутствие текущих разрешений.

Примечание. У пользователя есть разрешения W в файле, это не означает, что файл можно удалить. w только для содержимого файла.

У файла есть 3 типа пользователей, и каждый тип пользователя имеет 3 типа разрешений. Используя простейшее элементарное умножение, мы можем вывести, что биты прав доступа к файлу требуют3x3=9Бит флага указывает.

Имя нашего файла — confirm777.sh. Это случайное имя? конечно, нет,777В Linux это имеет особое значение, означающее, что файл имеет права на чтение, запись и выполнение для всех пользователей. Как вы можете себе представить, если бы каждый файл имел такие разрешения, система была бы небезопасной. Откуда взялась эта цепочка цифр? См. сравнительную таблицу ниже.

  • r 4читать
  • w 2Писать
  • x 1воплощать в жизнь

Можно получить три атрибута из вышеперечисленного в любой комбинации:

  • 4 r-- 4+0+0
  • 6 rw- 4+2+0
  • 5 r-x 4+0+1
  • 2 -w- 0+2+0
  • 3 -wx 0+2+1
  • 1 --x 0+0+1
  • 7 rwx 4+2+1

9.3, изменение прав доступа к файлам

Ниже описаны три команды, связанные с правами доступа к файлам. Обычно используются chown и chmod.

chownСменить владельца файла.chgrpИзмените группу файла.chmodИзменить права доступа к файлам.

Далее ставимconfirm777.shВладелец и группа , измененные на только что созданного пользователяzhang3.

cd /tmp
[root@localhost tmp]# chown zhang3:zhang3 confirm777.sh
[root@localhost tmp]# ll confirm777.sh
-rw-r--r--. 1 zhang3 zhang3 13 Nov  7 04:25 confirm777.sh

Добавьте права на выполнение для владельца файла. затем переключитесь наzhang3,li4Пользователь выполняет его.

пройти черезsuкоманду, вы можете переключиться на других пользователей, обычно используйтеsu -Очистить переменные окружения; пока командаid, вы можете увидеть информацию о текущем выполняющемся пользователе.

[root@localhost tmp]# chmod u+x confirm777.sh
[root@localhost tmp]# su li4
[li4@localhost tmp]$ ./confirm777.sh
bash: ./confirm777.sh: Permission denied
[li4@localhost tmp]$ exit
exit

[root@localhost tmp]# su zhang3
[zhang3@localhost tmp]$ ./confirm777.sh
root
uid=1000(zhang3) gid=1000(zhang3) groups=1000(zhang3) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023

Видно, что владелец файла zhang3 может выполнить файл, но неактуальный li4 сообщает, что разрешения нет. Затем мы проверяем биты разрешений, относящиеся к группе пользователей.

# 去掉zhang3的执行权限
root@localhost tmp]# chmod u-x confirm777.sh
[root@localhost tmp]# ll confirm777.sh
-rw-r--r--. 1 zhang3 zhang3 13 Nov  7 04:25 confirm777.sh

# 增加zhang3组的执行权限,由于li4在zhang3组里,它拥有权限
[root@localhost tmp]# chmod g+x confirm777.sh
[root@localhost tmp]# ll confirm777.sh
-rw-r-xr--. 1 zhang3 zhang3 13 Nov  7 04:25 confirm777.sh

# 切换到zhang3进行执行
[root@localhost tmp]# su - zhang3
[zhang3@localhost tmp]$ ./confirm777.sh
bash: ./confirm777.sh: Permission denied
[zhang3@localhost tmp]$ exit
exit

# 切换到li4进行执行
[root@localhost tmp]# su - li4
[li4@localhost tmp]$ ./confirm777.sh
root
uid=1001(li4) gid=1001(li4) groups=1001(li4),1000(zhang3) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023

Это видно по результату выполнения команды. На этот раз li4 может выполнить файл, а zhang3 — нет.

Мы используем команду chmod для изменения прав доступа к файлам, используя что-то вродеa+xтакие английские буквы. Взяв в качестве примера первый сценарий, начальные разрешенияrw-r--r--, это,644, в этом случае два приведенных ниже сценария эквивалентны.

chmod u+x confirm777.sh
chmod 744 confirm777.sh

Видно, что вторая команда использует бит разрешения в цифровом стиле, что добавляет еще один шаг к процессу преобразования человеческого мозга. Это очень неудобно в повседневном использовании. Таким образом, использование метода обозначений может быть более интуитивным и настоятельно рекомендуется.

Для того, чтобы более наглядно выразить этот процесс, я специально сделал картинку.

9.4, права доступа к каталогу

Вот очень интересное место. Установите исполняемый файл, вы можете превратить обычные файлы в скрипты, какого черта права на выполнение файлов каталогов? какой смысл? Для папок:

  • rУказывает, что разрешено чтение имен файлов в каталоге, но вход в каталог невозможен.
  • wУказывает, что пользователю разрешено изменять каталог, а также создавать, переносить, удалять и переименовывать файлы в каталоге.
  • xВы можете получить список файлов в каталоге, войти в каталог и выполнить команду cd

Что касается разницы между r и x, вы можете увидеть следующие результаты команд и внимательно почувствовать разницу. В общем, почти во всех каталогах есть执行Разрешения, не устанавливайте их произвольно.

[root@localhost tmp]# su - li4
[li4@localhost ~]$ cd /tmp

[li4@localhost tmp]$ mkdir nox
[li4@localhost tmp]$ touch nox/{a,b,c,d}
[li4@localhost tmp]$ chmod a-x nox
[li4@localhost tmp]$ ls nox
ls: cannot access nox/a: Permission denied
ls: cannot access nox/b: Permission denied
ls: cannot access nox/c: Permission denied
ls: cannot access nox/d: Permission denied
a  b  c  d
[li4@localhost tmp]$ cat nox/a
cat: nox/a: Permission denied

[li4@localhost tmp]$ chmod a+x nox
[li4@localhost tmp]$ chmod a-r nox
[li4@localhost tmp]$ ls nox
ls: cannot open directory nox: Permission denied

9.5, липкий бит

Затем мы вводим немного пасты, сжигающей мозги.

Если вы хотите удалить файл, вам не нужно иметь разрешение на запись для этого файла, но вы должны иметь разрешение на запись для каталога верхнего уровня этого файла. Как создать каталог, в который любой может добавлять файлы, но не может удалять файлы других пользователей? Вот что делают палочки. Бит вставки обычно используется только для каталогов, а не для файлов. Бит вставки обычно используетсяtВыражать.

Мы можем посмотреть на типичный каталог/tmp

[root@localhost tmp]#  ls -dl /tmp
drwxrwxrwt. 9 root root 4096 Nov  7 06:27 /tmp

Как видите, последняя цифра показывает t вместо x, что означает, что обычные пользователи не могут удалять файлы других пользователей. Все пользователи в каталоге /tmp могут создавать файлы по своему усмотрению, но они не могут удалять чужие файлы, даже если права доступа к файлам установлены.777.

[root@localhost tmp]# touch /tmp/stick
[root@localhost tmp]# chown li4:li4 /tmp/stick
[root@localhost tmp]# chmod 777 /tmp/stick
[root@localhost tmp]# su - zhang3
[zhang3@localhost ~]$ rm /tmp/stick
rm: cannot remove ‘/tmp/stick’: Operation not permitted

Выше мы создали двух пользователей zhang3 и li4, протестировали с ними команды chown и chmod и, наконец, ввели бит вставки. Причина, по которой Linux более безопасна, заключается в более детальном разделении разрешений. Но авторитет — это палка о двух концах: суперпользователь может вывести систему из строя одной командой, многие скрытые трояны запускаются в неизвестных местах путем повышения привилегий.

Часто используются несколько команд, связанных с разрешениями, вот несколько примеров.

# 设置/var/lib/mysql的用户和组为mysql
chown -R mysql:mysql /var/lib/mysql

# 设置目录可读可写,能够上传文件
chmod  777 /var/www/uploads

# 增加本目录下所有sh的执行权限
chomd a+x *.sh

# 变更file为可读可写可执行
chmod u=rwx,g=rwx,o=rwx file

Вот еще время подумать:

1. Что происходит после выполнения следующей команды? Предупреждение: Не выполняйте, даже если вы замените 000 на другое число.

# R遍历子目录的意思
chmod -R 000 /

2. Однажды я увидел заказchmod u+s file, текст не представляетsчто это значит, что это значит?

3. Как удалить группу пользователя?

10. Как работать с диском?

Следующий сценарий очень страшен и может стать кошмаром для некоторых программистов.

Я только пошел на работу рано утром, и я только съел половину фрукта блина, когда несколько вооруженных до зубов полицейских ворвались в компанию. Кроме того, он контролировал персонал и ждал, пока рыба выйдет на работу.

Причина такова: компанию подозревают в хранении и распространении нелегальных файлов, а все серверы нужно изъять для тщательного расследования.

Некоторые из этих файлов просто размещаются на диске, некоторые размещаются на серверах хранения файлов, а некоторые разрезаются на несколько частей и размещаются на разных дешевых машинах.

Что будет дальше, зависит от уровня техников, но предполагается, что результаты будут не очень хорошими.

В предыдущем разделе мы создали двух обычных пользователей, у этих двух пользователей мало возможностей, а пользователь по умолчаниюrootДля сравнения, у них гораздо меньше полномочий. За исключением файлов в собственном каталоге, у него почти нет прав на его изменение.

Эти файлы должны храниться на диске. Команд для управления дисками очень много, содержимое этого раздела часто используется системными администраторами, но для разработки требования относительно невелики. Потому что разработке нужно только знать, где существует небольшой фильм, и не нужно знать, как он существует.

При осуждении кто больше отвечает за эксплуатацию и обслуживание и программисты? На самом деле это парадокс. Когда оперативный и обслуживающий персонал был в оцепенении, они вспомнили следующее знание.

10.1 Добавление нового жесткого диска

Если вы системный администратор или даже системный администратор в облаке, купите его прямо сейчас.awsдиск расширения, его нельзя использовать. Его необходимо отформатировать и смонтировать, прежде чем его можно будет запустить в производство.

Помните, когда вы устанавливали систему? Одним из шагов является разделение диска виртуальной машины, мы непосредственно используем метод по умолчанию. Но это уже нельзя изменить, это прошедшее время.

Чтобы смоделировать управление диском, нам нужно сначала добавить новый виртуальный диск к виртуальной машине. Во-первых, используйтеshutdown -h nowКоманда для выключения машины и выполнения следующих операций.

1,Перейдите к параметрам настроек, затем переключитесь на хранилище, добавьте диск

2,Нажмите, чтобы создать диск

3.Выберите VDI

4.Динамическое расширение, насколько расширить

5.Мы создаем большой диск объемом 2 ГБ с именем disk2.

Запустите машину. Удаленно подключитесь к ip 192, не забудьте выполнитьdhclientЗаказ.

первое использованиеfdiskПосмотрите на текущее состояние диска.

root@localhost ~]# fdisk -l

Disk /dev/sda: 8589 MB, 8589934592 bytes, 16777216 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x000c2410

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     2099199     1048576   83  Linux
/dev/sda2         2099200    16777215     7339008   8e  Linux LVM

Disk /dev/sdb: 2147 MB, 2147483648 bytes, 4194304 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/mapper/centos-root: 6652 MB, 6652166144 bytes, 12992512 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/mapper/centos-swap: 859 MB, 859832320 bytes, 1679360 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Из результата команды видим, что дисков два./dev/sdaи/dev/sdbsdaуже выделено, уже занято нашей файловой системой. Теперь вспомните/devНазначение каталога.В этом каталоге хранятся некоторые файлы устройств.Если мы добавим еще один диск, его дескриптор должен бытьsdc(сд*).

Прежде чем можно будет использовать весь диск, нам нужно выполнить над ним три операции.

  1. раздел диска
  2. формат диска
  3. дисковое крепление

10.2 Разделение

Раздел диска по-прежнемуfdiskкоманда, следующая команда перейдет в интерактивный режим. В интерактивном режиме введитеnСоздайте новый раздел. Поскольку наш диск всего 2 ГБ, можно просто создать один раздел. По мастеру определяем все пути вниз, и, наконец, вводимwОбязательно записывайте в таблицу разделов и одновременно выходите из командного взаимодействия.

выполнить сноваfdisk -l, видно что есть лишний кусок2gbразмер раздела.

[root@localhost ~]# fdisk /dev/sdb
...
[root@localhost ~]# fdisk -l
...
   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048     4194303     2096128   83  Linux
...

10.3 Форматирование

В командной строке введитеmkfs, затем нажмите<TAB>Завершение, будет показан пакет команд.

[root@localhost ~]# mkfs.
mkfs.btrfs   mkfs.cramfs  mkfs.ext2    mkfs.ext3    mkfs.ext4    mkfs.minix   mkfs.xfs

Этот пакет команд может отформатировать диск. В настоящее время наиболее часто используемыми форматами дисков являютсяext4. Но мы не нашли операционную систему WindowsFATа такжеNTFSформате, но они концептуально эквивалентны.

Ниже описаны наиболее часто используемые форматы дисков в Linux.

  • btrfsПод лицензией GPL. Он был инициирован для замены системы ext. Не знаком с ним, но комментирую слишком много.
  • cramfsЭто сжатая файловая система, предназначенная только для чтения, предназначенная для флэш-памяти, и ее емкость ограничена 256 МБ. Она использует сжатие zlib и используется редко.
  • ext2Более ранняя версия доп.
  • ext3Улучшения в ext2.
  • ext4Используйте больше всего. Если вы не знакомы с другими, используйте ext4 честно.
  • minixБолее старый и редко используемый.
  • xfsФайловая система XFS является расширением расширенной файловой системы, 64-разрядной высокопроизводительной файловой системы журналирования. Файловая система по умолчанию, начиная с centos7.0.

Записываем как местные и форматируем диск в xfs.

[root@localhost ~]# mkfs.xfs /dev/sdb1

Примечание. Если вы хотите отформатировать диск какfat32Формат требует установки программного обеспечения.

 yum install dosfstools -y

10.4 Монтаж

Последний шаг — использоватьmountкоманда для монтирования диска. мы монтируем его на/dataсодержание.

dfКоманда может видеть статус использования диска системой, параметрыhдаhumanсредства представления информации в более удобочитаемом виде;lsblkЗатем просмотрите крепления системного диска под другим углом.

[root@localhost ~]# mkdir /data
[root@localhost ~]# mount /dev/sdb1 /data
[root@localhost ~]# df -h
Filesystem               Size  Used Avail Use% Mounted on
devtmpfs                 908M     0  908M   0% /dev
tmpfs                    920M     0  920M   0% /dev/shm
tmpfs                    920M  8.6M  911M   1% /run
tmpfs                    920M     0  920M   0% /sys/fs/cgroup
/dev/mapper/centos-root  6.2G  1.4G  4.9G  22% /
/dev/sda1               1014M  149M  866M  15% /boot
tmpfs                    184M     0  184M   0% /run/user/0
/dev/sdb1                2.0G   33M  2.0G   2% /data

root@localhost ~]# lsblk  -f
NAME            FSTYPE      LABEL UUID                                   MOUNTPOINT
sda
├─sda1          xfs               ac3a3ce8-6ab1-4c0b-91c8-b4e617f0dfb4   /boot
└─sda2          LVM2_member       3GzmOd-TUc1-p2ZN-wT5q-ttky-to9l-PF495o
  ├─centos-root xfs               9f86f663-060a-4450-90f9-3005ad9c5d92   /
  └─centos-swap swap              cf8709b0-b0ab-4d44-a23e-ad76f85efad6   [SWAP]
sdb
└─sdb1          xfs               0a7c861c-1a31-45b3-bf37-c72229f35704   /data

Чтобы иметь возможность монтировать диск во время загрузки, нам нужно изменить/etc/fstabдокумент. Будьте осторожны при изменении этого файла, иначе система не запустится.

[root@localhost ~]# echo "/dev/sdb1  xfs defaults 0 0" >> /etc/fstab
[root@localhost ~]# cat /etc/fstab
/dev/mapper/centos-root / xfs defaults        0 0
UUID=ac3a3ce8-6ab1-4c0b-91c8-b4e617f0dfb4 /boot  xfs     defaults        0 0
/dev/mapper/centos-swap swap    swap    defaults        0 0
/dev/sdb1                       xfs     defaults        0 0

10.5 Поменять раздел

Из-за ограниченного объема памяти текущая операционная система будет использовать диск для имитации虚拟内存Область для буферизации некоторых данных. Поскольку скорость диска и памяти неодинакова, это обычно приводит к заиканию приложения. Карта возвращается на карту, но процесс приложения может выжить и продолжить свою жизнь.

swapРаздел, то есть область подкачки, когда системе не хватает физической памяти, иswapобмен. То есть, когда физической памяти системы не хватает, часть места на жестком диске освобождается для использования запущенной в данный момент программы. Когда эти программы должны быть запущены, тоswapВосстановите данные, сохраненные в разделе, в память.

Современные интернет-компании вообще предъявляют относительно высокие требования к времени отклика интерфейса.swapРазделение вообще отключено. оswap, существуют следующие связанные команды.

# 制作交换分区
[root@localhost ~]# mkswap /dev/sdb1

# 禁用所有交换分区
[root@localhost ~]# swapoff -a

# 启用交换分区
[root@localhost ~]# swapon

10.6 Резервное копирование с помощью команды dd

Следующая команда создаст резервную копию диска A напрямую на диск B.

# dd if=/dev/sda of=/dev/sdb

В приведенной выше командеifпредставляет входной файл,ofФайл, представляющий вывод. По принципу, что под линуксом все файлом, файл здесь относится к устройству.

ddКоманда также может упаковать весь диск в файл образа. Например, следующая команда.

# dd if=/dev/hda of=~/hdadisk.img

Конечно, при восстановлении диска тоже достаточно просто, нам нужно только выполнить обратную операцию.

# dd if=hdadisk.img of=/dev/hda

End

Эта статья состоит из 60 000 слов и представлена ​​в нескольких версиях. Некоторые друзья использовали ее в качестве учебных материалов для компании. К настоящему времени у вас есть достаточно объективное представление о командной строке Linux. Но у меня все еще есть много статей, которые могут вывести вас на следующий уровень, например, использование vim, sed и awk. Ниже приведены несколько расширенных чтений, в которых также используется метод трехсегментного анализа командной строки, предназначенный для xjjdog, Надеюсь, это поможет вам.

最常用Серия, быстро освоить трех дешевых клиентов↓

Самый распространенный набор трюков "Вим"
Наиболее часто используемый набор приемов «Сэд»
Наиболее часто используемый набор техник "AWK"

Остальная часть серии необитаемый остров

荒岛余生Серия, быстро освоить устранение неполадок ↓

Linux «Остальная часть необитаемого острова» (1) Подготовка
«Остальная часть необитаемого острова» (2) ЦП Linux
Linux «Остальная часть необитаемого острова» (3) Память
Linux «Остальная часть необитаемого острова» (4) Ввод-вывод
Сетевая глава Linux «Остальная часть необитаемого острова» (5)

Добро пожаловать, чтобы добавить моего друга xjjdog0, присоединиться к группе, чтобы увеличить значение баффа.

Об авторе:Мисс сестра вкус(xjjdog), публичная учетная запись, которая не позволяет программистам идти в обход. Сосредоточьтесь на инфраструктуре и Linux. Десять лет архитектуры, десятки миллиардов ежедневного трафика, обсуждение с вами мира высокой параллелизма, дающие вам другой вкус. Мой личный WeChat xjjdog0, добро пожаловать в друзья для дальнейшего общения.​