Выберите выходные, отличные от 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
Более старый продукт, который используется чаще. -
MobaXterm
MobaXterm — это чисто зеленое программное обеспечение, состоящее из одного файла, вы можете загрузить пакет 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
Предоставленная команда может вывести текущий рабочий каталог.
pwd
command — очень, очень распространенная команда, особенно в некоторых命令提示符
Настройте менее дружественные машины. Кроме того, он часто используется в сценариях оболочки, чтобы определить, соответствует ли текущий рабочий каталог требованиям.
Есть много онлайн-инцидентов, вызванных отсутствием подтверждения текущего каталога. Например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/sdb
,вsda
уже выделено, уже занято нашей файловой системой. Теперь вспомните/dev
Назначение каталога.В этом каталоге хранятся некоторые файлы устройств.Если мы добавим еще один диск, его дескриптор должен бытьsdc
(сд*).
Прежде чем можно будет использовать весь диск, нам нужно выполнить над ним три операции.
- раздел диска
- формат диска
- дисковое крепление
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, добро пожаловать в друзья для дальнейшего общения.