Какие полезные вещи можно добавить в свой .bashrc? [закрыто]

Есть ли что-то, с чем вы не можете жить, и сделать мою жизнь намного проще? Вот некоторые из них, которые я использую («дисковые пространства» и «папки» особенно удобны).

# еще несколько псевдонимов ls
alias ll = 'ls -alh'
alias la = 'ls -A'
alias l = 'ls -CFlh'
alias woo = 'fortune'
alias lsd = "ls -alF | grep /$"

# Это GOLD для определения того, что занимает столько места на ваших дисках!
alias diskks = "du -S | sort -n -r | more"

# Командная строка mplayer movie смотрит на победу.
alias mp = "mplayer -fs"

# Покажите мне размер (отсортированный) только папок в этом каталоге
alias folders = "find. -maxdepth 1-type d -print | xargs du -sk | sort -rn"

# Это будет держать вас в здравом уме, когда вы собираетесь снова разбить клавиатуру.
alias frak = "fortune"

# Здесь вы помещаете свои ручные скрипты (помните о том, чтобы chmod их)
PATH = "$ HOME /бен: $ PATH"
142 голоса | спросил 3 revs, 2 users 100%
gyaresu
1 Jam1000000amThu, 01 Jan 1970 03:00:00 +030070 1970, 03:00:00

30 ответов


81

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

extract () {
   если [-f $ 1]; тогда
       дело $ 1 в
           * .tar.bz2) tar xvjf $ 1 ;;
           * .tar.gz) tar xvzf $ 1 ;;
           * .bz2) bunzip2 $ 1 ;;
           * .rar) unrar x $ 1 ;;
           * .gz) gunzip $ 1 ;;
           * .tar) tar xvf $ 1 ;;
           * .tbz2) tar xvjf $ 1 ;;
           * .tgz) tar xvzf $ 1 ;;
           * .zip) unzip $ 1 ;;
           * .Z) uncompress $ 1 ;;
           * .7z) 7z x $ 1 ;;
           *) echo «не знаю, как извлечь» $ 1 «...» ;;
       ESAC
   еще
       echo "'$ 1' не является допустимым файлом!"
   фи
 }
ответил user232319 11 J000000Friday14 2014, 09:28:12
39

Поскольку я использую так много разных машин, мой .bashrc всегда устанавливает командную строку для включения, среди прочего, имени сервера, в который я в настоящий момент зарегистрирован. Таким образом, когда я нахожусь на трех уровнях в telnet /ssh, я не нахожу неправильное значение в неправильном окне. Это действительно отстой в rm -rf. в неправильном окне! (Примечание. В домашних условиях telnet отключен на всех компьютерах. На работе ssh не всегда включен и у меня нет доступа root к очень большому числу машин.)

У меня есть сценарий ~ /bin /setprompt, который выполняется моим .bashrc, который содержит:

СБРОС = "\ [\ 017 \]"
NORMAL = "\ [\ 033 [0m \]"
КРАСНЫЙ = "\ [\ 033 [31; 1m \]"
ЖЕЛТЫЙ = "\ [\ 033 [33; 1m \]"
WHITE = "\ [\ 033 [37; 1м \]"
Смайлик = "$ {WHITE}) $ {НОРМАЛЬНО}"
FROWNY = "$ {RED}: ($ {НОРМАЛЬНО}"
SELECT = "if [\ $? = 0], затем echo \" $ {SMILEY} \ "; else echo \" $ {FROWNY} \ "; fi"

# Бросьте все это вместе
PS1 = "$ {RESET} $ {YELLOW} \ h $ {NORMAL} \` $ {SELECT} \ `$ {YELLOW}> $ {NORMAL}"

Этот скрипт устанавливает приглашение имени хоста, за которым следует :), если последняя команда была успешной и : (), если последняя команда не удалась.

ответил user232319 11 J000000Friday14 2014, 09:28:12
25

Цвет для manpages менее упрощает чтение manpages:

export LESS_TERMCAP_mb = $ '\ E [01; 31m'
экспорт LESS_TERMCAP_md = $ '\ E [01; 31m'
экспорт LESS_TERMCAP_me = $ '\ E [0m'
экспорт LESS_TERMCAP_se = $ '\ E [0m'
экспорт LESS_TERMCAP_so = $ '\ E [01; 44; 33m'
экспорт LESS_TERMCAP_ue = $ '\ E [0m'
экспорт LESS_TERMCAP_us = $ '\ E [01; 32m'

Цветные manpages также можно получить, установив большинство и используя его в качестве переменной env MANPAGER. Если вы хотите использовать этот пейджер не только для человека, используйте переменную PAGER, например:

export PAGER = "/usr /bin /most -s"
ответил user232319 11 J000000Friday14 2014, 09:28:12
24

Больше нет cd ../../../.. но вверх 4

Возвращает множество dirs как число, переданное как аргумент, если ни один не увеличивается на 1 по умолчанию (найден в ссылке в комментарии в stackoverflow.com и немного изменен)

вверх () {
  локальный d = ""
  предел = $ 1
  для ((i = 1; i <= limit; i ++))
    делать
      д = $ д /..
    сделанный
  d = $ (echo $ d | sed 's /^ \ ///')
  если [-z "$ d"]; тогда
    d = ..
  фи
  cd $ d
}
ответил user232319 11 J000000Friday14 2014, 09:28:12
19

Я имею дело с множеством разных машин, поэтому один из моих фаворитов - это псевдонимы для каждой машины, для которых мне часто требуется SSH:

alias claudius = "ssh dinomite @ claudius"

Также полезно настроить хороший .ssh /config и ssh-ключи , чтобы сделать скачкообразное перемещение среди машин еще проще.

Еще один из моих любимых псевдонимов - это перемещение каталогов:

alias .. = "cd .."
alias ... = "cd ../.."
alias .... = "cd ../../.."
alias ..... = "cd ../../../.."

И некоторые из наиболее часто используемых вариантов ls (и опечаток):

alias ll = "ls -l"
alias lo = "ls -o"
alias lh = "ls -lh"
alias la = "ls -la"
alias sl = "ls"
псевдоним l = "ls"
псевдоним s = "ls"

История может быть очень полезной, но по умолчанию в большинстве дистрибутивов ваша история сдувается при выходе каждой оболочки, и она не имеет большого значения для начала. Мне нравится иметь 10 000 строк истории:

export HISTFILESIZE = 20000
экспорт HISTSIZE = 10000
shopt -s histappend
# Объединить многострочные команды в один в истории
shopt -s cmdhist
# Игнорировать дубликаты, ls без параметров и встроенных команд
HISTCONTROL = ignoredups
export HISTIGNORE = "&: ls: [bf] g: exit"

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

Я часто обнаруживал, что выворачивает вывод через awk, чтобы получить определенный столбец вывода, как в df -h | awk '{print $ 2}', чтобы найти размер каждого из моих дисков. Чтобы сделать это проще, я создал функцию fawk в моем .bashrc:

function fawk {
    first = "awk '{print"
    последняя = "}"
    CMD = "$ {первый} \ $$ {1} $ {последний}"
    eval $ cmd
}

Теперь я могу запустить df -h | fawk 2, который сохраняет хороший бит ввода.

Если вам нужно указать разделитель (, например , awk -F: для /etc /passwd)), эта функция, очевидно, t обрабатывать это. Немного переработанная версия в этой теме может обрабатывать произвольные аргументы awk перед номером поля (но все еще требуется ввод из stdin).

ответил user232319 11 J000000Friday14 2014, 09:28:12
15

GPG зашифрованный bashrc

Я уверен, что у всех нас есть вещи, которые мы хотели бы включить в наш bashrc, который нам не нужен, чтобы легко читаемые sudoers. Мое решение:

, если [-f ~ /.bash_private.gpg]; тогда
   eval "$ (gpg --decrypt ~ /.bash_private.gpg 2 /dev /null)"
фи

У меня есть агент GPG, который делает это, поэтому мне нужно только вводить пароль своего личного ключа один раз в несколько часов. Вы все еще должны иметь некоторое доверие к пользователям системы, потому что ваша переменная, функции и псевдонимы, которые вы определяете, могут быть извлечены из ОЗУ. Тем не менее, я использую это в основном для своего ноутбука. Если он украден, я не хочу, чтобы кто-то легко видел такие вещи, как:

псевдоним MYsql = 'mysql -uadmin -psecret'
wglatest () {wget -O https: //admin: [email protected]/latest; }
ответил user232319 11 J000000Friday14 2014, 09:28:12
12

это отличный ресурс для этого:

покажите нам свой .bashrc

ответил user232319 11 J000000Friday14 2014, 09:28:12
12

Я использовал их для всех, но потом понял, что лучше просто запомнить, как их делать «вручную», потому что это означало, что я бы полностью понял, что происходит, и 2) иметь доступ к этим даже если мой пользовательский .bashrc не был установлен.

Единственное, что я использую для псевдонимов в эти дни, - это сократить повторную типизацию действительно длинных строк (например. alias myhost = 'ssh -T [email protected] screen -dAr' )

ответил user232319 11 J000000Friday14 2014, 09:28:12
9

Один лайнер и крошечные скрипты там могут продолжаться вечно. Я рекомендую человеку bash и писать вещи самостоятельно. Некоторые хорошие короткие вещи bash на http://www.commandlinefu.com . Вот несколько вещей.

# использовать дополнительные функции глобуса. Смотрите man bash, найдите extglob.
shopt -s extglob
#include .files при глобировании.
shopt -s dotglob
# Когда глобус расширяется до нуля, сделайте его пустой строкой вместо буквенных символов.
shopt -s nullglob
# исправлять орфографические ошибки для cd, только в интерактивной оболочке
shopt -s cdspell
Режим # vi
set -o vi

s () {# do sudo или sudo последняя команда, если аргумент не указан
    if [[$ # == 0]]; тогда
        sudo $ (история -p '!!')
    еще
        sudo "$ @"
    фи
}

prompt_command () {
    p = $ PWD # p намного проще вводить в интерактивные оболочки
    # специальный IFS должен быть ограничен 1 лайнером или внутри скриптов.
    # В противном случае это только вызывает ошибки.
    отменить IFS
}
PROMPT_COMMAND = PROMPT_COMMAND


# умное расширенное завершение, загрузка с
# http://bash-completion.alioth.debian.org/
если [[-f $ HOME /local /bin /bash_completion]]; тогда
    , $ HOME /местные /бен /bash_completion
фи


extract () {# извлечь файлы. Игнорировать файлы с неправильными расширениями.
    локальный x
    ee () {# эхо и выполнение
        echo "$ @"
        $ 1 "$ 2"
    }
    для x в «$ @»; делать
        [[-f $ x]] || Продолжать
        случай "$ x" в
            * .tar.bz2 | * .tbz2) ee "tar xvjf" "$ x" ;;
            * .tar.gz | * .tgz) ee "tar xvzf" "$ x" ;;
            * .bz2) ee "bunzip2" "$ x" ;;
            * .rar) ee "unrar x" "$ x" ;;
            * .gz) ee "gunzip" "$ x" ;;
            * .tar) ee "tar xvf" "$ x" ;;
            * .zip) ee "unzip" "$ x" ;;
            * .Z) ee "uncompress" "$ x" ;;
            * .7z) ee "7z x" "$ x" ;;
        ESAC
    сделанный
}
ответил user232319 11 J000000Friday14 2014, 09:28:12
9

Небольшой совет для Bash, если вы являетесь системным администратором и много работаете с правами root:

shopt -o noclobber

Это предотвратит случайное уничтожение содержимого уже существующего файла, если вы перенаправите вывод (> имя_файла). Вы всегда можете принудительно перезаписать с помощью> | имя_файла.

ответил user232319 11 J000000Friday14 2014, 09:28:12
8

У меня есть следующее в моем bashrc

function __setprompt {
  local BLUE = "\ [\ 033 [0; 34m \]"
  local NO_COLOUR = "\ [\ 033 [0m \]"
  local SSH_IP = `echo $ SSH_CLIENT | awk '{print $ 1}' `
  local SSH2_IP = `echo $ SSH2_CLIENT | awk '{print $ 1}' `
  если [$ SSH2_IP] || [$ SSH_IP]; тогда
    локальный SSH_FLAG = "@ \ h"
  фи
  PS1 = "$ BLUE [\ $ (дата +% H:% M)] [\ u $ SSH_FLAG: \ w] \\ $ $ NO_COLOUR"
  PS2 = "$ BLUE> $ NO_COLOUR"
  PS4 = '$ BLUE + $ NO_COLOUR'
}
__setprompt

На локальной машине это выглядит так:

[17:57] [пользователь: ~] $

, но на удаленном (через ssh) это:

[17:57] [пользователь @ машина: ~] $
ответил user232319 11 J000000Friday14 2014, 09:28:12
6

У меня было это в моем .bashrc некоторое время, и я нашел его полезным. Если вы входите в окно, автоматически запускается экран при входе в систему, таким образом, когда ваше сетевое соединение прерывается или что-то еще, вы не теряете все, что делаете. Он должен быть помещен в конец.

, если ["$ PS1"! = "" -a "$ {STARTED_SCREEN: -x}" = x -a "$ {SSH_TTY: -x}"! = x]
тогда
STARTED_SCREEN = 1; экспорт STARTED_SCREEN
[-d $ HOME /lib /screen-logs] || mkdir -p $ HOME /lib /screen-logs

спать 1
экран -U-RR & & выход 0

echo "Экран не удался! продолжение с обычным запуском bash"
фи
ответил user232319 11 J000000Friday14 2014, 09:28:12
5

Сколько алиасов вам нужно fortune?

Мне нравится создать псевдоним cdd, который приведет меня туда, где я сейчас, скорее всего, буду работать на этом сервере.

PATH redefinition действительно принадлежит .bash_profile, а не .bashrc.

На сервере, где я обычно использую большой набор screen s, мой .bashrc будет иметь:

alias s1 = "screen -dr chaos1"
alias s2 = "screen -dr chaos2"
alias s3 = "screen -dr chaos3"
# ... и так далее

(Экран s был настроен, например, с помощью экрана -U -S chaos1.)

ответил user232319 11 J000000Friday14 2014, 09:28:12
5

Кроме всего прочего, я устанавливал некоторые значения по умолчанию для меньшего количества, предотвращаю случайное закрытие терминала и включение навигации вперед по истории:

# игнорировать регистр, длинный запрос, выйти, если он подходит на одном экране, разрешить цвета для цветов ls и grep
экспорт LESS = "- iMFXR"

# необходимо нажать ctrl-D 2 + 1 раз, чтобы выйти из оболочки
экспорт IGNOREEOF = "2"

# разрешить ctrl-S для навигации по истории (ctrl-R)
stty -ixon
ответил user232319 11 J000000Friday14 2014, 09:28:12
5

У меня есть несколько бит:

# останавливать динамик ПК, когда-либо раздражающий меня :)
setterm -bfreq 0

# Не добавляйте повторяющиеся строки в историю. См. Bash (1) для получения дополнительных параметров.
HISTCONTROL = ignoredups
# ... и игнорировать такие же успешные записи.
HISTCONTROL = ignoreboth

# Развернуть размер истории
HISTFILESIZE = 10000
HISTSIZE = 100

# команды с ведущим пространством не добавляются в историю
HISTCONTROL = ignorespace

# Я в Интернете?
псевдоним p4 = 'ping 4.2.2.2 -c 4'

# pwsafe
alias pw = 'pwsafe -p'

# ls aliases
alias ll = 'ls -l'
alias la = 'ls -A'
alias l = 'ls -CF'
alias lt = 'ls -laptr' #oldest first sort
alias labc = 'ls -lap' #alphabetical sort

# cd aliases
alias .. = 'cd ..'
alias ... = 'cd ../..'
alias .... = 'cd ../../..'

# cd в старый каталог
alias bd = 'cd "$ OLDPWD"'

# установить пакет и автоматически ответить «да» на запрос подтверждения
alias ins = "sudo aptitude install"

# удалить пакет и его файлы конфигурации
alias remp = "sudo aptitude purge"

# поиск пакета - apt-cache и поиск aptitude по-разному
# так что оба
alias searchc = "apt-cache search"
alias search = "поиск aptitude"
alias show = "aptitude show"
ответил user232319 11 J000000Friday14 2014, 09:28:12
5

Хвост всех журналов в /var /log

alias logs = "find /var /log -type f -exec file {} \; | grep 'text' | cut -d '' -f1 | sed -e's /: $ //g '| grep -v '[0-9] $' | xargs tail -f "
ответил user232319 11 J000000Friday14 2014, 09:28:12
4

Чтобы иметь цвета для всех команд grep, таких как grep, egrep и zgrep, у меня есть следующее в моем .bashrc

export GREP_OPTIONS = '- color = auto'
ответил user232319 11 J000000Friday14 2014, 09:28:12
4

Псевдоним «Папки» отлично! Я немного изменил его, чтобы каталоги с пробелами не вызывали ошибок.

alias folders = 'find. -maxdepth 1-тип d -print0 | xargs -0 du -sk | sort -rn '
ответил user232319 11 J000000Friday14 2014, 09:28:12
3

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

Итак, я точно знаю, что это set -o vi, потому что я знаю команды редактирования vi в bash, и я не знаю emacs (кроме того, Ctrl + A мешает экран). В моих собственных коробках я помещал это в .bashrc

Я также обнаружил, что мне нужно включить export EDITOR = vim, потому что число последних дистрибутивов по умолчанию - nano, которое наиболее раздражает, чтобы его вставляла утилита, которая нуждается в том, чтобы вы что-то редактировали, когда я ожидал vi. : - /

Я также изменяю свое приглашение. Я давно нашел, что добавление последнего кода ошибки достаточно полезно, чтобы мне это понравилось. И мне нравится полный путь в подсказке. И текущий номер screen, также. И просто имеет смысл включить текущего пользователя и имя хоста. Мое приглашение: PS1 = '\ u @ \ h $ PWD $ WINDOW [$?] \ $'

ответил user232319 11 J000000Friday14 2014, 09:28:12
3

У вас есть проверка bash, чтобы увидеть, изменился ли размер окна (предотвращает изменение линейного редактирования при изменении размера окна терминала)

shopt -s checkwinsize

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

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

shopt -s histappend
PROMPT_COMMAND = 'history -a'
ответил user232319 11 J000000Friday14 2014, 09:28:12
3
ответил user232319 11 J000000Friday14 2014, 09:28:12
3

Вот мины:

export HISTCONTROL = ignoredups
export HISTIGNORE = "&: ls: bg: fg"

# set variable, определяющая chroot, в которой вы работаете (используется в подсказке ниже)
если [-z "$ debian_chroot"] & & & & [-r /etc /debian_chroot]; тогда
    debian_chroot = $ (cat /etc /debian_chroot)
фи

# показывает вас, если вы находитесь в chroot или в git-репозитории
PS1 = '$ {debian_chroot: + ($ debian_chroot)} \ [\ 033 [01; 30m \] \ ч \ [\ 033 [00m \]: \ [\ 033 [01; 34m \] \ W \ [\ 033 [00m \] $ (__ git_ps1) \ $ '


если [-f /etc /bash_completion]; тогда
    , /И т.д. /bash_completion
фи

# два удобных однобуквенных псевдонима

alias u = 'ls -hltr'
alias e = 'du * -cs | sort -nr | глава'
alias g = 'grep -C5 --color = auto'

# создает в нем временный каталог и компакт-диски
alias td = 'pushd $ (mktemp -d)'

# find <dir> <имя файла regexp> <содержимое файла regexp>
function fing {find "$ 1" -name "$ 2" -exec grep -H "$ 3" "{}" \; }

# показывает «git diff» для любого проекта в любом подкаталоге
alias git-differ = 'для g в $ (find. -name ".git"); do g = $ {g %%. git}; printf "$ g \ t \ t \ t"; pu $ g> /dev /null & & & & git diff | wc -l; p> /dev /null; сделанный'

# делает git house, сохраняя любой проект в любом подкаталоге
alias git-housekeep = 'для g в $ (find. -name ".git"); do g = $ {g %%. git}; echo $ g; pu $ g & & git repack & & & git gc --auto & & р, сделал»

# Обновление Debian
псевдоним apg = 'aptitude update & & & & aptitude dist-upgrade & & & aptitude clean '

# Быстрый способ обслуживания файлов в HTTP из локального каталога
alias webs = 'python -m SimpleHTTPServer'
ответил user232319 11 J000000Friday14 2014, 09:28:12
2

Это мои любимые:

export HISTFILESIZE = 1000000000
экспорт HISTSIZE = 1000000

Мне нравится иметь историю командной строки, которая никогда не забывается.

К сожалению, некоторое время назад я запустил оболочку из cron, которая каким-то образом не читала .bashrc, и нарезала все до 500 строк, уничтожая за многолетнюю историю. Поэтому я рекомендую, чтобы они вошли в /etc /bashrc.

ответил user232319 11 J000000Friday14 2014, 09:28:12
2

Вот несколько моих фаворитов:

alias ls = 'ls -F --color = auto'
alias l = 'ls'
alias ll = 'ls -ahl'
alias .. = 'cd ..'
alias ... = 'cd ../..'
alias mv = 'mv -i'

mkcd () {
        если [$ #! = 1]; тогда
                echo "Использование: mkcd <dir>"
        еще
                mkdir -p $ 1 & & cd $ 1
        фи
}

# Git related
alias gs = 'git status'
alias gc = 'git commit'
alias ga = 'git add'
alias gd = 'git diff'
alias gb = 'git branch'
alias gl = 'git log'
alias gsb = 'git show-branch'
alias gco = 'git checkout'
alias gg = 'git grep'
alias gk = 'gitk --all'
alias gr = 'git rebase'
alias gri = 'git rebase --interactive'
alias gcp = 'git cherry-pick'
alias grm = 'git rm'
ответил user232319 11 J000000Friday14 2014, 09:28:12
2

Я использую это примерно 20 раз в день в cd в последний измененный каталог:

сл ()
{
        last_dir = "$ (ls -Frt | grep '/$' | tail -n1)"
        если [-d "$ last_dir"]; тогда
                cd "$ last_dir"
        фи
}

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

е () {
    pwd> "$ HOME /.lastdir_ $ 1"
}

CRD () {
        lastdir = "$ (cat" $ HOME /.lastdir_ $ 1 ")"> /dev /null 2 ​​& 1
        если [-d "$ lastdir"]; тогда
                cd "$ lastdir"
        еще
                echo "нет существующего каталога, хранящегося в буфере $ 1"> & 2
        фи
}
ответил user232319 11 J000000Friday14 2014, 09:28:12
2

Из Автоматизация Linux и Unix-администрирования Кирка Бауэра (великая книга!)

PS1 = '\ n [\ u @ \ h]: \ w \ n $?> '

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

\ u = имя пользователя

\ h = хост

\ w = рабочий каталог

$? = последний код возврата

ответил user232319 11 J000000Friday14 2014, 09:28:12
1

Я компилирую несколько вещей вручную в $ HOME /local, поэтому у меня есть этот небольшой фрагмент:

для prog в $ HOME /local /*
делать
    если [-d "$ prog /bin"]; тогда
        export PATH = $ prog /bin: $ PATH
    фи
    если [-d "$ prog /include"]; тогда
        export C_INCLUDE_PATH = $ prog /include: $ C_INCLUDE_PATH
    фи
    если [-d "$ prog /lib"]; тогда
        export LD_LIBRARY_PATH = $ prog /lib: $ LD_LIBRARY_PATH
        export LIBRARY_PATH = $ prog /lib: $ LIBRARY_PATH
    фи
    если [-d "$ prog /man"]; тогда
        экспорт MANPATH = $ prog /man: $ MANPATH
    фи
    если [-d "$ prog /share /man"]; тогда
        экспорт MANPATH = $ prog /share /man: $ MANPATH
    фи
сделано

У меня также есть мой IRC-клиент на моем сервере, работающий на экране, поэтому у меня есть это (не приложение .bashrc, но все же полезно)

#! /usr /bin /env bash

RUNNING = `screen -ls | grep irc`
если ["" = "$ RUNNING"]; тогда
   экран -S irc irssi
еще
   screen -dr irc
ц
ответил user232319 11 J000000Friday14 2014, 09:28:12
1

Я использую мой bashrc на многочисленных машинах, поэтому у меня есть этот небольшой фрагмент, чтобы убедиться, что LS окрашен. Это исправит его на машинах OSX, возможно даже * BSD, если вы отредактируете строку uname.

, если ["$ TERM"! = "dumb"]; тогда
    если [`uname` ==" Darwin "]; тогда
       alias ls = 'ls -G'
    еще
       eval "` dircolors -b` "
       alias ls = 'ls --color = auto'
    фи
фи

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

bu () {cp $ 1 ~ /.backup /`basename $ 1` -ddate +% Y% m% d% H% M`.backup; }
ответил user232319 11 J000000Friday14 2014, 09:28:12
1

Это один из моих любимых:

alias ssh = ', если ["$ (ssh-add -l)" = "У агента нет идентификаторов." ]; затем ssh-add; Fi; /usr /bin /ssh "$ @" '

Если я забыл пройти аутентификацию, это позволяет мне сделать это, не тратя меня на ввод команды ssh-add после сессии ssh.

ответил user232319 11 J000000Friday14 2014, 09:28:12
1

Несколько хороших

Сделать SSH автоматически завершением имени хоста, на которое вы отправили ssh (если оно находится в вашей конфигурации или истории)

complete -o default -o nospace -W "$ (/usr /bin /env ruby ​​-ne 'помещает $ _. split (/[, \ s] + /) [1 ..- 1] .reject {| host | host.match (/\ * | \? /)}, если $ _. match (/^ \ s * Host \ s + /); '<$ HOME /.ssh /config) "scp sftp SSH

Некоторые полезные настройки завершения bash

bind "set complete-ignore-case on" # note: bind используется вместо того, чтобы вставлять их в .inputrc
bind "set bell-style none" # no bell
bind "set show-all-if-ambiguous On" # показать список автоматически, без двойной вкладки

Некоторые полезные для Mac OS X

alias nospotlight = 'sudo mdutil -a -i off'
alias cleardnscache = 'sudo killall -HUP mDNSResponder'
alias ldd = 'otool -L'
alias seq = 'jot -'
alias eject = 'drutil eject'
ответил user232319 11 J000000Friday14 2014, 09:28:12

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132