Соответствующий курс https://www.bilibili.com/video/BV18p4y167Md
Заочный курс «Операционная система» Практические лекции «Операционная система» 45
Оглавление CSAPP Углубленное понимание компьютерных систем происходит на открытом занятии руководителя Microsoft
yangminz
https://www.bilibili.com/video/BV17K4y1N7Q2 (в стадии обновления)
Оглавление Серия «Объектно-ориентированное программирование на C++» из серии «Объектно-ориентированное программирование CPP» мастера Хоу Цзе (завершено)
Введение в базовое использование и параметры команд.
Человек — это аббревиатура руководства, которое отображает конкретную информацию инструкции.
При выполнении man date появляется DATE(1). Число в нем представляет тип инструкции. Обычно используемые числа и их типы следующие:
кодовое имя | тип |
---|---|
1 | Инструкции или исполняемые файлы, с которыми пользователи могут работать в среде оболочки. |
5 | Конфигурационный файл |
8 | Административные команды, доступные системным администраторам |
info похож на man, но информация делит документ на страницы, и каждую страницу можно переходить.
В /usr/share/doc хранится полный набор документации по программному обеспечению.
Перед выключением вам необходимо использовать команду who, чтобы проверить, есть ли в сети другие пользователи.
Чтобы ускорить чтение и запись файлов на диске, данные файла, расположенные в памяти, не будут синхронизированы с диском немедленно, поэтому перед выключением требуется операция синхронизации.
# # shutdown [-krhc] 时间 [信息] |
-k : 不会关机,只是发送警告信息,通知所有在线的用户
-r : 将系统的服务停掉后就重新启动
-h : 将系统的服务停掉后就立即关机
-c : 取消已经在进行的 shutdown 指令内容
Путь к исполняемому файлу указывается в переменной PATH, разделенной знаком :.
/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/dmtsai/.local/bin:/home/dmtsai/bin
sudo позволяет обычным пользователям использовать исполняемые команды root, но эту команду могут использовать только пользователи, добавленные в файл конфигурации /etc/sudoers.
RPM и DPKG — два наиболее распространенных типа инструментов управления программными пакетами:
Дистрибутив Linux представляет собой интегрированную версию ядра Linux и различного прикладного программного обеспечения. Инструменты управления пакетами на основе коммерческих дистрибутивов. Дистрибутивы сообщества RPM Red Hat Fedora/CentOS DPKG Ubuntu Debian.
Заказ | эффект |
---|---|
:ш | записать на диск |
:о! | Принудительно записывает на диск, когда файл доступен только для чтения. Можно ли его записать, зависит от прав пользователя на файл. |
:q | оставлять |
:к! | Вынужден уйти без сохранения |
:wq | Записать на диск и оставить |
:кх! | Принудительно записать на диск, а затем выйти |
Проект GNU, что переводится как «Подлинный проект», направлен на создание полностью свободной операционной системы под названием GNU, а ее программное обеспечение полностью распространяется под лицензией GPL. Полное название GPL — GNU General Public License, которое включает в себя следующее содержание: свобода запуска этой программы для любых целей; свобода воспроизведения этой программы и свобода публичного выпуска улучшений. ¶Выберите лицензию с открытым исходным кодом (откроется в новом окне) Как выбрать лицензию с открытым исходным кодом (откроется в новом окне)?
IDE (ATA) означает «Advanced Technology Attachment». Максимальная скорость интерфейса составляет 133 МБ/с. Поскольку кабель параллельного порта имеет низкую помехозащищенность и занимает много места, что не способствует внутреннему рассеиванию тепла. компьютере, он постепенно был заменен SATA.
Полное название SATA — Serial ATA, который представляет собой интерфейс ATA, использующий последовательный порт. Он имеет надежную защиту от помех, имеет гораздо меньшие требования к длине кабеля передачи данных, чем ATA, и поддерживает горячую замену и другие функции. Скорость интерфейса SATA-II составляет 300 МБ/с, а новый стандарт SATA-III может достигать скорости передачи 600 МБ/с. Кабели передачи данных SATA также намного тоньше, чем ATA, что улучшает циркуляцию воздуха в корпусе и упрощает организацию кабелей.
Полное название SCSI — «Интерфейс малой компьютерной системы». Он развивался на протяжении многих поколений, от раннего SCSI-II до нынешнего Ultra320 SCSI и Fibre-Channel, с различными типами интерфейсов. Жесткие диски SCSI широко используются в персональных компьютерах и серверах уровня рабочих станций. Поэтому они используют более продвинутые технологии, такие как высокая скорость диска 15 000 об / мин, и имеют меньшую нагрузку на процессор во время передачи. Однако цена за единицу также выше, чем у жестких дисков SCSI. Жесткие диски ATA и SATA одинаковой емкости. Дороже.
Каждое оборудование в Linux рассматривается как файл, включая диски. Диски именуются в соответствии с типом интерфейса диска. Общие имена файлов на диске следующие:
Определение серийного номера после имени файла связано с порядком, в котором система обнаруживает диски, и не имеет ничего общего с положением слота, в который вставлены диски.
Существует два основных формата таблиц разделов диска: один — более строгая таблица разделов MBR, а другой — более новая и менее ограничительная таблица разделов GPT.
В MBR первый сектор является самым важным. Он содержит главную загрузочную запись (MBR) и таблицу разделов. Основная загрузочная запись занимает 446 байт, а таблица разделов — 64 байта.
Таблица разделов имеет размер всего 64 байта и может хранить только до 4 разделов: основной раздел (Primary) и расширенный раздел (Extended). Существует только один расширенный раздел, который использует другие сектора для записи дополнительных таблиц разделов. Таким образом, дополнительные разделы можно разделить с помощью расширенных разделов. Эти разделы называются логическими разделами.
Linux также рассматривает разделы как файлы. Метод именования файлов разделов: имя файла на диске + номер, например /dev/sda1. Обратите внимание, что нумерация логических разделов начинается с 5.
Разные диски имеют разные размеры секторов, например 512 байт и 4 КБ для последних дисков. Чтобы быть совместимым со всеми дисками, GPT использует адреса логических блоков (адрес логического блока, LBA) в определенных секторах. Размер LBA по умолчанию составляет 512 байт.
Первый блок GPT записывает основную загрузочную запись (MBR), за ним следуют 33 блока для записи информации о разделах, а последние 33 блока используются для резервного копирования информации о разделах. Первый из этих 33 блоков — это запись заголовка GPT. Эта часть записывает расположение и размер самой таблицы разделов, а также расположение резервного раздела. Она также содержит код проверки (CRC32) таблицы разделов. используйте этот контрольный код, чтобы определить, правильный ли GPT. Если возникла ошибка, вы можете использовать резервный раздел для ее восстановления.
В GPT нет концепции расширенных разделов. Все они являются основными разделами. Каждый LAB можно разделить на 4 раздела, поэтому всего можно разделить 4 * 32 = 128 разделов.
MBR не поддерживает жесткие диски емкостью более 2,2 ТБ, а GPT поддерживает до 233 ТБ = 8 ЗБ.
BIOS (базовая система ввода-вывода) — это встроенное ПО (программное обеспечение, встроенное в аппаратное обеспечение). Программа BIOS хранится в постоянной памяти, содержимое которой не будет потеряно после отключения питания.
BIOS — это первая программа, выполняемая компьютером при его включении. Эта программа определяет диск, который может быть загружен, и считывает основную загрузочную запись (MBR) первого сектора диска. Основная загрузочная запись (MBR) выполняет операцию. программа управления загрузкой, эта программа управления загрузкой загрузит основные файлы операционной системы.
Менеджер загрузки в основной загрузочной записи (MBR) выполняет следующие функции:
меню, загрузите файлы ядра и перенесите их в другие программы управления загрузкой. Функцию переноса можно использовать для реализации мультизагрузки. Вам нужно только установить программу управления загрузкой другой операционной системы в загрузочный сектор другого раздела. При запуске программы управления загрузкой вы можете выбрать запуск текущей операционной системы или. запустить текущую операционную систему через меню. Перенесите ее в другие программы управления загрузкой, чтобы запустить другую операционную систему.
На рисунке ниже программа управления загрузкой в основной загрузочной записи (MBR) первого сектора предоставляет два меню: М1, М2 указывает на операционную систему Windows, а М2 указывает на загрузочные сектора других разделов, которые содержат. Другая программа управления загрузкой предоставляет меню, указывающее на Linux.
Для установки мультизагрузки лучше всего сначала установить Windows, а затем Linux. Поскольку основная загрузочная запись (MBR) будет перезаписана при установке Windows, Linux может выбрать установку программы управления загрузкой в основную загрузочную запись (MBR) или загрузочный сектор других разделов, а также может настроить меню программы управления загрузкой. .
BIOS не может прочитать таблицу разделов GPT, а UEFI — может.
Форматирование раздела заключается в создании файловой системы на разделе. Обычно раздел можно отформатировать только с использованием одной файловой системы, но такие технологии, как дисковые массивы, позволяют форматировать раздел с использованием нескольких файловых систем.
Наиболее важными компонентами являются следующие:
Кроме того, он также включает в себя:
Это означает, что блок, в котором находится содержимое файла, слишком разбросан.
В файловой системе Ext2 поддерживаются размеры блоков: 1 КБ, 2 КБ и 4 КБ. Различные размеры ограничивают максимальный размер отдельного файла и файловой системы.
размер | 1 КБ | 2 КБ | 4 КБ |
---|---|---|---|
самый большой отдельный файл | 16 Гб | 256 ГБ | 2 ТБ |
Максимальная файловая система: 2 ТБ, 8 ТБ, 16 ТБ. Один блок может использоваться только одним файлом, а неиспользуемая часть теряется. Поэтому, если вам нужно хранить большое количество мелких файлов, лучше всего выбрать блок меньшего размера.
В частности, индексный дескриптор содержит следующую информацию:
inode имеет следующие характеристики:
Индексный дескриптор записывает номер блока, в котором находится содержимое файла, но каждый блок очень мал. Для большого файла требуются сотни тысяч блоков. Индексный дескриптор имеет ограниченный размер и не может напрямую ссылаться на такое количество номеров блоков. Поэтому были введены косвенные, двойные и тройные косвенные ссылки. Косвенная ссылка означает, что ссылочный блок, записанный индексным дескриптором, записывает справочную информацию.
При создании каталога выделяется индексный дескриптор и хотя бы один блок. Содержимое, записываемое блоком, представляет собой номер индексного дескриптора и имя файла всех файлов в каталоге. Видно, что индекс самого файла не записывает имя файла, но имя файла записывается в каталог. Таким образом, такие операции, как добавление файлов, удаление файлов и изменение имен файлов, связаны с разрешением w. каталог.
Если произойдет внезапное отключение питания, в файловой системе произойдет ошибка. Например, битовая карта блока была изменена только до отключения питания, но данные фактически не были записаны в блок. Файловая система ext3/ext4 имеет функцию журнала, которую можно использовать для восстановления файловой системы.
При монтировании используется каталог как точка входа в файловую систему, то есть после входа в каталог данные файловой системы можно прочитать.
Чтобы обеспечить согласованность структуры каталогов различных дистрибутивов Linux, стандарт иерархии файловой системы (FHS) определяет структуру каталогов Linux.
Три самых основных каталога следующие:
Существует три типа пользователей: владельцы файлов, группы и другие. Разные пользователи имеют разные права доступа к файлам.
При использовании ls для просмотра файла будет отображаться информация о файле, например drwxr-xr-x. 3 root root 17 May 6 00:14 .config
. Объяснение этой информации следующее:
Распространенные типы файлов и их значения:
В 9-значном поле прав доступа к файлу каждые 3 цифры относятся к группе, всего существует 3 группы. Каждая группа представляет права доступа к файлу для владельца файла, группы, к которой он принадлежит, и других людей. Три цифры в наборе разрешений — это разрешения r, w и x, обозначающие доступность для чтения, записи и выполнения.
Существует три типа времени файла:
Перечислите информацию о файле или каталоге. Информация о каталоге — это файлы, содержащиеся в нем.
# # ls [-aAdfFhilnrRSt] file|dir
-a : 列出全部的文件
-d : 仅列出目录本身
-l : 以长数据串行列出,包含文件的属性与权限等等数据
cd [相对路径或绝对路径]
# # mkdir [-mp] 目录名称
-m : 配置目录权限
-p : 递归创建目录
rmdir [-p] 目录名称
-p : 递归删除目录
# # touch [-acdmt] filename
-a : 更新 atime
-c : 更新 ctime,若该文件不存在则不建立新文件
-m : 更新 mtime
-d : 后面可以接更新日期而不使用当前日期,也可以使用 --date= "日期或时间"
-t : 后面可以接更新时间而不使用当前时间,格式为[YYYYMMDDhhmm]
Скопируйте файл. Если исходных файлов более двух, конечным файлом должен быть каталог.
cp [-adfilprsu] source destination
-a : 相当于 -dr --preserve=all 的意思,至于 dr 请参考下列说明
-d : 若来源文件为链接文件,则复制链接文件属性而非文件本身
-i : 若目标文件已经存在时,在覆盖前会先询问
-p : 连同文件的属性一起复制过去
-r : 递归持续复制
-u : destination 比 source 旧才更新 destination,或 destination 不存在的情况下才复制
--preserve=all : 除了 -p 的权限相关参数外,还加入 SELinux 的属性, links, xattr 等也复制了
# # rm [-fir] 文件或目录
-r : 递归删除
Переместить файлы.
# # mv [-fiu] source destination
# # mv [options] source1 source2 source3 .... directory
-f : force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖
Набор разрешений может быть представлен числами. В настоящее время три бита набора разрешений рассматриваются как биты двоичного числа. Вес каждого бита слева направо равен 4, 2 и 1. то есть цифровой вес, соответствующий каждому разрешению. Значения: r: 4, w: 2, x: 1.
# # chmod [-R] xyz dirname/filename
Пример: измените разрешения файла .bashrc на -rwxr-xr--.
# # chmod 754 .bashrc
Вы также можете использовать символы для установки разрешений.
# # chmod [ugoa] [+-=] [rwx] dirname/filename
- u: 拥有者
- g: 所属群组
- o: 其他人
- a: 所有人
- +: 添加权限
- -: 移除权限
- =: 设定权限
Пример: добавьте разрешения на запись в файл .bashrc для всех пользователей.
# # chmod a+w .bashrc
**Имена файлов сохраняются не в содержимом файла, а в каталоге, в котором находится файл. **Поэтому обладатель разрешения w на файл не может изменить имя файла. В каталогах хранятся списки файлов, а разрешения каталога — это разрешения на его список файлов.
** Таким образом, разрешение r для каталога означает, что список файлов может быть прочитан; разрешение w означает, что список файлов можно изменять, в частности, добавлять, удалять файлы и изменять имя файла; разрешение x может делать; каталог является рабочим каталогом, а разрешение x может сделать каталог рабочим каталогом. Это основа разрешений r и w. Если каталог невозможно сделать рабочим каталогом, не будет возможности прочитать список файлов или изменить его. список файлов. **
# # ln [-sf] source_filename dist_filename
-s : 默认是 hard link,加 -s 为 symbolic link
-f : 如果目标文件存在时,先删除目标文件
Создайте запись в каталоге для записи имени файла и номера индексного дескриптора. Этот индексный дескриптор является индексным дескриптором исходного файла. Удалите любую запись, и файл все равно будет существовать, пока количество ссылок не равно нулю. Он имеет следующие ограничения: он не может охватывать файловые системы и не может связывать каталоги.
# # ln /etc/crontab .
# # ll -i /etc/crontab crontab
34474855 -rw-r--r--. 2 root root 451 Jun 10 2014 crontab
34474855 -rw-r--r--. 2 root root 451 Jun 10 2014 /etc/crontab
Файл символической ссылки сохраняет абсолютный путь к исходному файлу и при чтении будет располагаться в исходном файле. Его можно понимать как ярлык для Windows. Когда исходный файл удален, связанный файл невозможно открыть. Ссылки могут быть сделаны на каталоги.
# # ll -i /etc/crontab /root/crontab2
34474855 -rw-r--r--. 2 root root 451 Jun 10 2014 /etc/crontab
53745909 lrwxrwxrwx. 1 root root 12 Jun 23 22:31 /root/crontab2 - > /etc/crontab
# # cat [-AbEnTv] filename
-n : 打印出行号,连同空白行也会有行号,-b 不会
# # head [-n number] filename
-n : 后面接数字,代表显示几行的意思
Поиск команд.
# # which [-a] command
-a : 将所有指令列出,而不是只列第一个
Поиск файлов. Это быстрее, потому что ищет только в нескольких определенных каталогах. ## где [-bmsu] имя каталога/имя файла
Поиск файлов. Вы можете искать, используя ключевые слова или регулярные выражения. для поиска используется база данных /var/lib/mlocate/. Она хранится в памяти и обновляется один раз в день, поэтому вы не можете использоватьlocate для поиска вновь созданных файлов. Вы можете использовать updateb для немедленного обновления базы данных.
# # locate [-ir] keyword
-r: 正则表达式
Поиск файлов. Вы можете выполнить поиск, используя свойства и разрешения файла.
# # find [basedir] [option]
example: find . -name " shadow* "
(1) Опции, связанные со временем
-mtime n : 列出在 n 天前的那一天修改过内容的文件
-mtime +n : 列出在 n 天之前 (不含 n 天本身) 修改过内容的文件
-mtime -n : 列出在 n 天之内 (含 n 天本身) 修改过内容的文件
-newer file : 列出比 file 更新的文件
(2) Параметры, связанные с владельцами файлов и группами.
-uid n
-gid n
-user name
-group name
-nouser : 搜索拥有者不存在 /etc/passwd 的文件
-nogroup: 搜索所属群组不存在于 /etc/group 的文件
(3) Параметры, связанные с разрешениями и именами файлов.
-name filename
-size [+-]SIZE: 搜寻比 SIZE 还要大 (+) 或小 (-) 的文件。这个 SIZE 的规格有: c: 代表 byte,k: 代表 1024bytes。所以,要找比 50KB 还要大的文件,就是 -size +50k
-type TYPE
-perm mode : 搜索权限等于 mode 的文件
-perm -mode : 搜索权限包含 mode 的文件
-perm /mode : 搜索权限包含任一 mode 的文件
В Linux существует множество имен сжатых файлов, наиболее распространенными являются следующие:
расширение | Компрессор |
---|---|
*.Z | компресс |
*.zip | молния |
*.gz | gzip |
*.bz2 | bzip2 |
*.xz | хз |
*.tar | Данные, упакованные программой tar, не сжимаются. |
*.tar.gz | Файлы, упакованные программой tar и сжатые gzip. |
*.tar.bz2 | Файлы, упакованные программой tar и сжатые bzip2. |
*.tar.xz | Файлы, упакованные программой tar и сжатые xz. |
gzip — наиболее широко используемая команда сжатия в Linux, которая может распаковывать файлы, сжатые методами сжатия, zip и gzip.
После сжатия gzip исходный файл больше не существует. Доступно 9 различных уровней сжатия. Вы можете использовать zcat, zmore и zless для чтения содержимого сжатых файлов.
$ gzip [-cdtv#] filename
-c : 将压缩的数据输出到屏幕上
-d : 解压缩
-t : 检验压缩文件是否出错
-v : 显示压缩比等信息
-# # : ## 为数字的意思,代表压缩等级,数字越大压缩比越高,默认为 6
Обеспечивает более высокую степень сжатия, чем gzip. Команды просмотра: bzcat, bzmore, bzless, bzgrep.
$ bzip2 [-cdkzv#] filename
-k : 保留源文件
Обеспечивает лучшую степень сжатия, чем bzip2. Видно, что степень сжатия gzip, bzip2 и xz постоянно оптимизируется. Однако следует отметить, что чем выше степень сжатия, тем дольше будет время сжатия.
Команды просмотра: xzcat, xzmore, xzless, xzgrep.
$ xz [-dtlkc#] filename
Команда сжатия может сжать только один файл, а пакет может упаковать несколько файлов в один большой файл. Tar можно использовать не только для упаковки, но вы также можете использовать gip, bzip2 и xz для сжатия упакованных файлов.
$ tar [-z | -j | -J] [cv] [-f 新建的 tar 文件] filename... ==打包压缩
$ tar [-z | -j | -J] [tv] [-f 已有的 tar 文件] ==查看
$ tar [-z | -j | -J] [xv] [-f 已有的 tar 文件] [-C 目录] ==解压缩
-z : 使用 zip;
-j : 使用 bzip2;
-J : 使用 xz;
-c : 新建打包文件;
-t : 查看打包文件里面有哪些文件;
-x : 解打包或解压缩的功能;
-v : 在压缩/解压缩的过程中,显示正在处理的文件名;
-f : filename: 要处理的文件;
-C 目录 : 在特定目录解压缩。
Использование | Заказ |
---|---|
Упаковать и сжать | tar -jcv -f имя_файла.tar.bz2 Имя файла или каталога, который необходимо сжать. |
Проверять | tar -jtv -f имя_файла.tar.bz2 |
Разархивировать | tar -jxv -f имя_файла.tar.bz2 -C Каталог для распаковки |
Вы можете запросить ядро для предоставления услуг через Shell, а Bash — это один из типов Shell.
История команд: запись использованных команд. Завершение команд и файлов: Горячая клавиша: вкладка. Псевдоним именования: например, lm — это псевдоним сценариев оболочки ls -al. Подстановочный знак: например, ls -l /usr/bin/X* перечисляет /usr/. bin Все файлы ниже, начинающиеся с X
$
перед переменной или использовать форму ${}
;$ x=abc
$ echo $x
$ echo ${x}
Если в содержимом переменной есть пробелы, необходимо использовать двойные или одинарные кавычки.
x="lang is $LANG"
, тогда значение x is lang будет zh_TW.UTF-8;x='lang is $LANG'
, тогда значение x is lang равно $LANG
. 指令
или $(指令)
чтобы присвоить переменным результаты выполнения инструкций. Например, version=$(uname -r), значение версии — 4.15.0-22-generic. Вы можете использовать команду экспорта для преобразования пользовательских переменных в переменные среды. Переменные среды можно использовать в подпрограммах. Так называемые подпрограммы представляют собой подпрограммы Bash, созданные текущим Bash. Переменные Bash можно объявлять как массивы и целые числа. Обратите внимание, что числовые типы не имеют чисел с плавающей запятой. Если не объявлено, по умолчанию используется строковый тип. Переменные объявляются с помощью команды объявления: $ declare [-aixr] variable
-a : 定义为数组类型
-i : 定义为整数类型
-x : 定义为环境变量
-r : 定义为 readonly 类型
Используйте [ ] для индексации массива:
$ array[1]=a
$ array[2]=b
$ echo ${array[1]}
$PATH
и выполните ее.Перенаправление означает использование файлов вместо стандартного ввода, стандартного вывода и стандартного вывода ошибок.
1 | код | оператор |
---|---|---|
Стандартный ввод (stdin) | 0 | < или << |
Стандартный вывод (stdout) | 1 | > или >> |
Стандартный вывод ошибок (stderr) | 2 | 2> или 2>> |
Среди них одна стрелка указывает на перенаправление с перезаписью, а две стрелки указывают на перенаправление с добавлением.
Ненужный стандартный вывод и стандартный вывод ошибок можно перенаправить в /dev/null, что эквивалентно выбрасыванию их в корзину. Если вам нужно одновременно перенаправить стандартный вывод и стандартный вывод ошибок в файл, вам необходимо преобразовать один вывод в другой. Например, 2>&1 означает преобразование стандартного вывода ошибок в стандартный вывод.
$ find /home -name .bashrc > list 2>&1
$ nohup latte-dock --replace > /dev/null 2>&1 & # 没有任何输出的后台任务
Конвейерная обработка заключается в использовании стандартного вывода одной команды в качестве стандартного ввода другой команды. Конвейерную обработку можно использовать, когда данные необходимо обработать в несколько этапов, прежде чем мы сможем получить то, что хотим.
Используйте | между командами, чтобы разделить отдельные команды конвейера.
$ ls -al /etc | less
Cut разбивает данные и извлекает нужную часть. Процесс сегментации происходит построчно.
$ cut
-d : 分隔符
-f : 经过 -d 分隔后,使用 -f n 取出第 n 个区间
-c : 以字符为单位取出区间
$ last
root pts/1 192.168.201.101 Sat Feb 7 12:35 still logged in
root pts/1 192.168.201.101 Fri Feb 6 12:13 - 18:46 (06:33)
root pts/1 192.168.201.254 Thu Feb 5 22:37 - 23:53 (01:16)
$ last | cut -d ' ' -f 1
$ export
declare -x HISTCONTROL= " ignoredups "
declare -x HISTSIZE= " 1000 "
declare -x HOME= " /home/dmtsai "
declare -x HOSTNAME= " study.centos.vbird "
.....(其他省略).....
$ export | cut -c 12-
используется для сортировки.
$ sort [-fbMnrtuk] [file or stdin]
-f : 忽略大小写
-b : 忽略最前面的空格
-M : 以月份的名字来排序,例如 JAN,DEC
-n : 使用数字
-r : 反向排序
-u : 相当于 unique,重复的内容只出现一次
-t : 分隔符,默认为 tab
-k : 指定排序的区间
$ cat /etc/passwd | sort -t ' : ' -k 3
root:x:0:0:root:/root:/bin/bash
dmtsai:x:1000:1000:dmtsai:/home/dmtsai:/bin/bash
alex:x:1001:1002::/home/alex:/bin/bash
arod:x:1002:1003::/home/arod:/bin/bash
Вы можете взять только один дубликат данных.
$ uniq [-ic]
-i : 忽略大小写
-c : 进行计数
$ last | cut -d ' ' -f 1 | sort | uniq -c
1
6 (unknown
47 dmtsai
4 reboot
7 root
1 wtmp
Перенаправление вывода перенаправит содержимое вывода в файл, и tee может не только выполнить эту функцию, но и сохранить вывод на экране. То есть с помощью команды tee выходные данные отправляются как в файл, так и на экран.
$ tee [-a] file
Используется для удаления символов в строке или замены символов.
$ tr [-ds] SET1 ...
-d : 删除行中 SET1 这个字符串
$ last | tr ' [a-z] ' ' [A-Z] '
Преобразование символов табуляции в символы пробела.
$ col [-xb]
-x : 将 tab 键转换成对等的空格键
Преобразование табуляции в определенное количество пробелов, значение по умолчанию — 8.
$ expand [-t] file
-t : tab 转为空格的数量
Объедините строки с одинаковыми данными.
$ join [-ti12] file1 file2
-t : 分隔符,默认为空格
-i : 忽略大小写的差异
-1 : 第一个文件所用的比较字段
-2 : 第二个文件所用的比较字段
Вставьте две строки вместе.
$ paste [-d] file1 file2
-d : 分隔符,默认为 tab
Split делит файл на несколько файлов.
$ split [-bl] file PREFIX
-b : 以大小来进行分区,可加单位,例如 b, k, m 等
-l : 以行数来进行分区。
- PREFIX : 分区文件的前导名称
g/re/p (глобальный поиск регулярного выражения и печать), используйте регулярные выражения для глобального поиска и печати.
$ grep [-acinv] [--color = auto] 搜寻字符串 filename
-c : 统计个数
-i : 忽略大小写
-n : 输出行号
-v : 反向选择,也就是显示出没有 搜寻字符串 内容的那一行
--color=auto : 找到的关键字加颜色显示
$ grep -n ' the ' regular_express.txt
8:I can ' t finish the test.
12:the symbol ' * ' is represented as start.
15:You are the best is mean you are the no. 1.
16:The world Happy is the same with "glad".
18:google is the best tools for search keyword
Поскольку { и } имеют особое значение в оболочке, их необходимо экранировать с помощью escape-символов.
$ grep -n ' go{2,5}g ' regular_express.txt
Для форматированного вывода. Он не принадлежит команде конвейера. При передаче данных в printf необходимо использовать форму $().
$ printf ' %10s %5i %5i %5i %8.2f n ' $( cat printf.txt )
DmTsai 80 60 92 77.33
VBird 75 55 80 70.00
Ken 60 90 70 73.33
Его создали Альфред Ахо, Питер Вайнбергер и Брайан Керниган. Название awk — это инициалы трех основателей.
awk обрабатывает одну строку за раз. Наименьшая единица обработки — это поле. Метод именования каждого поля — это.