Щелкните по изображению, чтобы просмотреть увеличенную версию
1. tar
Создать новый tar-файл
$ tar cvf archive_name.tar dirname/
Извлечь tar-файл
$ tar xvf archive_name.tar
Просмотреть tar-файл
$ tar tvf archive_name.tar
2. grep
Найти строку в файле (без учёта регистра)
$ grep -i "the" demo_file
Вывести совпавшую строку вместе с тремя следующими за ней строками
$ grep -A 3 -i "example" demo_text
Рекурсивно искать файлы, содержащие указанную строку, в папке
$ grep -r "ramesh" *
3. find
Найти файлы с указанным именем файла (без учёта регистра)
$ find -iname "MyProgram.c"
Выполнить команду для найденных файлов
$ find -iname "MyProgram.c" -exec md5sum {} \;
Найти все пустые файлы в домашнем каталоге
$ find ~ -empty
4. ssh
Вход на удалённый хост
$ ssh -l jsmith remotehost.example.com
Отладка клиента ssh
$ ssh -v -l jsmith remotehost.example.com
Показать версию клиента ssh
$ ssh -V
5. sed
При копировании файлов из системы DOS в Unix/Linux каждая строка файла заканчивается на \r\n. sed может легко преобразовать его в файл формата Unix, в котором в конце строк используется \n
$ sed 's/.$//' filename
Перевернуть содержимое файла и вывести его
$ sed -n '1!G; h; p' filename
Добавить номера строк к непустым строкам
$ sed '/./=' thegeekstuff.txt | sed 'N; s/\n/ /'
6. awk
Удаление повторяющихся строк
$ awk '!($0 in array) { array[$0]; print}' temp
Вывести все строки в /etc/passwd, в которых uid и gid совпадают
$ awk -F ':' '$3=$4' /etc/passwd
Вывести указанные поля из файла
$ awk '{print $2,$5;}' employee.txt
7. vim
Открыть файл и перейти к строке 10
$ vim +10 filename.txt
Открыть файл и перейти к первой совпадающей строке
$ vim +/search-term filename.txt
Открыть файл в режиме только для чтения
$ vim -R /etc/passwd
8. diff
Игнорировать пробелы при сравнении
$ diff -w name_list.txt name_list_new.txt
9. sort
Сортировать содержимое файла по возрастанию
$ sort names.txt
Сортировать содержимое файла по убыванию
$ sort -r names.txt
Сортировать содержимое /etc/passwd по третьему полю
$ sort -t: -k 3n /etc/passwd | more
10. export
Вывести переменные среды, соответствующие строке oracle
$ export | grep ORCALE declare -x ORACLE_BASE="/u01/app/oracle" declare -x ORACLE_HOME="/u01/app/oracle/product/10.2.0" declare -x ORACLE_SID="med" declare -x ORACLE_TERM="xterm"
Установить глобальные переменные среды
$ export ORACLE_HOME=/u01/app/oracle/product/10.2.0
11. x
Копировать файлы изображений на внешний диск
$ ls *.jpg | xargs -n1 -i cp {} /external-hard-drive/directory
Сжать и упаковать все файлы jpd в системе
$ find / -name *.jpg -type f -print | xargs tar -cvzf images.tar.gz
Скачать страницы, соответствующие всем URL, указанным в файле
$ cat url-list.txt | xargs wget –c
. ls
Отобразить размер файла в удобочитаемом формате (отображается как MB, GB, ...)
$ ls -lh -rw-r----- 1 ramesh team-dev 8.9M Jun 12 15:27 arch-linux.txt.gz
Вывести список файлов в порядке возрастания по времени последнего изменения
$ ls -ltr
Отобразить тип файла после файла
$ ls -F
13. pwd
Вывести текущий рабочий каталог
14. cd
cd - переключается между двумя последними использованными каталогами
Использование shopt -s cdspell позволяет настроить автоматическое исправление орфографии для команды cd
15. gzip
Создать сжатый файл *.gz
$ gzip test.txt
Распаковать файл *.gz
$ gzip -d test.txt.gz
Показать коэффициент сжатия
$ gzip -l *.gz
compressed uncompressed ratio uncompressed_name
23709 97975 75.8% asp-patch-rpms.txt
16. bzip2
Создать сжатый файл *.bz2
$ bzip2 test.txt
Распаковать файл *.bz2
bzip2 -d test.txt.bz2
17. uzip
Распаковать файл *.zip
$ unzip test.zip
Просмотреть содержимое файла *.zip
$ unzip -l jasper.zip Archive: jasper.zip Length Date Time Name -------- ---- ---- ---- 40995 11-30-98 23:50 META-INF/MANIFEST.MF 32169 08-25-98 21:07 classes_ 15964 08-25-98 21:07 classes_names 10542 08-25-98 21:07 classes_ncomp
18. shutdown
Выключить систему и немедленно отключить питание
$ shutdown -h now
Завершить работу через 10 минут
$ shutdown -h +10
Перезагрузка
$ shutdown -r now
Принудительно запустить проверку системы при перезагрузке
$ shutdown -Fr now
19. ftp
Использование команды ftp и команды sftp в основном аналогично: подключиться к FTP-серверу и скачать несколько файлов
$ ftp IP/hostname ftp> mget *.html
Отобразить список файлов на удалённом хосте
ftp> mls *.html - /ftptest/features.html /ftptest/index.html /ftptest/othertools.html /ftptest/samplereport.html /ftptest/usage.html
20. crontab
Просмотреть записи crontab пользователя
$ crontab -u john -l
Настроить запланированную задачу, которая выполняется каждые десять минут
*/10 * * * * /home/ramesh/check-disk-space
21. service
Команда service используется для запуска сценариев инициализации System V, которые обычно находятся в /etc/init.d. Эта команда может напрямую запускать скрипты в этой папке без указания пути
Просмотр состояния службы
$ service ssh status
Просмотреть состояние всех служб
$ service --status-all
Перезапуск службы
$ service ssh restart
22. ps
Команда ps используется для отображения информации о запущенных процессах. У команды ps много опций; здесь перечислены лишь некоторые из них
Просмотреть все текущие запущенные процессы
$ ps -ef | more
Отобразить текущие запущенные процессы в виде дерева. Опция H указывает на отображение иерархии процессов
$ ps -efH | more
23. free
Эта команда используется для отображения текущего использования памяти системы, включая используемую память, доступную память и память подкачки
По умолчанию free выводит использование памяти в bytes
$ free
total used free shared buffers cached
Mem: 3566408 1580220 1986188 0 203988 902960
-/+ buffers/cache: 473272 3093136
Swap: 4000176 0 4000176
Если вы хотите вывести использование памяти в других единицах, нужно добавить опцию: -g для GB, -m для MB, -k для KB, -b для bytes
$ free -g
total used free shared buffers cached
Mem: 3 1 1 0 0 0
-/+ buffers/cache: 0 2
Swap: 3 0 3
Если вы хотите просмотреть сводку по всей памяти, используйте опцию -t. Использование этой опции добавляет строку сводки в вывод
$ free -t
total used free shared buffers cached
Mem: 3566408 1592148 1974260 0 204260 912556
-/+ buffers/cache: 475332 3091076
Swap: 4000176 0 4000176
Total: 7566584 1592148 5974436
24. top
Команда top отображает процессы, которые в данный момент потребляют больше всего ресурсов в системе (по умолчанию сортировка по использованию CPU). Если вы хотите изменить способ сортировки, можно нажать O (заглавную O) в списке результатов, чтобы отобразить все столбцы, доступные для сортировки, а затем выбрать столбец, по которому хотите сортировать
Current Sort Field: P for window 1:Def Select sort field via field letter, type any other key to return a: PID = Process Id v: nDRT = Dirty Pages count d: UID = User Id y: WCHAN = Sleeping in Function e: USER = User Name z: Flags = Task Flags ........
Если вы хотите отображать только процессы конкретного пользователя, можно использовать опцию -u
$ top -u oracle
25. df
Показать использование дискового пространства файловой системы. По умолчанию df -k выводит использование диска в байтах
$ df -k Filesystem 1K-blocks Used Available Use% Mounted on /dev/sda1 29530400 3233104 24797232 12% / /dev/sda2 120367992 50171596 64082060 44% /home
Использование опции -h отображает использование дискового пространства в более удобочитаемом формате
$ df -h Filesystem Size Used Avail Capacity iused ifree %iused Mounted on /dev/disk0s2 232Gi 84Gi 148Gi 37% 21998562 38864868 36% / devfs 187Ki 187Ki 0Bi 100% 648 0 100% /dev map -hosts 0Bi 0Bi 0Bi 100% 0 0 100% /net map auto_home 0Bi 0Bi 0Bi 100% 0 0 100% /home /dev/disk0s4 466Gi 45Gi 421Gi 10% 112774 440997174 0% /Volumes/BOOTCAMP //app@izenesoft.cn/public 2.7Ti 1.3Ti 1.4Ti 48% 0 18446744073709551615 0% /Volumes/public
Используйте опцию -T для отображения типа файловой системы
$ df -T Filesystem Type 1K-blocks Used Available Use% Mounted on /dev/sda1 ext4 29530400 3233120 24797216 12% / /dev/sda2 ext4 120367992 50171596 64082060 44% /home
26. kill
kill используется для завершения процесса. Обычно мы сначала используем ps -ef, чтобы найти процесс и получить его номер процесса, затем используем kill -9 номер процесса, чтобы завершить его. Вы также можете использовать killall, pkill или xkill для завершения процессов
$ ps -ef | grep vim ramesh 7243 7222 9 22:43 pts/2 00:00:00 vim $ kill -9 7243
27. rm
Подтверждать перед удалением файла
$ rm -i filename.txt
Использование метасимволов оболочки в именах файлов может быть очень полезным. Выводите имена файлов и подтверждайте перед их удалением
$ rm -i file*
Рекурсивно удалить все файлы в папке, а также удалить саму папку
$ rm -r example
28. cp
Скопировать file1 в file2, сохранив права доступа, владельца и метку времени файла
$ cp -p file1 file2
Скопировать file1 в file2. Если file2 существует, будет запрошено подтверждение на перезапись
$ cp -i file1 file2
29. mv
Переименование file1 в file2. Если file2 существует, появится запрос на перезапись
$ mv -i file1 file2
Обратите внимание: если используется опция -f, запрос отображаться не будет
-v выводит процесс переименования. Эта опция очень удобна, когда имена файлов содержат подстановочные знаки
$ mv -v file1 file2
30. cat
Можно просмотреть содержимое нескольких файлов сразу. Следующая команда сначала выводит содержимое file1, затем содержимое file2
$ cat file1 file2
Опция -n добавляет номера строк в начало каждой строки
$ cat -n /etc/logrotate.conf
/var/log/btmp {
missingok
3 monthly
4 create 0660 root utmp
5 rotate 1
6 }
31. mount
Чтобы смонтировать файловую систему, нужно сначала создать каталог, затем смонтировать файловую систему в этот каталог
# mkdir /u01 # mount /dev/sdb1 /u01
Это также можно добавить в fstab для автоматического монтирования, чтобы при каждой перезагрузке системы файловая система загружалась
/dev/sdb1 /u01 ext2 defaults 0 2
32. chmod
chmod используется для изменения прав доступа к файлам и каталогам
Предоставить владельцу и группе указанного файла все разрешения (включая чтение, запись и выполнение)
$ chmod ug+rwx file.txt
Удалить все разрешения группы указанного файла
$ chmod g-rwx file.txt
Изменить разрешения каталога и рекурсивно изменить разрешения всех файлов и подкаталогов в этом каталоге
$ chmod -R ug+rwx file.txt
33. chown
chown используется для изменения владельца и группы файла
Одновременно изменить владельца файла на oracle, а группу на db
$ chown oracle:dba dbora.sh
Используйте параметр -R для рекурсивного изменения каталога и файлов в нём
$ chown -R oracle:dba /home/oracle
34. passwd
passwd используется для изменения пароля в командной строке. При использовании этой команды сначала нужно ввести старый пароль, а затем ввести новый пароль
$ passwd
Суперпользователь может использовать эту команду для изменения паролей других пользователей. В этом случае не нужно вводить пароль пользователя
# passwd USERNAME
passwd также может удалить пароль пользователя. Эту команду может выполнять только пользователь root. После удаления пароля пользователь может войти в систему без ввода пароля
# passwd -d USERNAME
35. mkdir
Создайте каталог с именем temp в домашнем каталоге
$ mkdir ~/temp
Используйте параметр -p, чтобы создать все несуществующие каталоги вдоль пути
$ mkdir -p dir1/dir2/dir3/dir4/
36. ifconfig
ifconfig используется для просмотра и настройки сетевых интерфейсов системы Linux
Просмотр всех сетевых интерфейсов и их состояния
$ ifconfig -a
Используйте команды up и down для запуска или остановки интерфейса
$ ifconfig eth0 up
$ ifconfig eth0 down
37. uname
uname может отображать некоторые важные сведения о системе, такие как имя ядра, имя хоста, версия ядра, тип процессора и так далее
$ uname -a Linux john-laptop 2.6.32-24-generic #41-Ubuntu SMP Thu Aug 19 01:12:52 UTC 2010 i686 GNU/Linux
38. whereis
Когда вы не знаете расположение команды, можно использовать команду whereis. В следующем примере whereis используется для поиска расположения ls
$ whereis ls ls: /bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/man1p/ls.1p.gz
Когда вы хотите найти местоположение исполняемой программы, но программы нет в каталогах по умолчанию whereis, можно использовать параметр -B и указать каталог в качестве аргумента этого параметра. Следующая команда ищет команду lsmk в каталоге /tmp
$ whereis -u -B /tmp -f lsmk lsmk: /tmp/lsmk
39. whatis
whatis выводит описательную информацию о команде
$ whatis ls ls (1) - list directory contents $ whatis ifconfig ifconfig (8) - configure a network interface
40. locate
Команда locate может отображать путь к указанному файлу (или группе файлов). Она использует базу данных, созданную updatedb
Следующая команда отобразит все файлы в системе, содержащие строку crontab
$ locate crontab /etc/anacrontab /etc/crontab /usr/bin/crontab /usr/share/doc/cron/examples/crontab2english.pl.gz /usr/share/man/man1/crontab.1.gz /usr/share/man/man5/anacrontab.5.gz /usr/share/man/man5/crontab.5.gz /usr/share/vim/vim72/syntax/crontab.vim
41. man
Отображает страницу man для команды
$ man crontab
Некоторые команды могут иметь несколько страниц man; каждая страница man соответствует одному типу команды
$ man SECTION-NUMBER commandname
Страницы man обычно можно разделить на 8 типов команд
- Команды пользователя
- Системные вызовы
- Функции библиотеки C
- Устройства и сетевые интерфейсы
- Форматы файлов
- Игры и скринсейверы
- Окружение, таблицы и макросы
- Команды системного администратора и команды, работающие в фоне
Например, когда мы выполняем whatis crontab, можно увидеть, что у crontab есть два типа команд — 1 и 5. Поэтому мы можем использовать следующую команду, чтобы просмотреть man-страницу для типа команды 5
$ whatis crontab crontab (1) - maintain crontab files for individual users (V3) crontab (5) - tables for driving cron $ man 5 crontab
42. tail
Команда tail по умолчанию отображает последние 10 строк текста в файле
$ tail filename.txt
С помощью опции -n можно указать количество отображаемых строк
$ tail -n N filename.txt
Также можно использовать опцию -f для просмотра в реальном времени. После выполнения этой команды она будет ждать. Если в конец файла добавляются новые строки, она продолжит выводить новые строки. Эта опция очень полезна при просмотре логов. Завершить команду можно нажатием CTRL-C.
$ tail -f log-file
43. less
Эта команда может отображать содержимое файла, не загружая весь файл, что очень полезно при просмотре больших лог-файлов.
$ less huge-log-file.log
Когда вы открываете файл командой less, следующие две клавиши очень помогут; они используются для прокрутки вперёд и назад.
CTRL+F – forward one window CTRL+B – backward one window
44. su
su命令用于切换用户账号,超级用户使用这个命令可以切换到任何其他用户而不用输入密码
$ su - USERNAME
Выполните команду с другим именем пользователя. В приведенном ниже примере пользователь john выполняет команду ls, используя имя пользователя raj, а затем после выполнения возвращается к учетной записи john.
[john@dev-server]$ su - raj -c 'ls' [john@dev-server]$
Войдите под указанным пользователем и используйте указанную программу оболочки вместо используемой по умолчанию.
$ su -s 'SHELLNAME' USERNAME
45. mysql
MySQL, возможно, самая широко используемая база данных в Linux. Даже если вы не установили MySQL на свой сервер, вы все равно можете использовать клиент MySQL для подключения к удаленному серверу MySQL.
Чтобы подключиться к удаленной базе данных, необходимо ввести пароль.
$ mysql -u root -p -h 192.168.1.2
Подключитесь к локальной базе данных.
$ mysql -u root -p
Вы также можете ввести пароль базы данных в командной строке. Просто добавьте пароль как аргумент после -p. Его можно записать сразу после p без пробела.
46. yum
Установите Apache с помощью yum.
$ yum install httpd
Обновите Apache.
$ yum update httpd
Удалите Apache.
$ yum remove httpd
47. rpm
Установите Apache с помощью rpm.
# rpm -ivh httpd-2.2.3-22.0.1.el5.i386.rpm
Обновите Apache.
# rpm -uvh httpd-2.2.3-22.0.1.el5.i386.rpm
Удалите Apache.
# rpm -ev httpd
48. ping
Пропингуйте удаленный хост, отправив только 5 пакетов данных.
$ ping -c 5 gmail.com
49. date
Установите системную дату.
# date -s "01/31/2010 23:59:53"
После изменения системного времени необходимо синхронизировать аппаратное время и системное время.
# hwclock –systohc # hwclock --systohc –utc
50. wget
Используйте wget для загрузки программ, музыки и видео из интернета.
$ wget http://prdownloads.sourceforge.net/sourceforge/nagios/nagios-3.2.1.tar.gz
Скачайте файл и сохраните его с указанным именем файла.
$ wget -O taglist.zip http://www.vim.org/scripts/download_script.php?src_id=7701
Перевод: https://zhuanlan.zhihu.com/p/28674639
Оригинал: http://www.thegeekstuff.com/2010/11/50-linux-commands/
