Краткое описание системы из 20 000 слов поможет вам добиться свободы команд Linux?

задняя часть Linux

предисловие

Важность изучения Linux для программиста очевидна. Front-end разработка по сравнению с back-end разработкой, контактLinuxТакая возможность выпадает относительно редко, поэтому часто ее легко упустить из виду. Но хорошо изучить его — одно из обязательных условий для программиста.

Если эта статья была вам полезна, нажмите 👍.

Автор использует облачный сервер Alibaba.ECS(самый дешевый)CentOS 7.764-бит. Конечно, вы также можете установить виртуальную машину на свой компьютер, а затем установить ее на виртуальную машину.CentOSсистема (которая совершенно бесплатна). Что касается руководства по установке, вы можете поискать в Google, там есть много соответствующих руководств.

Основы Linux

Операционная система

Операционная системаOperating SystemсокращениеOS, является частью программного обеспечения, это первый уровень программного обеспечения на основе аппаратного обеспечения и мост между аппаратным и другим программным обеспечением.

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

image.png

Что такое линукс

Разница между ядром системы Linux и дистрибутивом Linux

  • LinuxЯдро системы относится кLinus TorvaldsОтвечает за техническое обслуживание, обеспечение уровня аппаратной абстракции, управление жестким диском и файловой системой, а также основные системные программы с функциями многозадачности.
  • LinuxСистема распределения - это то, что мы часто говоримLinuxоперационная система, котораяLinuxКоллекция ядер и различного часто используемого программного обеспечения.

Резюме: правдаLinuxОтносится к ядру системы, и мы часто говоримLinuxОтносится к «дистрибутиву с некоторым базовым программным обеспечением операционной системы».

Линукс против Виндовс

  1. стабильный и эффективный;
  2. бесплатно (или за небольшую плату);
  3. Меньше уязвимостей и быстрых исправлений;
  4. Многозадачность и многопользовательский режим;
  5. Более безопасные политики доступа к пользователям и файлам;
  6. Встроенные системы, подходящие для небольших программ ядра;
  7. Относительно низкое потребление ресурсов.

Типы Linux-систем

  • Корпоративная версия Red HatLinux:RHELявляется наиболее широко используемым в миреLinux система. Это чрезвычайно производительная и стабильная система (платная), используемая во многих средах сборки.
  • Fedora: системный пакет версии для настольных ПК, выпущенный Red Hat, пользователи могут бесплатно испытать новейшие технологии или инструменты, которые будут добавлены вRHELсистема, такFedoraтакже статьRHELЭкспериментальная версия системы.
  • CentOS: поставивRHELСистема перекомпилирована и предоставлена ​​пользователям для бесплатного использования.Linuxсистема с широким кругом пользователей.
  • Deepin: Выпущено в Китае, интегрирует и настраивает отличные продукты с открытым исходным кодом.
  • Debian: Надежная стабильность и безопасность, бесплатная базовая поддержка, высокая степень признания и использования за рубежом.
  • Ubuntu: является производным отDebianОперационная система имеет надежную совместимость с новым оборудованием.Ubuntu иFedoraвсе отличноLinuxнастольные системы иUbuntuМожет также использоваться в сфере сервера.

Терминальное подключение к облачному серверу Alibaba

image.pngвыполнивssh root@121.42.11.34команду, а затем введите пароль для подключения к серверу, чтобы успешно войти на удаленный сервер. С этого момента мы можем управлять удаленным сервером на локальном компьютере.

  1. Эта черная панель - терминалShell(Среда командной строки).
  2. ssh root@xxxЭто команда, которая должна бытьShellчтобы выполнить.

Shell

ShellПервоначальное значение слова — «скорлупа», за которым следуетkernel(Ядро) Соответственно, это метафора слоя вне ядра, то есть диалогового интерфейса между пользователем и ядром.

  • Shellэто программа, которая обеспечивает среду для диалога с пользователем. Эта среда имеет только одну командную строку, позволяющую пользователям вводить команды с клавиатуры, поэтому ее также называют средой командной строки (command line interface, сокращенноCLI).ShellПолучите команду, введенную пользователем, отправьте команду операционной системе для выполнения и верните результат пользователю.
  • Shellинтерпретатор команд, который интерпретирует команды, введенные пользователем. Он поддерживает такие синтаксисы, как переменные, условные суждения и циклические операции, поэтому пользователи могут использоватьShellКоманда для написания различных небольших программ, также известная какShellсценарий. Эти скрипты проходят черезShellИнтерпретатор выполняется без компиляции.
  • Shellэто набор инструментов, который предоставляет пользователям различные небольшие инструменты для удобного использования функций операционной системы.

Вид оболочки

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

Исторически главнымShellЕсть следующие:

  • Борн Шелл (ш)
  • Оболочка Bourne Again (bash)
  • C-оболочка (csh)
  • TENEX C Shell (tcsh)
  • Корн Шелл (кш)
  • Z Shell (зш)
  • Дружелюбная интерактивная оболочка (рыба)

вBashявляется наиболее часто используемымShell.MacOSпо умолчанию вShell этоBash.

выполнивecho $SHELLкоманда для просмотра используемых в данный моментShell. также черезcat /etc/shellsПросмотреть все текущие установки системыShell тип.

Заказ

приглашение командной строки

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

выполнить простую командуpwd:

[root@iZm5e8dsxce9ufaic7hi3uZ ~]# pwd
/root

Разбор команды:

  • root: указывает имя пользователя;

  • iZm5e8dsxce9ufaic7hi3uZ: указывает имя хоста;

  • ~: Указывает, что текущий каталог является домашним каталогом, гдеrootДомашний каталог пользователя/rootДомашний каталог обычных пользователей находится в/homeВниз;

  • #: указывает права, которые у вас есть (rootПользователь#, обычные пользователи$).

  • воплощать в жизньwhoamiкоманда для просмотра текущего имени пользователя;

  • воплощать в жизньhostnameКоманда для просмотра текущего имени хоста;

О том, как создавать, переключать и удалять пользователей, пользователи и разрешения будут подробно объяснены позже, здесь первое использованиеrootпользователю для демонстрации.

[Примечание]rootЭто суперпользователь и имеет все разрешения операционной системы.

формат команды

command parameters(命令 参数)

параметр длины

单个参数:ls -a(a 是英文 all 的缩写,表示“全部”)
多个参数:ls -al(全部文件 + 列表形式展示)
单个长参数:ls --all
多个长参数:ls --reverse --all
长短混合参数:ls --all -l

значение параметра

短参数:command -p 10(例如:ssh root@121.42.11.34 -p 22)
长参数:command --paramters=10(例如:ssh root@121.42.11.34 --port=22)

Ярлык

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

  • Используйте клавиши со стрелками вверх и вниз ↑ ↓ для вызова ранее выполненногоLinux Заказ;
  • Команды или параметры можно использовать, только введя первые несколько цифрTabключевое завершение;
  • Ctrl + R: используется для поиска используемых команд (historyкоманда используется для вывода списка всех ранее использовавшихся команд, затем введите!команда плюс число (!2), вы можете напрямую выполнить команду истории);
  • Ctrl + L: очистить экран и переместить текущую строку вверх страницы;
  • Ctrl + C: Прервать текущую выполняемую команду;
  • Ctrl + U: Обрезать от позиции курсора до начала строки;
  • Ctrl + K: Обрезать от позиции курсора до конца строки;
  • Ctrl + W: вырезать слово слева от курсора;
  • Ctrl + Y: вставитьCtrl + U | K | Yкоманда вырезать;
  • Ctrl + A: курсор переходит в начало командной строки;
  • Ctrl + E: курсор переходит в конец командной строки;
  • Ctrl + D: закрытиеShellсеанс;

файлы и каталоги

организация документов

image.png

путь просмотра

pwd

Показать путь к текущему каталогу

image.png

which

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

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

image.png

Просмотр и переключение каталогов

ls

Список файлов и каталогов, этоLinuxОдна из наиболее часто используемых команд.

【Общие параметры】

  • -aПоказать все файлы и каталоги, включая скрытые
  • -lпоказать подробный список
  • -hподходит для чтения человеком
  • -tСортировать по времени последнего изменения файла
  • -iпоказать файлinode(inodeэто идентификатор содержимого файла)

image.png

cd

cdэто английскийchange directoryАббревиатура от , что означает переключение каталогов.

cd /	--> 跳转到根目录
cd ~	--> 跳转到家目录
cd ..	--> 跳转到上级目录
cd ./home	--> 跳转到当前目录的home目录下
cd /home/lion	--> 跳转到根目录下的home目录下的lion目录
cd	--> 不添加任何参数,也是回到家目录

[Примечание] вводcd /ho+ синглtabключ автоматически заполнит путь + дваждыtabkey выведет список всех возможных каталогов.

du

Список размер каталога информации.

【Общие параметры】

  • -hподходит для чтения человеком;
  • -aВ то же время отображается информация о размере файлов в каталоге;
  • -sОтображается только общий размер, никакой конкретной информации не отображается.

Просмотр и создание файлов

cat

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

cat cloud-init.log

【Общие параметры】

  • -nОтображает номера строк.

less

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

less cloud-init.log

【Быстрая работа】

  • Пробел: вперед на одну страницу (один экран);
  • bклавиша: вернуться на одну страницу назад;
  • Клавиша ввода: переход на одну строку вперед;
  • yклавиша: вернуться на одну строку назад;
  • Клавиши вверх и вниз: переход назад или вперед на одну строку;
  • dклавиша: вперед на полстраницы;
  • uклавиша: вернуться на полстраницы назад;
  • qключ: остановить чтение файла, прерватьless Заказ;
  • =ключ: отображать содержимое текущей страницы, это строка к какой строке в файле и некоторая другая подробная информация о содержимом этой страницы;
  • hклавиша: показать справку;
  • /клавиша: После входа в режим поиска нажмитеnчтобы перейти к соответствующему элементу, нажмитеNКлавиша переходит к предыдущему совпадающему элементу, и вы также можете ввести регулярное выражение для сопоставления.

head

Отображение первых нескольких строк файла (по умолчанию 10 строк)

head cloud-init.log

【параметр】

  • -nУкажите количество строкhead cloud-init.log -n 2 

tail

Показать последние несколько строк файла (по умолчанию 10 строк)

tail cloud-init.log

【параметр】

  • -nУкажите количество строкtail cloud-init.log -n 2
  • -fОн будет проверять, обновляется ли содержимое файла каждую 1 секунду, вы также можете использовать-sпараметр указывает интервалtail -f -s 4 xxx.log 

touch

создать файл

touch new_file

mkdir

создать каталог

mkdir new_folder

【Общие параметры】

  • -pСтруктура каталогов рекурсивного созданияmkdir -p one/two/three 

Копирование и перемещение файлов

cp

Копировать файлы и каталоги

cp file file_copy	--> file 是目标文件,file_copy 是拷贝出来的文件
cp file one	--> 把 file 文件拷贝到 one 目录下,并且文件名依然为 file
cp file one/file_copy	--> 把 file 文件拷贝到 one 目录下,文件名为file_copy
cp *.txt folder	--> 把当前目录下所有 txt 文件拷贝到 folder 目录下

【Общие параметры】

  • -rРекурсивная копия, часто используемая для копирования всего каталога.

mv

Переместите (переименуйте) файл или каталог, аналогично использованию команды cp.

mv file one	--> 将 file 文件移动到 one 目录下
mv new_folder one	--> 将 new_folder 文件夹移动到one目录下
mv *.txt folder	--> 把当前目录下所有 txt 文件移动到 folder 目录下
mv file new_file	--> file 文件重命名为 new_file

Удаление и связывание файлов

rm

удалять файлы и каталоги из-заLinuxКорзины под ним нет, после удаления его очень сложно восстановить, поэтому действовать нужно с осторожностью

rm new_file 	--> 删除 new_file 文件
rm f1 f2 f3 	--> 同时删除 f1 f2 f3 3个文件

【Общие параметры】

  • -iПодтвердите с пользователем, следует ли его удалить;
  • -fПринудительное удаление файла;
  • -rУдаление папок рекурсивно, знаменитая операция удаленияrm -rf.

ln

английскийLinkАббревиатура от , что означает создать ссылку.

Прежде чем научиться создавать ссылки, мы должны сначала понять, что такое ссылка, давайте посмотримLinuxКак хранятся файлы:

LinuxМетод хранения файлов делится на 3 части: имя файла, содержимое файла и разрешения.Список имен файлов хранится в других местах на жестком диске, а содержимое файла хранится отдельно.inodeИдентификатор привязан к содержимому файла.

В Linux существует два типа ссылок: жесткие ссылки и программные ссылки.

жесткая ссылка

Сделайте так, чтобы два связанных файла имели одинаковое содержимое файла, которое является одинаковым.inode, раз есть жесткая ссылка между файлом 1 и файлом 2, то изменение любого файла приведет к изменению одного и того же фрагмента содержимого.Его недостаток в том, что можно создавать только жесткие ссылки на файлы, а не каталоги (на самом деле да, но это сложнее), а программные ссылки могут, поэтому программные ссылки используются более широко.

ln file1 file2 	--> 创建 file2 为 file1 的硬链接

image.png

если мы используемrm file1удалитьfile1 ,правильноfile2Это не имеет значения.Для жестких ссылок, если вы удалите файл с любой стороны, содержимое файла, на который он указывает, не будет удалено с жесткого диска. Только удалили одновременноfile1 иfile2После этого содержимое файлов, на которые они указывают вместе, исчезает.

мягкая ссылка

Мягкие ссылки похожи наwindowsвниз по ярлыку.

ln -s file1 file2

image.png

воплощать в жизньls -lИмя для просмотра конкретной информации о файлах в текущем каталоге

total 0
-rw-r--r-- 1 root root 0 Jan 14 06:29 file1
lrwxrwxrwx 1 root root 5 Jan 14 06:42 file2 -> file1  # 表示file2 指向 file1

фактическиfile2 Толькоfile1Ярлык для , который указывает наfile1, так он показываетfile1содержание, а на самом делеfile2 изinode иfile1не то же самое. если мы удалимfile2 если,file1не влияет, но если удалитьfile1 если,file2Это станет мертвой ссылкой, потому что указанный файл исчез.

пользователи и разрешения

Пользователь

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

image.png

Пользователь, созданный вами, является пользователем с ограниченными правами, что значительно улучшаетLinuxБезопасность системы может эффективно предотвратить неправильную работу или вирусные атаки, но некоторые выполняемые нами команды можно использовать, когда требуются более высокие привилегии.sudo Заказ.

sudo

отrootзапустить команду как личность

sudo date  --> 当然查看日期是不需要sudo的这里只是演示,sudo 完之后一般还需要输入用户密码的

useradd + passwd

  • useraddдобавить нового пользователя
  • passwdИзменить пароль пользователя

Эти две команды требуютrootПрава пользователя

useradd lion	--> 添加一个lion用户,添加完之后在 /home 路径下可以查看
passwd lion	--> 修改lion用户的密码

userdel

удалить пользователя, обязательноrootПрава пользователя

userdel lion	--> 只会删除用户名,不会从/home中删除对应文件夹
userdel lion -r	--> 会同时删除/home下的对应文件夹

su

сменить пользователя, нужноrootПрава пользователя

sudo su	--> 切换为root用户(exit 命令或 CTRL + D 快捷键都可以使普通用户切换为 root 用户)
su lion	--> 切换为普通用户
su -	--> 切换为root用户

Управление группой

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

groupadd

Создание групп, использование иuseraddПохожий.

groupadd friends

groupdel

удалить существующую группу

groupdel foo 	--> 删除foo群组

groups

Просмотр групп пользователей

groups lion 	--> 查看 lion 用户所在的群组

usermod

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

【Общие параметры】

  • -lПереименуйте пользователя. должен быть в курсе/homeИмя домашнего каталога пользователя не изменится, и его необходимо изменить вручную.
  • -gИзмените группу, в которой находится пользователь, например.usermod -g friends lion ИсправлятьlionГруппа пользователяfriends.
  • -GРазрешить пользователям добавлять сразу несколько групп, например.usermod -G friends,foo,bar lion.
  • -a -Gуберет вас из первоначальной группы, если вы не хотите этого делать, вам придется добавить ее снова-aпараметр, что означаетappendзначит добавить.

chgrp

Группа для редактирования файлов.

chgrp bar file.txt	--> file.txt文件的群组修改为bar

chown

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

chown lion file.txt	--> 把其它用户创建的file.txt转让给lion用户
chown lion:bar file.txt	--> 把file.txt的用户改为lion,群组改为bar

【Общие параметры】

  • -Rрекурсивно устанавливать подкаталоги и подфайлы,chown -R lion:lion /home/frankПучокfrankПользователь и группа папки изменены наlion.

Управление правами на файлы

chmod

Изменить права доступа.

chmod 740 file.txt

【Общие параметры】

  • -RПрава доступа к файлам могут быть изменены рекурсивно, например.chmod -R 777 /home/lion

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

[root@lion ~]# ls -l
drwxr-xr-x 5 root root 4096 Apr 13  2020 climb
lrwxrwxrwx 1 root root    7 Jan 14 06:41 hello2.c -> hello.c
-rw-r--r-- 1 root root  149 Jan 13 06:14 hello.c

вdrwxr-xr-xУказывает права доступа к файлу или каталогу. Давайте интерпретируем, что он представляет?

  • d: указывает каталог, то есть это каталог, а обычный файл-, ссылка естьl.
  • r:readУказывает, что файл доступен для чтения.
  • w:writeУказывает, что файл доступен для записи и обычно имеет разрешение на запись и разрешение на удаление.
  • x:executeУказывает, что файл является исполняемым.
  • -: указывает на отсутствие соответствующего разрешения.

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

image.png

Теперь давайте поймем это предложениеdrwxr-xr-xзначение:

  • это папка;
  • Его владелец имеет: права на чтение, запись, выполнение;
  • Его групповые пользователи имеют: права на чтение и выполнение, но не права на запись;
  • Другие его пользователи имеют: права на чтение, выполнение, без прав на запись.

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

полномочный орган цифрового присвоения
разрешение номер
r 4
w 2
x 1

Итак, чтобы изменить разрешения, просто выполните несколько простых дополнений:

chmod 640 hello.c 

# 分析
6 = 4 + 2 + 0 表示所有者具有 rw 权限
4 = 4 + 0 + 0 表示群组用户具有 r 权限
0 = 0 + 0 + 0 表示其它用户没有权限

对应文字权限为:-rw-r-----
Используйте буквы для назначения разрешений
  • u:userАббревиатура, означающая «пользователь», означает «владелец».
  • g:groupАббревиатура , означающая группу, указывает на группу пользователей.
  • o:otherАббревиатура в других значениях означает других пользователей.
  • a:allАббревиатура во всех значениях означает всех пользователей.
  • +: Знак плюс означает добавление разрешений.
  • -: Знак минус, что означает удаление разрешения.
  • =: знак равенства, указывающий на разрешение присваивания.
chmod u+rx file	--> 文件file的所有者增加读和运行的权限
chmod g+r file	--> 文件file的群组用户增加读的权限
chmod o-r file	--> 文件file的其它用户移除读的权限
chmod g+r o-r file	--> 文件file的群组用户增加读的权限,其它用户移除读的权限
chmod go-r file	--> 文件file的群组和其他用户移除读的权限
chmod +x file	--> 文件file的所有用户增加运行的权限
chmod u=rwx,g=r,o=- file	--> 文件file的所有者分配读写和执行的权限,群组其它用户分配读的权限,其他用户没有任何权限

найти файлы

locate

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

установить найти

yum -y install mlocate	--> 安装包
updatedb	--> 更新数据库
locate file.txt
locate fil*.txt

[Уведомление]locateКоманда отправится в базу данных файлов, чтобы найти команду, а не поиск по всему диску, поэтому только что созданный файл не будет обновлен в базе данных, поэтому его невозможно найти, вы можете выполнитьupdatedbкоманда для обновления базы данных.

find

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

find <何处> <何物> <做什么>
  • Где: Указывает каталог для поиска, все подкаталоги этого каталога также будут найдены.
  • Что: Что искать, можно искать по названию файла, или по его размеру, или по последнему времени доступа.
  • Что делать: После того, как файл найден, можно выполнять последующую обработку, если этот параметр не указан,findКоманда отобразит только найденные файлы.

Найти по имени файла

find -name "file.txt"	--> 当前目录以及子目录下通过名称查找文件
find . -name "syslog"	--> 当前目录以及子目录下通过名称查找文件
find / -name "syslog"	--> 整个硬盘下查找syslog
find /var/log -name "syslog"	--> 在指定的目录/var/log下查找syslog文件
find /var/log -name "syslog*"	--> 查找syslog1、syslog2 ... 等文件,通配符表示所有
find /var/log -name "*syslog*"	--> 查找包含syslog的文件 

[Уведомление]findкоманда найдет только те файлы, которые точно соответствуют строке «что», в то время какlocateнайдет все файлы, содержащие ключевое слово.

Найти по размеру файла

find /var -size +10M	--> /var 目录下查找文件大小超过 10M 的文件
find /var -size -50k	--> /var 目录下查找文件大小小于 50k 的文件
find /var -size +1G	--> /var 目录下查找文件大小查过 1G 的文件
find /var -size 1M	--> /var 目录下查找文件大小等于 1M 的文件

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

find -name "*.txt" -atime -7 	--> 近 7天内访问过的.txt结尾的文件

Найти только каталоги или файлы

find . -name "file" -type f 	--> 只查找当前目录下的file文件
find . -name "file" -type d 	--> 只查找当前目录下的file目录

Действие Найти результаты

find -name "*.txt" -printf "%p - %u\n"	--> 找出所有后缀为txt的文件,并按照 %p - %u\n 格式打印,其中%p=文件名,%u=文件所有者
find -name "*.jpg" -delete	--> 删除当前目录以及子目录下所有.jpg为后缀的文件,不会有删除提示,因此要慎用
find -name "*.c" -exec chmod 600 {} \;	--> 对每个.c结尾的文件,都进行 -exec 参数指定的操作,{} 会被查找到的文件替代,\; 是必须的结尾
find -name "*.c" -ok chmod 600 {} \;	--> 和上面的功能一直,会多一个确认提示

репозиторий программного обеспечения

LinuxСледующее программное обеспечение существует в виде пакета. Пакет программного обеспечения на самом деле является сжатым пакетом всех файлов программного обеспечения. Он находится в двоичной форме и содержит все инструкции по установке программного обеспечения.Red HatСуффикс семейного пакета обычно.rpm,DebianСуффикс пакета семейства.deb.

LinuxВсе пакеты существуют в репозитории, называемом репозиторием программного обеспечения, который можно использовать сyumуправлять пакетами,yum ДаCentOSИнструмент управления пакетами по умолчанию вRed Hatсемья. можно понимать какNode.js изnpm.

ням общие команды

  • yum update | yum upgradeпакет обновления
  • yum search xxxНайдите соответствующий пакет
  • yum install xxxустановить пакет
  • yum remove xxxудалить пакет

Переключить репозиторий CentOS

иногдаCentOS дефолтyumИсточник не обязательно домашнее зеркало, в результатеyumСкорость онлайн-установки и обновления не очень идеальна. В это время необходимоyumИсточник указан на отечественном зеркальном сайте. Основными зеркальными сайтами с открытым исходным кодом в Китае являются NetEase и Alibaba Cloud.

1. Сначала сделайте резервную копию системыyumисходный файл конфигурацииmv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup 

2. Загрузите облако Alibabayumисходный файл конфигурации в/etc/yum.repos.d/CentOS7 

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

3. Создать кеш

yum makecache

Прочтите руководство

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

man

установить обновление человек

sudo yum install -y man-pages	--> 安装
sudo mandb	--> 更新

человек ручные типы

  1. исполняемая программа илиShell Заказ;
  2. системный вызов (Linuxфункции, предоставляемые ядром);
  3. библиотечные вызовы (функции в программной библиотеке);
  4. файл (например/etc/passwd);
  5. специальные файлы (обычно в/dev Вниз);
  6. игра;
  7. Разное (man(7),groff(7));
  8. Команды системного администрирования (обычно доступные толькоrootиспользование пользователем);
  9. подпрограммы ядра.

человек + число + команда

Введите man + номер + команда/функция, вы можете найти соответствующие команды и функции, если номер не добавлен,manПо умолчанию ищите соответствующие команды и функции в руководствах с меньшими номерами.

man 3 rand 	--> 表示在手册的第三部分查找 rand 函数
man ls 			--> 查找 ls 用法手册

Ручной анализ области ядра человека: (сman pwdпример)

NAME # 命令名称和简单描述
     pwd -- return working directory name

SYNOPSIS # 使用此命令的所有方法
     pwd [-L | -P]

DESCRIPTION # 包括所有参数以及用法
     The pwd utility writes the absolute pathname of the current working directory to the standard output.

     Some shells may provide a builtin pwd command which is similar or identical to this utility.  Consult the builtin(1) manual page.

     The options are as follows:

     -L      Display the logical current working directory.

     -P      Display the physical current working directory (all symbolic links resolved).

     If no options are specified, the -L option is assumed.

SEE ALSO # 扩展阅读相关命令
     builtin(1), cd(1), csh(1), sh(1), getcwd(3)

help

manКоманды могут запрашивать подробную информацию о командах или функциях, таких как словарь Синьхуа, но на самом деле у нас есть более быстрый способ запроса,command --help илиcommand -h, это неmanКоманда показана менее подробно, но ее легче читать.

Расширенный Linux

манипулирование текстом

grep

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

Базовая грамматика

grep text file # text代表要搜索的文本,file代表供搜索的文件

# 实例
[root@lion ~]# grep path /etc/profile
pathmunge () {
    pathmunge /usr/sbin
    pathmunge /usr/local/sbin
    pathmunge /usr/local/sbin after
    pathmunge /usr/sbin after
unset -f pathmunge

Общие параметры

  • -iигнорировать регистр,grep -i path /etc/profile 
  • -nпоказать номера строк,grep -n path /etc/profile
  • -vпоказывать только те строки, где нет искомого текста,grep -v path /etc/profile
  • -rпоиск рекурсивно,grep -r hello /etc, в Linux также есть команда rgrep, эквивалентнаяgrep -r 

Расширенное использование

grepМожет использоваться с регулярными выражениями.

grep -E path /etc/profile --> 完全匹配path
grep -E ^path /etc/profile --> 匹配path开头的字符串
grep -E [Pp]ath /etc/profile --> 匹配path或Path

sort

Отсортируйте строки файла.

Базовая грамматика

sort name.txt # 对name.txt文件进行排序

использование экземпляра

Для удобства демонстрации сначала создадим файлname.txt, поставить следующее:

Christopher
Shawn
Ted
Rock
Noah
Zachary
Bella

воплощать в жизньsort name.txtКоманда для сортировки текстового содержимого.

Общие параметры

  • -oзаписать отсортированный файл в новый файл,sort -o name_sorted.txt name.txt;
  • -rобратный порядок,sort -r name.txt;
  • -Rслучайный порядок,sort -R name.txt;
  • -nСортировка чисел, по умолчанию числа распознаются как строки, поэтому 138 будет отсортировано перед 25, если добавить-nВ числовом порядке 25 будет стоять перед 138.

wc

word countАббревиатура для статистики файла. Он может подсчитывать количество слов, строк, символов, байтов и т. д.

Базовая грамматика

wc name.txt # 统计name.txt

использование экземпляра

[root@lion ~]# wc name.txt 
13 13 91 name.txt
  • Первые 13 представляют количество строк;
  • Вторые 13 представляют количество слов;
  • Третий 91 представляет количество байтов.

Общие параметры

  • -lподсчитайте только количество строк,wc -l name.txt;
  • -wсчитать только количество слов,wc -w name.txt;
  • -cТолько считать количество байтов,wc -c name.txt;
  • -mСчитайте только количество символов,wc -m name.txt.

uniq

Удалить дублированный контент в файлах.

Базовая грамматика

uniq name.txt # 去除name.txt重复的行数,并打印到屏幕上
uniq name.txt uniq_name.txt # 把去除重复后的文件保存为 uniq_name.txt

[Примечание] Он может удалить только количество последовательных повторяющихся строк.

Общие параметры

  • -cПодсчитайте количество повторяющихся строк,uniq -c name.txt;
  • -dпоказать только количество повторяющихся строк,uniq -d name.txt.

cut

Вырезать часть файла.

Базовая грамматика

cut -c 2-4 name.txt # 剪切每一行第二到第四个字符

Общие параметры

  • -dИспользуется для указания используемых разделителей (таких как запятые, точки с запятой, двойные кавычки и т. д.).cut -d , name.txt;
  • -fУказывает, какая часть или области должны быть вырезаны с помощью разделителя,cut -d , -f 1 name.txt.

перенаправить поток трубы

существуетLinuxМесто назначения команды может иметь 3 места: терминал, файл, как входной параметр другой команды.
未命名文件 (4).png
Команды обычно вводятся с клавиатуры, а затем выводятся на терминалы, в файлы и т. д. Его стандартный язык —stdin,stdout а такжеstderr.

  • стандартный вводstdin, терминал получает ввод команды с клавиатуры и выдает два вида вывода;
  • стандартный выводstdout, информация, выводимая терминалом (не включая информацию об ошибках);
  • стандартный вывод ошибокstderr, сообщение об ошибке, выводимое терминалом.


image.png

перенаправить

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

перенаправление вывода> 

>означает перенаправление на новый файл,cut -d , -f 1 notes.csv > name.csv, что означает сокращение запятойnotes.csvфайл (3 части после вырезания), чтобы получить первую часть, перенаправить наname.csvдокумент.

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

Mark1,951/100,很不错1
Mark2,952/100,很不错2
Mark3,953/100,很不错3
Mark4,954/100,很不错4
Mark5,955/100,很不错5
Mark6,956/100,很不错6

Выполнение заказа:cut -d , -f 1 notes.csv > name.csvОкончательный вывод выглядит следующим образом:

Mark1
Mark2
Mark3
Mark4
Mark5
Mark6

【Примечание】Использование>Следует отметить, что если выходной файл не существует, будет создан новый, а если выходной файл уже существует, он будет перезаписан. Поэтому выполняйте эту операцию очень осторожно, чтобы не перезаписать другие важные файлы.

перенаправление вывода>> 

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

выполнить сноваcut -d , -f 1 notes.csv >> name.csv, добавит имя кname.csv в.

Mark1
Mark2
Mark3
Mark4
Mark5
Mark6
Mark1
Mark2
Mark3
Mark4
Mark5
Mark6

что мы обычно читаемlogФайлы журнала фактически выводятся с помощью этой команды.

перенаправление вывода2> 

стандартный вывод ошибок

cat not_exist_file.csv > res.txt 2> errors.log
  • когда мыcatКогда файл используется, содержимое файла будет напечатано на экране, что является стандартным выводом;
  • при использовании> res.txt, он не будет печатать на экране, а будет записывать стандартный вывод в файлres.txtв файле;
  • 2> errors.logбудет написано при возникновении ошибкиerrors.logв файле.

перенаправление вывода2>> 

Стандартный вывод ошибки (добавляется в конец файла) такой же, как>>сходство.

перенаправление вывода2>&1 

И stdout, и stderr перенаправляются в одно место

cat not_exist_file.csv > res.txt 2>&1  # 覆盖输出
cat not_exist_file.csv >> res.txt 2>&1 # 追加输出


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

未命名文件 (2).png

перенаправление ввода< 

<Символ используется для указания ввода команды.

cat < name.csv # 指定命令的输入为 name.csv

Хотя его результат такой же, какcat name.csvодинаковые, но принципы у них совершенно разные.

  • cat name.csv ВыражатьcatВвод, полученный командой,notes.csvимя файла, то вам нужно сначала открыть файл, а затем распечатать содержимое файла.
  • cat < name.csv ВыражатьcatВвод, полученный командой, напрямуюnotes.csvсодержимое этого файла,catКоманда отвечает только за печать своего содержимого, открытие файла и передачу содержимого файла вcatРабота команды передается терминалу для завершения.

перенаправление ввода<< 

Перенаправить ввод с клавиатуры на ввод команды.

sort -n << END # 输入这个命令之后,按下回车,终端就进入键盘输入模式,其中END为结束命令(这个可以自定义)

wc -m << END # 统计输入的单词

трубопровод| 

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

未命名文件 (1).png

Вот несколько практических случаев использования:

cut -d , -f 1 name.csv | sort > sorted_name.txt 
# 第一步获取到的 name 列表,通过管道符再进行排序,最后输出到sorted_name.txt

du | sort -nr | head 
# du 表示列举目录大小信息
# sort 进行排序,-n 表示按数字排序,-r 表示倒序
# head 前10行文件

grep log -Ir /var/log | cut -d : -f 1 | sort | uniq
# grep log -Ir /var/log 表示在log文件夹下搜索 /var/log 文本,-r 表示递归,-I 用于排除二进制文件
# cut -d : -f 1 表示通过冒号进行剪切,获取剪切的第一部分
# sort 进行排序
# uniq 进行去重

поток

поток это не команда, в информатике потокstreamЗначение более сложно понять, просто запомните одно:Потоковая передача — это чтение небольшого количества данных и обработка небольшого количества данных. Данные, как правило, в двоичном формате.Упомянутое выше перенаправление или конвейер предназначено для обработки данных как потока.

До сих пор мы соприкасались со потоками, редиректами, пайпами и т.д.LinuxРасширенные концепции и инструкции. На самом деле вы обнаружите, что потоки и конвейеры широко используются и в других языках.AngularКаналы можно использовать в синтаксисе шаблона в .Node.jsТакже вstreamконцепция потока.

Посмотреть прогресс

существуетWindowsпрошел вCtrl + Alt + DeleteГорячая клавиша для просмотра программного процесса.

w

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

[root@lion ~]# w
 06:31:53 up 25 days,  9:53,  1 user,  load average: 0.00, 0.01, 0.05
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    118.31.243.53    05:56    1.00s  0.02s  0.00s w
 
06:31:53:表示当前时间
up 25 days, 9:53:表示系统已经正常运行了“25天9小时53分钟”
1 user:表示一个用户
load average: 0.00, 0.01, 0.05:表示系统的负载,3个值分别表示“1分钟的平均负载”,“5分钟的平均负载”,“15分钟的平均负载”

 USER:表示登录的用于
 TTY:登录的终端名称为pts/0
 FROM:连接到服务器的ip地址
 LOGIN@:登录时间
 IDLE:用户有多久没有活跃了
 JCPU:该终端所有相关的进程使用的 CPU 时间,每当进程结束就停止计时,开始新的进程则会重新计时
 PCPU:表示 CPU 执行当前程序所消耗的时间,当前进程就是在 WHAT 列里显示的程序
 WHAT:表示当下用户正运行的程序是什么,这里我运行的是 w

ps

Используется для отображения процессов в текущей системе,psСписок процессов, отображаемых командой, не будет обновляться со временем, он статичен, он запущенpsСостояние команды на данный момент или моментальный снимок процесса.

Базовая грамматика

[root@lion ~]# ps
  PID TTY          TIME CMD
 1793 pts/0    00:00:00 bash
 4756 pts/0    00:00:00 ps
 
 PID:进程号,每个进程都有唯一的进程号
 TTY:进程运行所在的终端
 TIME:进程运行时间
 CMD:产生这个进程的程序名,如果在进程列表中看到有好几行都是同样的程序名,那么就是同样的程序产生了不止一个进程

Общие параметры

  • -efперечислить все процессы;
  • -efHСписок всех процессов в дереве;
  • -uСписок процессов, запущенных этим пользователем;
  • -aux пройти черезCPUи использование памяти для фильтрации процессовps -aux | less ;
  • -aux --sort -pcpu в соответствии сCPUИспользуйте порядок убывания,-aux --sort -pmemУказывает, что использование памяти находится в порядке убывания;
  • -axjfОтобразить процесс в древовидной структуре,ps -axjfэто иpstreeЭффект аналогичен.

top

Получить динамический список процессов.

top - 07:20:07 up 25 days, 10:41,  1 user,  load average: 0.30, 0.10, 0.07
Tasks:  67 total,   1 running,  66 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.7 us,  0.3 sy,  0.0 ni, 99.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  1882072 total,   552148 free,   101048 used,  1228876 buff/cache
KiB Swap:        0 total,        0 free,        0 used.  1594080 avail Mem 

  PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND                                                                                                       
  956 root      10 -10  133964  15848  10240 S  0.7  0.8 263:13.01 AliYunDun                                                                                                     
    1 root      20   0   51644   3664   2400 S  0.0  0.2   3:23.63 systemd                                                                                                       
    2 root      20   0       0      0      0 S  0.0  0.0   0:00.05 kthreadd                                                                                                      
    4 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 kworker/0:0H    
  • top - 07:20:07 up 25 days, 10:41,  1 user,  load average: 0.30, 0.10, 0.07довольноwИнформация о первой строке команды.
  • Показанные процессы основаны на использовании процессора%CPUОтсортировано по использованию.

kill

завершить процесс,kill + PID.

kill 956 # 结束进程号为956的进程
kill 956 957 # 结束多个进程
kill -9 7291 # 强制结束进程

процесс управления

статус процесса

В основном для переключения состояния процесса. Давайте сначала разберемсяLinuxСледующие пять состояний процесса:

  1. код состоянияR: указывает рабочее состояние;
  2. код состоянияS: Указывает на прерывание (в состоянии покоя, заблокировано, при формировании определенного состояния или получении сигнала выходит из этого состояния);
  3. код состоянияD: указывает на непрерываемость (процесс не отвечает на системные асинхронные сигналы и не может быть прерван даже командой kill);
  4. код состоянияZ: указывает на зомби (процесс завершен, но дескриптор процесса все еще существует до тех пор, пока родительский процесс не вызоветwait4()отпустите процесс после системной функции);
  5. код состоянияT: указывает на остановку (процесс получаетSIGSTOP,SIGSTP,SIGTIN,SIGTOUОстановите бег, дождавшись стоп-сигнала).

Процесс переднего плана и фоновый процесс

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

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

&

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

cp name.csv name-copy.csv &

nohup

Сделайте процесс невосприимчивым к зависаниям (таким как закрытие терминала).

nohup cp name.csv name-copy.csv

nohupкоманда также может быть объединена с& В сочетании с.

nohup cp name.csv name-copy.csv &

bg

Сделать "паузу в фоновом режиме" процесса, статус меняется на "работает в фоновом режиме".

bg %1 # 不加任何参数的情况下,bg命令会默认作用于最近的一个后台进程,如果添加参数则会作用于指定标号的进程

Фактический случай 1:

1. 执行 grep -r "log" / > grep_log 2>&1 命令启动一个前台进程,并且忘记添加 & 符号
2. ctrl + z 使进程状态转为后台暂停
3. 执行 bg 将命令转为后台运行

Фактический случай 2:

前端开发时我们经常会执行 yarn start 启动项目
此时我们执行 ctrl + z 先使其暂停
然后执行 bg 使其转为后台运行
这样当前终端就空闲出来可以干其它事情了,如果想要唤醒它就使用 fg 命令即可(后面会讲)

jobs

Отображает текущее состояние фонового процесса терминала.

[root@lion ~]# jobs
[1]+  Stopped                 top
[2]-  Running                 grep --color=auto -r "log" / > grep_log 2>&1 &

fg

fgСделайте процесс запущенным на переднем плане, используя иbgКоманды аналогичны.

Мы используем картинку для представления переключения передних и фоновых процессов:

image.png

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

демон

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

Имя демона обычно имеет последнююd ,Выражатьdaemonгвардии значение, напримерsystemd,httpd.

systemd

systemd ЯвляетсяLinuxНабор компонентов системной инфраструктуры, которые обеспечивают диспетчер системы и служб, работающий какPID 1И отвечает за запуск других программ.

[root@lion ~]# ps -aux
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.2  51648  3852 ?        Ss   Feb01   1:50 /usr/lib/systemd/systemd --switched-root --system --deserialize 22

Вы также можете увидеть это с помощью командыPIDПроцесс 1 естьsystemdсистемный процесс.

systemdОбщие команды (это набор команд):

systemctl start nginx # 启动服务
systemctl stop nginx # 停止服务
systemctl restart nginx # 重启服务
systemctl status nginx # 查看服务状态
systemctl reload nginx # 重载配置文件(不停止服务的情况)
systemctl enable nginx # 开机自动启动服务
systemctl disable nginx # 开机不自动启动服务
systemctl is-enabled nginx # 查看服务是否开机自动启动
systemctl list-unit-files --type=service # 查看各个级别下服务的启动和禁用情况

Сжатие и распаковка файлов

  • Упаковка: это преобразование нескольких файлов в общий файл, его научное название - архив, архив.
  • Сжатие: это сжатие большого файла (обычно называемого архивом) в небольшой файл.


мы часто используемtarАрхивирование нескольких файлов в общий файл с именемarchive. затем используйтеgzip илиbzip2команда будетarchiveСжато в файлы меньшего размера.

未命名文件.png

tar

СоздаватьtarАрхив.

Основное использование

tar -cvf sort.tar sort/ # 将sort文件夹归档为sort.tar
tar -cvf archive.tar file1 file2 file3 # 将 file1 file2 file3 归档为archive.tar

Общие параметры

  • -cvf Выражатьcreate(создать)+verbose(подробно)+file(файл), который создает архив и отображает детали операции;
  • -tfОтображать содержимое архива, не распаковывая архив;
  • -rvfдобавить файлы в архив,tar -rvf archive.tar file.txt;
  • -xvfраспаковать архив,tar -xvf archive.tar.

gzip / gunzip

"сжать/распаковать" архивы, по умолчаниюgzipкоманда, суффикс сжатого файла.tar.gz.

gzip archive.tar # 压缩
gunzip archive.tar.gz # 解压

tar-архив + сжать

Можно использоватьtarКоманда выполняет операции архивирования и сжатия одновременно, что даетtarДобавьте в команду еще один опциональный параметр, чтобы после завершения операции архивирования она все равно вызываласьgzip илиbzip2команда для завершения операции сжатия.

tar -zcvf archive.tar.gz archive/ # 将archive文件夹归档并压缩
tar -zxvf archive.tar.gz # 将archive.tar.gz归档压缩文件解压

zcat, zless, zmore

использовался раньшеcat less moreВы можете просмотреть содержимое файла, но содержимое сжатого файла не может быть просмотрено с помощью этих команд, но с помощьюzcat、zless、zmoreсмотреть.

zcat archive.tar.gz

zip/unzip

"сжать/распаковать"zipдокумент(zipСжатые файлы обычно поступают изwindows Операционная система).

команда для установки

# Red Hat 一族中的安装方式
yum install zip 
yum install unzip 

Основное использование

unzip archive.zip # 解压 .zip 文件
unzip -l archive.zip # 不解开 .zip 文件,只看其中内容

zip -r sort.zip sort/ # 将sort文件夹压缩为 sort.zip,其中-r表示递归

Скомпилируйте и установите программное обеспечение

Прежде чем мы научились использоватьyumкоманду для установки программного обеспечения, если вы столкнулисьyumДля программного обеспечения, которого нет на складе, нам необходимо установить «компиляцию и установку исходного кода» для более продвинутого программного обеспечения.

Скомпилируйте и установите

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

Основные шаги заключаются в следующем:

  1. Скачать исходный код
  2. Разархивируйте сжатый пакет
  3. настроить
  4. компилировать
  5. Установить

фактический случай

1. Скачать

Скомпилируем и установимhtopПрограммное обеспечение, сначала загрузите исходный код с официального сайта:bintray.com/ и top/source…

Загруженный исходный код синхронизируется с сервером с помощью следующей команды на локальном компьютере:

scp 文件名 用户名@服务器ip:目标路径

scp ~/Desktop/htop-3.0.0.tar.gz root@121.42.11.34:.

также можно использоватьwegtСкачать:

wegt+下载地址

wegt https://bintray.com/htop/source/download_file?file_path=htop-3.0.0.tar.gz
2. Разархивируйте файл
tar -zxvf htop-3.0.0.tar.gz # 解压

cd htop-3.0.0 # 进入目录
3. Конфигурация

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

4. Скомпилируйте

воплощать в жизньmake Заказ

5. Установка

воплощать в жизньmake installкоманда, выполняемая после завершения установкиls /usr/local/bin/Проверьте, есть лиhtop Заказ. Если есть, то можно выполнитьhtopкоманда для просмотра системных процессов.

Интернет

ifconfig

ПроверятьipИнформация, связанная с сетью, если команда не существует, выполните командуyum install net-tools Установить.

[root@lion ~]# ifconfig

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.31.24.78  netmask 255.255.240.0  broadcast 172.31.31.255
        ether 00:16:3e:04:9c:cd  txqueuelen 1000  (Ethernet)
        RX packets 1592318  bytes 183722250 (175.2 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1539361  bytes 154044090 (146.9 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

Разбор параметров:

  • eth0В соответствии с проводным соединением (соответствующим вашей проводной сетевой карте), это использование сетевого кабеля для подключения к Интернету.eth ДаEthernetАббревиатура от «Ethernet». К некоторым компьютерам может быть подключено несколько сетевых кабелей одновременно, например к серверам, поэтому в дополнение кeht0, вы также увидитеeth1,eth2 Ждать.
  • loпредставляет локальную петлю (Local LoopbackАббревиатура , соответствующая виртуальной сетевой карте) можно увидеть ееip адрес127.0.0.1. Каждый компьютер должен иметь этот интерфейс, потому что он соответствует «связи с самим собой». Вот почему это называется «локальная петля». Все, что отправляется через этот интерфейс, возвращается на ваш собственный компьютер. Вроде не много, но иногда по какой-то причине нужно подключиться самим. Например, он используется для тестирования сетевой программы, но вы не хотите, чтобы ее видели пользователи в локальной сети или внешней сети, вы можете запустить и просмотреть все сетевые интерфейсы только на этом хосте. Например, когда мы запускаем front-end проект, вводим в браузере127.0.0.1:3000Запустите проект, чтобы увидеть свои собственныеwebвеб-сайт, и только вы можете его видеть.
  • wlan0Указывает на беспроводную локальную сеть (не показана в приведенном выше случае).

host

ipВзаимное преобразование адресов и имен хостов.

Установка программы

yum install bind-utils

Основное использование

[root@lion ~]# host github.com
baidu.com has address 13.229.188.59
 
[root@lion ~]# host 13.229.188.59
59.188.229.13.in-addr.arpa domain name pointer ec2-13-229-188-59.ap-southeast-1.compute.amazonaws.com.

ssh подключиться к удаленному серверу

Через асимметричное шифрование и симметричное шифрование (такое же, какHTTPSПринцип безопасного соединения аналогичен подключению к удаленному серверу.

ssh 用户@ip:port

1、ssh root@172.20.10.1:22 # 端口号可以省略不写,默认是22端口
2、输入连接密码后就可以操作远端服务器了

настроить ssh

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

Конфигурационные файлы делятся на следующие типы:

  • ГлобальныйsshКонфигурация сервера:/etc/ssh/sshd_config;
  • ГлобальныйsshКонфигурация клиента:/etc/ssh/ssh_config(редко модифицируется);
  • Текущий пользовательsshКонфигурация клиента:~/.ssh/config.


【СерверconfigОбщие параметры конфигурации файла]

Параметры конфигурации сервера эффект
Port номер порта службы sshd (по умолчанию 22)
PermitRootLogin Разрешить ли вход в качестве пользователя root (по умолчанию да)
PasswordAuthentication Разрешить ли вход с аутентификацией по паролю (по умолчанию да)
PubkeyAuthentication Разрешить ли вход с аутентификацией с открытым ключом (по умолчанию да)
PermitEmptyPasswords Разрешить ли вход с пустым паролем (небезопасно, не разрешено по умолчанию)

[Примечание] После изменения файла конфигурации сервера необходимо перезапустить службу.systemctl restart sshd 

【КлиентconfigОбщие параметры конфигурации файла]

Параметры конфигурации клиента эффект
Host псевдоним
HostName Имя удаленного хоста (или IP-адрес)
Port порт для подключения к удаленному хосту
User имя пользователя


Настройка текущего пользователяconfig:

# 创建config
vim ~/.ssh/config

# 填写一下内容
Host lion # 别名
	HostName 172.x.x.x # ip 地址
  Port 22 # 端口
  User root # 用户

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

[Примечание] Эта конфигурация находится не на сервере, а на вашей собственной машине, она просто устанавливает псевдоним.

Вход без пароля

sshСуществует два типа входа в систему, один основан на пароле (пароле учетной записи), а другой на основе ключа.

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

На основе принципа аутентификации ключа

Клиент создает пару ключей (открытый ключ и закрытый ключ), загружает открытый ключ на сервер и сравнивает его с открытым ключом сервера при каждом входе в систему. проверка ключа. "Войти".

Конкретные этапы реализации

1. Сгенерируйте пару ключей (открытый ключ и закрытый ключ) в клиентеssh-keygen(по умолчанию используется алгоритм асимметричного шифрования RSA)

закончитьсяssh-keygen Будет в~/.ssh/каталог, создайте два файла:

  • id_rsa.pub: открытый ключ
  • id_rsa: закрытый ключ


2. Передать публичный ключ клиента сервису

воплощать в жизньssh-copy-id root@172.x.x.x(ssh-copy-idОн добавит открытый ключ клиента к серверу~/.ssh/authorized_keysфайл).

После завершения выполнения запуститеssh root@172.x.x.xВы можете добиться беспарольного входа на сервер.

С псевдонимом, установленным выше, выполните напрямуюssh lionВы можете авторизоваться, это очень удобно.

wget

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

wget [参数][URL地址]

wget http://www.minjieren.com/wordpress-3.1-zh_CN.zip

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

Общие параметры

  • -cВозобновить прерванную загрузку.

резервный

scp

этоSecure CopyАббревиатура для безопасного копирования.scpЭто позволяет нам копировать файлы с одного компьютера на другой через сеть.

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

scp source_file destination_file # source_file 表示源文件,destination_file 表示目标文件

вsource_file иdestination_fileможно выразить как:user@ip:file_name,userимя для входа,ipэто доменное имя илиip адрес.file_nameэто путь к файлу.

scp file.txt root@192.168.1.5:/root # 表示把我的电脑中当前文件夹下的 file.txt 文件拷贝到远程电脑
scp root@192.168.1.5:/root/file.txt file.txt # 表示把远程电脑上的 file.txt 文件拷贝到本机

rsync

rsyncКоманда в основном используется для удаленной синхронизации файлов. Он может синхронизировать два каталога, независимо от того, находятся ли они на одном компьютере или нет. Это должна быть наиболее часто используемая команда для «инкрементных резервных копий». это умная версияscp Заказ.

Установка программы

yum install rsync

Основное использование

rsync -arv Images/ backups/ # 将Images 目录下的所有文件备份到 backups 目录下
rsync -arv Images/ root@192.x.x.x:backups/ # 同步到服务器的backups目录下

Общие параметры

  • -aСохраняйте всю информацию о файле, включая разрешения, дату изменения и т. д.;
  • -rРекурсивный вызов, указывающий, что все файлы в подкаталогах также включены;
  • -vРезервный режим, вывод подробной информации о работе.


дефолт,rsyncФайлы в целевом каталоге не удаляются во время синхронизации.Например, если вы удаляете файл в исходном каталоге, но используетеrsyncПри синхронизации не удаляются одни и те же файлы в каталоге синхронизации. Вы также можете сделать то же самое, если хотите удалить:rsync -arv --delete Images/ backups/.

система

halt

Выключите систему, нужноrootличность.

halt

reboot

Перезагрузите систему, нужноrootличность.

reboot

poweroff

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

Vim-редактор

Что такое Вим?

Vim ОтviРазработал текстовый редактор. Его автозавершение кода, компиляция и обход ошибок, а также другие удобные функции программирования особенно богаты и широко используются программистами. иEmacsпротивопоставляется как классUnixЛюбимый редактор системных пользователей.

Общий режим Vim

  • интерактивный режим
  • режим вставки
  • командный режим
  • Визуальный режим

интерактивный режим

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

например, выполнитьvim name.txtвойдет в интерактивный режим.

Особенности интерактивного режима:

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

режим вставки

Этот режим является режимом знакомого нам текстового редактора, то есть вы можете вводить все, что хотите. Есть несколько способов войти в этот режим, самый распространенный способ — нажать буквенную клавишу.i(i、I、a、A、o、Oможно войти в режим вставки, только в разных позициях), чтобы выйти из этого режима, просто нажмитеEsc ключ.

  • i, Iвойти в режим вводаInsert mode:iэто "ввод из текущей позиции курсора",I"начать ввод с первого не пробельного символа текущей строки";
  • a, Aвойти в режим вводаInsert mode:aэто "начать ввод со следующего символа, где в данный момент находится курсор",Ais "начать ввод с последнего символа строки, в которой находится курсор";
  • o, Oвойти в режим вводаInsert mode:oДля "введите новую строку на следующей строке, где в данный момент находится курсор";OВведите новую строку для строки над текущей позицией курсора.

командный режим

Командный режим также известен как командный режим нижней строки, в этом режиме вы можете запускать некоторые команды, такие как «выход», «сохранить» и т. д.

Вы также можете использовать этот режим для активации некоторыхVimКонфигурация, такая как подсветка синтаксиса, отображение номеров строк и т. д. Вы даже можете отправить некоторые команды в командную строку терминала, напримерls、cp.

Чтобы войти в командный режим, сначала войдите в интерактивный режим, затем нажмите клавишу с двоеточием.

Используйте рисунок, чтобы показать, как переключаются три режима:
image.png

Основная операция

Открыть Vim

Введите в командной строке терминалаvimПосле возврата кареткиVimбудет запущен, и вы также можете использоватьVimчтобы открыть файл, простоvimза которым следует имя файла. какvim file.name, если файл не существует, он будет создан.

вставлять

После входа в файл вы находитесь в интерактивном режиме в это время, и вы можете войти вiВойдите в режим вставки.

переехать

существуетVimВ интерактивном режиме мы можем перемещать курсор по тексту.

  • hсдвинуться на один символ влево
  • jспуститься на один символ вниз
  • kподняться на один символ вверх
  • iсдвинуться на один символ вправо


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

Перейти к началу и концу строки

  • Начало строки: в интерактивном режиме для установки курсора в начало строки достаточно нажать цифровую клавишу.0Вот так, на клавиатуреHomeключи имеют тот же эффект.
  • Конец строки: в интерактивном режиме, чтобы поместить курсор в конец строки, просто нажмите клавишу со знаком доллара.$Вот так, на клавиатуреEndключи имеют тот же эффект.

двигаться по слову

В интерактивном режиме нажмите буквенную клавишуwМожет двигать слово за словом.

выходной файл

В интерактивном режиме нажмите клавишу с двоеточием:Чтобы войти в командный режим, нажмитеqключ для выхода.

Если вы измените файл перед выходом, вы хотите использовать его напрямую:q покидатьVim ,ТакVimСообщение об ошибке будет отображаться красным цветом. На данный момент у нас есть два варианта:

  1. Сохранить и выйти:wq или:x;
  2. Выход без сохранения:q!.

стандартная операция

удалить символ

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

Вы также можете удалить сразу несколько символов, просто нажмитеxВведите число перед ключом.

удалять (вырезать) слова, строки

  • Удаление строки: двойной щелчокdчтобы удалить строку, в которой находится курсор.
  • Удалить несколько строк: например, сначала введите цифры2, затем нажмитеdd, удаляются две строки, начинающиеся со строки, в которой находится курсор.
  • Удалить слово: поместите курсор на первую букву слова, затем нажмитеdw.
  • Удаление нескольких слов: например, сначала нажмите цифровую клавишу2нажмите еще разdwВы можете удалить два слова.
  • Удалить от позиции курсора до начала строки:d0.
  • Удалить от позиции курсора до конца строки:d$.

скопировать слово, строку

  • Копировать строку: нажмите дваждыyскопирует строку под курсором в память иddпохожий,ddИспользуется для «вырезания» строки, в которой находится курсор.
  • Скопируйте слова:ywскопирует слово.
  • Копировать в конец строки:y$заключается в копировании всех символов от курсора до конца строки.
  • Скопируйте в начало строки:y0заключается в копировании всех символов из позиции курсора в начало строки.

вставить

Если ранее использовалосьdd илиyyВырезать и скопировать, вы можете использоватьpвставить. Вы также можете использовать数字+pдля представления нескольких копий.

заменить символ

В интерактивном режиме поместите курсор на символ, который хотите заменить. Нажмитеr, а затем введите символ, который вы хотите заменить.

отменить операцию

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

переделывать

Отменить отмену, то есть повторить предыдущую модификацию с помощьюctrl + r.

Перейти к указанной строке

VimВ редактируемом файле каждая строка имеет номер строки, который начинается с 1 и увеличивается один за другим.

Номер строки по умолчанию не отображается, если вам нужно, чтобы он отображался, вы можете войти в командный режим и ввестиset nu, если вы хотите скрыть номера строк, используйтеset nonu.

  • Перейти к указанной строке:数字+gg ,Например7gg, что означает переход к строке 7.
  • Чтобы перейти к последней строке, нажмитеG.
  • Чтобы перейти к первой строке, нажмитеgg.

Расширенные операции

найти

В интерактивном режиме нажмите/, затем войдите в режим поиска, введите строку, которую нужно найти, и нажмите клавишу ВВОД. Курсор переходит к следующему найденному совпадению в файле. Если строка не существует, она будет отображаться"pattern not found".

  • nперейти к следующему матчу;
  • NПерейти к предыдущему матчу.


[Примечание] Поиск с косой чертой — это поиск от текущего курсора до конца файла.Если вы хотите начать с текущего курсора и искать до начала файла, используйте?, конечно, вы также можете нажатьggПерейти к первой строке для выполнения полнотекстового поиска.

найти и заменить

 
Замените первую совпадающую строку в строке, где находится курсор:

# 语法
:s/旧字符串/新字符串

# 实例
:s/one/two

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

# 语法
:s/旧字符串/新字符串/g

Заменить все строки от строки к строке:

# 语法
:n,m s/旧字符串/新字符串/g

# 实例
:2,4 s/one/two/g

Наиболее часто используется полная замена текста:

# 语法
:%s/旧字符串/新字符串/g

Объединить файлы

можно использовать двоеточие+r  ( :r), чтобы вставить содержимое файла в место курсора.

:r filename # 可以用Tab键来自动补全另外一个文件的路径

Разделенный экран

VimОсобенно удобной функцией является разделенный экран, который может одновременно открывать несколько файлов.После разделения экрана каждый экран называетсяviewport, что означает «окно просмотра».

  • Горизонтальный разделенный экран:sp 文件名
  • вертикальный разделенный экран:vsp 文件名

Ярлыки в режиме разделенного экрана

  • Ctrl + wплюсCtrl + w, указывая на то, что изviewportПереместите курсор на другойviewport;
  • Ctrl + wДобавьте «клавишу направления», чтобы перейти к следующему экрану просмотра в этом направлении;
  • Ctrl + wплюс+, что означает расширение текущего окна просмотра;
  • Ctrl + wплюс-, что означает уменьшение текущего окна просмотра;
  • Ctrl + wплюс=, указывающий среднее текущее окно просмотра;
  • Ctrl + wплюсrключ, он изменит положение окна просмотра;
  • Ctrl + wплюсqклавиша для закрытия текущего окна просмотра;
  • Ctrl + wплюсoклавиша закроет все окна просмотра, кроме текущего окна просмотра;

запускать внешние команды:!

существуетVimВы можете запустить некоторые команды терминала в:!, за которым следует имя команды.

Например:

:!ls # 在Vim中打开的文件所在的目录运行ls命令

Визуальный режим

только что сказал раньшеVimТри режима, на самом деле, есть еще один режим, называемый визуальным режимом.

В него можно войти тремя способами (все стартуют в интерактивном режиме):

  • vВизуальный режим персонажа, после входа выберите символ клавишами со стрелками, а затем нажмитеdклавишу для удаления выделения.
  • VЛинейный визуальный режим, строка, на которой находится курсор, выбирается по умолчанию после ввода, а затем нажмитеdклавишу для удаления текущей строки.
  • Ctrl + vБлокировать визуальный режим, это самая полезная функция визуального режима, сd иIКлюч может удалить выбранный контент и вставить контент.


Выберите несколько строк одновременно и вставьте содержимое в начало выбранной строки. Конкретные шаги:

1. ctrl + v 进入块可视模式
2. 使用方向键进行选中(上下左右)假设选中5行
3. 输入 I 键进行多行同时插入操作
4. 插入完成后连续按两下 esc 键,实现多行同时插入相同字符

Клавиши управления после входа в визуальный режим:

  • dклавиша означает удаление выделения;
  • Iключ, что означает вставить перед выбором;
  • uклавиша, указывающая, что выделение становится строчным;
  • Uклавиша, указывающая, что выделение становится заглавным;

Конфигурация Vim

параметр опции

существуетVimПосле запуска вы можете запустить некоторые команды для активации некоторых параметров параметров, но конфигурация этих параметров параметров будет закрыта.Vimбудут забыты, например, номер строки активации, описанный ранее. Если вы хотите, чтобы конфигурация, в которой вы находитесь, была постоянной, вам нужен домашний каталог (cd ~ )СоздаватьVimфайл конфигурации.vimrc.

.vimrc

set number " 显示行号
syntax on " 激活语法高亮
set showcmd " 实时看到输入的命令
set ignorecase " 搜索时不区分大小写
set mouse=a " 激活鼠标,用鼠标选中时相当于进入可视模式

VimКонфигурация очень богатая, можем настроитьVimсделай это самIDE и Т. Д. существуетgithubВы также можете найти некоторые мощныеVimконфигурационный файл.

Суммировать

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

Чтобы увидеть все это здесь, просто нажмите 👍👍👍.