Syntax of alias command in linux
How to create alias in linux
In general, the creation of alias is as follows:
alias name=value alias name='command' alias name='command arg1 arg2' alias name='/path/to/script' alias name='/path/to/script.pl arg1'
That is, we write the name of the alias, put the “=” sign, then indicate the command or list of commands in quotation marks with arguments. Instead of console commands, we can specify the path to the script with or without arguments. Let’s look at examples.
In order to completely update the system, we need to enter the commands:
sudo apt update && sudo apt full-upgrade
Each time to write this for a long time, we can create an alias:
alias upd='sudo apt update && sudo apt full-upgrade'
Let’s redefine the ping command by setting the parameter so that only 4 packets are sent when it is used:
alias ping='ping -c 4
How to invoke a command that has been overridden by alias.But what if we want to use the old ping command? This can also be done, you need to enter the backslash “” before the command:
\ping kalitut.com
In addition, in addition to the backslash, there are other ways to call the original command:
"ping" 'ping' command ping[
That is, by enclosing in quotation marks or by entering the keyword “command” before the command.
Removing alias from the system
The unalias command and the alias name are used for deletion.linux remove alias In general terms, it looks:
unalias name
For example, I mistakenly added alias: X and i want to remove it i would type this comman
unalias X
and if you want to delete all aliases; for this, use the command:
unalias -a
That is, with the -a option .
Note:After closing the terminal, all our aliases (aliases, aliases) are deleted, except for system ones. That is, these aliases exist only within the framework of the current terminal session.
If you added alias in one tab (window) of the terminal on another tab (in another terminal session), the system knows nothing about this alias but this can be solved by creating permanent aliases.
Сокращение ввода с автоалиасами
kubectl-aliases
- kgpooyaml — kubectl get pods oyaml
- ksysgsvcw — kubectl -n kube-system get svc w
- ksysrmcm — kubectl -n kube-system rm cm
- kgdepallsl — kubectl get deployment all sl
Tекущая подробная схема находится на . Там вы также можете найти полный список псевдонимов.
- Вместо можно написать .
- Вместо можно написать (в настоящее время не существует алиаса для ресурса Roles).
- Чтобы получить данные по конкретному поду, можно использовать команду .
Из-за того, что часть алиасов требует аргументы, алиасы а, f и l нужно использовать последними.
Автодополнение
- Для Zsh автодополнение для алиасов работает «из коробки».
- Для Bash, к сожалению, необходимы некоторые действия, чтобы заставить работать автодополнение.
Установка complete-alias
bash-completionВажное примечание для пользователей MacOS: как и скрипт автодополнения kubectl, сomplete-alias не работает с Bash 3.2, который по умолчанию используется в MacOS. В частности, complete-alias зависит от bash-completion v2 (), для которого требуется как минимум Bash 4.1
Это означает, что для использования complete-alias в MacOS нужно установить более новую версию Bash.bash_completion.shрепозитория GitHub
Дисковое пространство
<box 100% round left |>
df -h — отображает информацию о смонтированных разделах с отображением общего, доступного и используемого пространства (Прим.переводчика. ключ -h работает не во всех *nix системах)ls -lSr |more — выдаёт список файлов и директорий рекурсивно с сортировкой по возрастанию размера и позволяет осуществлять постраничный просмотрdu -sh dir1 — подсчитывает и выводит размер, занимаемый директорией ‘dir1’ (Прим.переводчика. ключ -h работает не во всех *nix системах)du -sk * | sort -rn — отображает размер и имена файлов и директорий, с соритровкой по размеруrpm -q -a –qf ‘%10{SIZE}t%{NAME}n’ | sort -k1,1n — показывает размер используемого дискового пространства, занимаемое файлами rpm-пакета, с сортировкой по размеру (fedora, redhat и т.п.)dpkg-query -W -f=’${Installed-Size;10}t${Package}n’ | sort -k1,1n — показывает размер используемого дискового пространства, занимаемое файлами deb-пакета, с сортировкой по размеру (ubuntu, debian т.п.)
</box>
Создание постоянных алиасов
Для создания постоянных алиасов, которые не будут удаляться после перезагрузки терминала, необходимо записать их в специальный скрытый файл — , который представляет собой обычный bash-скрипт исполняемый каждый раз при открытии терминала.
Так как — текстовый файл, то его можно отредактировать в любом текстовом редакторе, я буду использовать редактор gedit, вы же можете использовать удобный для вас редактор будь то nano, vim или любой другой.
Для начала редактирования выполните команду ниже:
В самом конце файла добавьте нужный вам алиас и сохраните изменения. Каждый новый алиас должен начинаться с новой строки.
Добавление алиасов в файл .bashrc
Однако сразу после сохранения алиас работать не будет, так как для применения новых настроек нужно заново выполнить файл . Для этого либо просто перезагрузите консоль или выполните обновление настроек с помощью следующей команды:
Теперь ваш только что добавленный алиас будет выполняться.
Важно чтобы рядом со знаком — не было пробелов, т.е. такая запись недопустима -. Не забывайте, что вы из-за незнания какой либо команды можете переопределить ее алиасом
Так, например, если создать алиас — , то вместо попытки создания каталога с помощью команды , в консоли будет выполняться алиас, который в нашем случае, будет показывать сообщение — «wrong alias!»
Не забывайте, что вы из-за незнания какой либо команды можете переопределить ее алиасом. Так, например, если создать алиас — , то вместо попытки создания каталога с помощью команды , в консоли будет выполняться алиас, который в нашем случае, будет показывать сообщение — «wrong alias!».
Анализ файловых систем
badblocks -v /dev/hda1 — проверить раздел hda1 на наличие bad-блоковfsck /dev/hda1 — проверить/восстановить целостность linux-файловой системы раздела hda1fsck.ext2 /dev/hda1 или e2fsck /dev/hda1 — проверить/восстановить целостность файловой системы ext2 раздела hda1e2fsck -j /dev/hda1 — проверить/восстановить целостность файловой системы ext3 раздела hda1 с указанием, что журнал расположен там жеfsck.ext3 /dev/hda1 — проверить/восстановить целостность файловой системы ext3 раздела hda1fsck.vfat /dev/hda1 или fsck.msdos /dev/hda1 или dosfsck /dev/hda1 — проверить/восстановить целостность файловой системы fat раздела hda11
Выставление/изменение полномочий на файлы
<box 100% round left |>
ls -lh — просмотр полномочий на файлы и директории в текущей директории
ls /tmp | pr -T5 -W$COLUMNS — вывести содержимое директории /tmp и разделить вывод на пять колонок
chmod ugo+rwx directory1 — добавить полномочия на директорию directory1 ugo(User Group Other)+rwx(Read Write eXecute) — всем полные права. Аналогичное можно сделать таким образом chmod 777 directory1chmod go-rwx directory1 — отобрать у группы и всех остальных все полномочия на директорию directory1.chown user1 file1 — назначить владельцем файла file1 пользователя user1chown -R user1 directory1 — назначить рекурсивно владельцем директории directory1 пользователя user1chgrp group1 file1 — сменить группу-владельца файла file1 на group1chown user1:group1 file1 — сменить владельца и группу владельца файла file1find / -perm -u+s — найти, начиная от корня, все файлы с выставленным SUIDchmod u+s /bin/binary_file — назначить SUID-бит файлу /bin/binary_file. Это даёт возможность любому пользователю запускать на выполнение файл с полномочиями владельца файла.chmod u-s /bin/binary_file — снять SUID-бит с файла /bin/binary_file.chmod g+s /home/public — назначить SGID-бит директории /home/public.chmod g-s /home/public — снять SGID-бит с директории /home/public. Позволяет удалять файлы только владельцам chmod o-t /home/public — снять STIKY-бит с директории /home/public
</box>
Запустить команду от другого пользователя в Unix/Linux
Иногда, просто необходимо запустить команду от другого пользователя. И существует несколько способов, как это можно сделать. Я расскажу о них в своей статья «Запустить команду от другого пользователя в Unix/Linux».
Запустить команду от другого пользователя в Unix/Linux — способ 1
И так, можно использовать утилиту SUDO. Рассмотрим пример:
$ sudo -H -u Your_another_user -c 'ping linux-notes.org'
Пояснения:
- -H YOUR_HOME: Задает HOME (Переменное окружение для хома конкретного юзера) и по умолчанию — это root.
- -u YOUR_USER: Задаем пользователя от которого будет выполнена команда.
- -c YOUR_COMMAND: Служит опцией для ввода команды.
Как-то так.
Запустить команду от другого пользователя в Unix/Linux — способ 2
Можно использовать утилиту SU. И сейчас приведу несколько примеров.
Логин в root юзера
Чтобы получить рута, выполните:
$ su -
Или:
$ su - root
Запустить команду как root юзер
Вот пример команды:
# su - root -c "YOUR_COMMAND_HERE"
Или
su - -c "YOUR_COMMAND_HERE arg1"
Идем дальше….
Выполнить команду от другого пользователя с помощью su
И так, вот пример:
# su -c "/opt/solr/bin/solr create -c test_solr_core -n solrconfig.xml" -s /bin/sh solr Created new core 'test_solr_core'
Рассмотрим другой пример:
$ su another_user -c 'ping linux-notes.org'
Или:
$ su - YOUR_USER -c "YOUR_COMMAND_HERE"
Где:
- — — Будет имитировать логин указанного пользователя.
- -c — Служит для указания команды для выполнения (для указанного юзверя).
Как-то так.
Запустить команду от другого пользователя в Unix/Linux — способ 3
И так, можно использовать утилиту runuser. Команда runuser запускает оболочку с заменяющими идентификаторами пользователей и групп. Эта команда полезна только когда вы залогинены как пользователь root. Синтаксис выглядит следующим образом:
# runuser -l YOUR_USER -c 'YOUR_COMMAND_HERE'
Как пример, я покажу следующую строку:
# runuser -l nginx -c 'service nginx start'
PS: Для использования команды runuser пароль не требуется, и он должен запускаться только пользователем root.
Основные опции:
- -l: Создаст оболочку для входа в систему, используя файл runuser-l PAM вместо стандартного.
- -g: Указывает на основную группу.
- -G: Указывает на дополнительную группу.
- -c: Собственно, служит для указания команды.
- –session-command=COMMAND: Передает одну команду в оболочку с опцией «-c» и не создает новый сеанс.
- -m: Не сбрасывайте переменные среды (ENV).
Вот и все, тема «Запустить команду от другого пользователя в Unix/Linux» завершена.
История
В Unix псевдонимы были введены в оболочку C и сохраняются в дочерних оболочках, таких как tcsh и bash . Псевдонимы оболочки C были строго ограничены одной строкой. Это было полезно для создания простых команд быстрого доступа, но не для создания более сложных конструкций. Более старые версии оболочки Bourne не предлагали псевдонимов, но предоставляли функции, более мощные, чем концепция псевдонимов csh. Концепция псевдонима из csh была импортирована в Bourne Again Shell (bash) и оболочку Korn (ksh). С оболочками, которые поддерживают как функции, так и псевдонимы, но без параметризованных встроенных сценариев оболочки, рекомендуется использовать функции везде, где это возможно. Случаи, когда необходимы псевдонимы, включают ситуации, когда требуются связанные псевдонимы (bash и ksh). Команда alias также была перенесена в операционную систему IBM i .
Создание синонимов, используя Bash-функции (синонимы с аргументами)
Командная оболочка Bash позволяет создавать функции, которые могут выполнять одну или несколько команд. Они относятся к программированию в Bash, но их иногда можно использовать и для создания синонимов. Такие функции могут принимать аргументы в командой строке, в отличии от синонимов, создаваемых командой alias.
Синтаксис функций в Bash
имя_функции () {команда1 команда2 …}
Или:
function имя_функции {команда1 команда2 …}
Данный код создает функцию, которая выполняет команды. Команда может быть одна или несколько. Чтобы выполнить функцию достаточно ввести в командной строке ее название. Через пробел можно передавать аргументы.
Чтобы внутри функции обратиться к аргументам, используются сокращения $1, $2 и т.д. $1 соответсвует первому аргументу, $2 второму и т.д. $0 соответсвует имени функции.
Примеры создания функций
Функции можно создавать прямо в текущей сессии терминала, но лучше прописать их в файле .bashrc.
Создадим функцию которая принимает имя директории, создает данную директорию и переходит в нее:
Теперь, вместо того, чтобы выполнять mkdir для создания директории, а затем cd, чтобы перейти в нее, достаточно выполнить:
У вас может возникнуть вопрос, что означают символы — и && внутри нашей функции?
И
How to create alias in Linux
I’ll continue with the same example I used above.
You must note a few things:
- The substituted command is always used under the inverted commas (‘).
- There must be no spaces before or after the equals sign in the alias command. If you mistakenly put a space, you’ll see an error like alias not found.
- Be careful in choosing the name of the alias. There are no reserved keywords so you may replace an existing command with a totally irrelevant command.
You can check if a certain command is actually an alias with the type command. For example, in Ubuntu, ls is actually an alias to show you colorful output.
If you want to use the original command, without its aliased version, use single quotes around it.
Now, the alias you just is temporary. If you exit the shell, you’ll lose the alias. You need to make the alias permanent.
Make alias permanent
In order to add aliases that can work in a system all the time, you need to simply edit your user’s (or any other user’s) .bashrc file. Some distributions might suggest using a dedicated .bash_aliases file for storing aliases.
This file is located in your /home/<username>/ folder. You can use vim command to edit the file in terminal.
This will immediately open your .bashrc file and you must start adding aliases by the end of the file, just after the last written line of it. You should then source the bashrc file.
I suggest creating either blocks or at least adding commentaries in the file for each of the aliases created so it’s easier in the future to know what is each thing for maintenance purposes.
Creating global aliases for all users
If you want the aliases to be available for all users on your Linux system, you should add the aliases in /etc/bash.bashrc file.
If you don’t have this file, create it.
Создание синонимов (команда alias)
В командной оболочке Bash для создания синонимов используется команда alias.
Синтаксис команды alias
Чтобы создать синоним нужно указать команду-синоним и в кавычках указать команду, которая должна выполняться:
alias синоним=»команда»
синоним — короткая команда (алиас), которая будет использоваться для запуска команды.команда — команда, которая будет запускаться при вызове синонима. Записывается в двойных или одинарных кавычках.
Примеры создания синонимов
Вывод списка файлов:
То есть, вместо выполнения ls -la теперь достаточно выполнить команду ll:
Создадим команду для быстрого перехода в заданную директорию:
Пример выполнения:
Подключение по ssh к определенному серверу:
Сохранение синонимов
Когда вы создаете синоним с помощью команды alias, то он функционирует только в текущей сессии, пока открыто окно терминала. Чтобы сохранить синонимы на постоянной основе, нужно прописать выполнение команд alias в файл .bashrc.
Запустите терминал и откройте файл .bashrc для редактирования, выполнив команду:
Перейдите в конец файла и введите команды для создания синонимов, по одному на каждой строчке, например:
Сохраните изменения и закройте файл. Для этого нажмите Ctrl+X, откроется запрос на сохранение изменений в файле — нажмите y и затем Enter.
Чтобы изменения вступили в силу, можно выйти и снова войти в систему или выполните команду:
Просмотр списка синонимов
Чтобы просмотреть список всех активных в данный момент синонимов используется команда:
Во многих дистрибутивах несколько синонимов уже может быть создано в системе. Например у меня результат следующий:
Удаление синонимов
Чтобы удалить синоним используется команда unalias. Удаление происходит только в текущей сессии терминала.
Удаление синонима по заданному имени:
Удаление всех синонимов:
Примеры алиасов
Теперь вы знаете, как создавать пользовательские алиасы. Рассмотрим наиболее популярные и полезные алиасы. Некоторые из них можно найти в интернете, а некоторые могут быть включены в конфигурации bash по умолчанию.
Навигация и листинг
Ранее мы рассмотрели один пример команды ls. Но существует множество других алиасов этой команды.
Чтобы команда ls возвращала вывод в столбцах и с индикатором типа файла, используйте:
Можно также предупредить некоторые опечатки и создать алиас, который будет вызывать правильную команду:
Создайте алиас, который будет передавать вывод в less для просмотра объемного листинга каталога:
Теперь рассмотрим несколько полезных вариантов команды cd.
Этот алиас вернёт в родительский каталог:
Установив этот алиас, вы сможете легко находить файлы в текущем каталоге:
Системные алиасы
Также полезными бывают алиасы для мониторинга и запроса статистики системы. Следующий алиас показывает использование дискового пространства в удобном для чтения формате (включая тип файловой системы) и выводит итог в конце:
Также можно создать алиас для вывода du:
Попробуйте сделать вывод команды free более удобным для восприятия:
Также можно настроить таблицу процессов. Настройте стандартный вывод:
Чтобы настроить в таблице процессов возможности поиска, нужно создать алиас, который будет искать процесс, указанный как аргумент:
Теперь при вызове таблицы можно задавать имя процесса. Команда вернёт компактный и удобный вывод:
Другие алиасы
С командой mkdir часто используется опция –р, которая создаёт все необходимые родительские каталоги. Можно создать алиас для команды с этой опцией:
Можно также добавить флаг –v, который будет сообщать о добавлении новых каталогов. Это позволяет вовремя заметить опечатку, ставшую причиной создания ненужной ветки каталогов.
Во время загрузки файлов из интернета при помощи wget используется опция –c, которая возобновляет загрузку в случае возникновения ошибки. Алиас для такой команды:
Можно также ускорить поиск по истории:
Некоторые системные инструменты можно обновить до более современной версии при помощи алиасов; в таком слчае нужно установить обе версии инструмента. Однако имейте в виду: это может отразиться на работе некоторых алиасов.
Следующий алиас заменяет команду top её расширенной версией, которая поддерживает сортировку, поиск и просмотр.
Аналогично можно настроить команду ncdu, которая выводит размеры файлов и каталогов в интерактивном режиме и позволяет просматривать файлы и выполнять простые действия:
Существует также усовершенствованная версия команды df – pydf. Она возвращает информацию в цвете. Чтобы создать её алиас:
Чтобы быстро найти свой внешний IP, создайте алиас:
Если вы предпочитаете оптимизировать изображения, используйте пакет ImageMagick. Чтобы установить его, введите:
Для оптимизации изображений используется команда mogrify. Чтобы создать алиас для неё, введите:
Такой алиас изменит размер всех изображений PNG в текущем каталоге, чья ширина превышает 690px.
Чтобы потом подгрузить изображения на сервер, можно создать алиас для команды sftp:
использование
Создание псевдонимов
Unix
Непостоянные псевдонимы можно создать, указав пары имя / значение в качестве аргументов для команды псевдонима. В оболочках Unix синтаксис:
alias gc='git commit'
Оболочка C
Соответствующий синтаксис в оболочке C или tcsh :
alias gc "git commit"
Этот псевдоним означает, что при чтении команды в оболочке она будет заменена на, и вместо этого будет выполнена эта команда.
В оболочке 4DOS / 4NT для определения псевдонима для команды 4DOS используется следующий синтаксис :
alias cp copy
Windows PowerShell
Чтобы создать новый псевдоним в Windows PowerShell, можно использовать командлет:
new-alias ci copy-item
Это создает новый псевдоним, который будет заменен командлетом при выполнении.
В PowerShell нельзя использовать псевдоним для указания аргументов по умолчанию для команды. Вместо этого это должно быть сделано путем добавления элементов в коллекцию $ PSDefaultParameterValues, одну из предпочтительных переменных PowerShell.
Просмотр определенных в настоящее время псевдонимов
Для просмотра определенных псевдонимов можно использовать следующие команды:
alias # Used without arguments; displays a list of all current aliases alias -p # List aliases in a way that allows re-creation by sourcing the output; not available in 4DOS/4NT and PowerShell alias myAlias # Displays the command for a defined alias
Переопределение псевдонимов
В оболочках Unix можно переопределить псевдоним, заключив в кавычки любой символ в имени псевдонима при использовании псевдонима. Например, рассмотрим следующее определение псевдонима:
alias ls='ls -la'
Чтобы переопределить этот псевдоним и выполнить команду в том виде, в котором она была изначально определена, можно использовать следующий синтаксис:
'ls'
или
\ls
В оболочке 4DOS / 4NT можно переопределить псевдоним, поставив перед ним звездочку. Например, рассмотрим следующее определение псевдонима:
alias dir = *dir /2/p
Звездочка во втором экземпляре вызывает вызов unaliased , предотвращая рекурсивное расширение псевдонима. Также пользователь может получить неэлисинговое поведение в командной строке, используя тот же синтаксис:
*dir
Смена псевдонимов
В Windows PowerShell глагол можно использовать с командлетом для изменения существующего псевдонима:
set-alias ci cls
Псевдоним теперь будет указывать на команду.
В оболочке 4DOS / 4NT команда предоставляет интерактивную командную строку для редактирования существующего псевдонима:
eset /a cp
Вызывает псевдоним для редактирования, в отличие от переменной окружения с таким же именем.
Удаление псевдонимов
В оболочках Unix и 4DOS / 4NT псевдонимы можно удалить, выполнив команду:
unalias copy # Removes the copy alias unalias -a # The -a switch will remove all aliases; not available in 4DOS/4NT unalias * # 4DOS/4NT equivalent of `unalias -a` - wildcards are supported
В Windows PowerShell псевдоним можно удалить с диска alias: \, используя :
remove-item aliasci # Removes the ci alias
Команды Linux окружения пользователя
29. su / sudo
Su и sudo — это два способа выполнить одну и ту же задачу: запустить программу от имени другого пользователя. В зависимости от вашего дистрибутива вы, наверное, используете одну или другую. Но работают обе. Разница в том, что su переключает вас на другого пользователя, а sudo только выполняет команду от его имени. Поэтому использование sudo будет наиболее безопасным вариантом работы. Я писал про права суперпользователя в этой статье.
30. date
В отличие от time, делает именно то, чего вы от неё и ожидаете: выводит дату и время в стандартный вывод. Его можно форматировать в зависимости от ваших потребностей: вывести год, месяц, день, установить 12-ти или 24-ти часовой формат, получить наносекунды или номер недели. Например, date +»%j %V», выведет день в году и номер недели в формате ISO.
31. alias
Команда создаёт синонимы для других команд Linux. То есть вы можете делать новые команды или группы команд, а также переименовывать существующие. Это очень удобно для сокращения длинных команд, которые вы часто используете, или создания более понятных имен для команд, которые вы используете нечасто и не можете запомнить. Здесь собрано несколько полезных алиасов.
32. uname
Выводит некую основную информацию о системе. Без параметров она не покажет ничего полезного, кроме строчки Linux, но, если задать параметр -a (All), можно получить информацию о ядре, имени хоста и узнать архитектуру процессора.
33. uptime
Сообщает вам время работы системы. Не очень существенная информация, но может быть полезна для случайных вычислений или просто ради интереса, чтобы узнать, как давно был перезагружен сервер.
34. sleep
Вам, наверное, интересно как же её можно использовать. Даже не учитывая Bash-скриптинг, у неё есть свои преимущества. Например, если вы хотите выключить компьютер через определенный промежуток времени или использовать в качестве импровизированной тревоги.
Используйте пользовательский формат вывода столбцов
Учтите, что поля ресурсов Kubernetes чувствительны к регистру.
Примеры применения
-
Отображение образов контейнеров для подов:
Эта команда отображает имена образов контейнеров для каждого пода.
Помните, что под может содержать несколько контейнеров, тогда имена образов будут выведены в одной строке через запятую. -
Отображение зон доступности нод:
Эта команда удобна, если ваш кластер размещен в публичном облаке. Она отображает зону доступности для каждой ноды.Зона доступности — это облачная концепция, ограничивающая зону репликации географическим регионом.
Зоны доступности для каждой ноды получаются через специальную метку — . Если кластер запущен в публичном облаке, эта метка создается автоматически и заполняется именами зон доступности для каждой ноды.
Метки не являются частью спецификации ресурсов Kubernetes, так что вы не найдете информации о них в руководстве API. Однако их можно увидеть (как и любые другие метки), если запросить информацию о нодах в формате YAML или JSON:Это отличный способ узнать больше о ресурсах, в дополнение к изучению ресурсных спецификаций.