Улюблені псевдоніми командного рядка Unix? [зачинено]


39

Які ваші улюблені псевдоніми командного рядка (bash / sh / tcsh)? Ось кілька моїх.

псевдонім lsr = 'ls -lrt'
псевдонім gon = 'cd $ HOME / Notes "
псевдонім devdb = 'mysql -h dev --user = x --password = таємна dbname'
псевдонім ec = 'rm * ~'; # очищення emacs
псевдонім h = 'історія'
alias eb = 'exec bash'; # Solaris іноді за замовчуванням sh
псевдонім mr = 'більше'
alias mroe = 'більше'
псевдонім qd = 'ехо-експорт DISPLAY = $ DISPLAY'
псевдонім ralias = '. $ HOME / .alias '; # перечитати псевдоніми
псевдонім ,, = 'cd ../ ..'
псевдонім .. = 'cd ..'
псевдонім c = 'ясно'

18
Замість того, щоб вводити свій пароль в командному рядку mysql(будь-хто інший на сервері це міг бачити!), Введіть ім’я користувача та пароль у файл ~ / .my.cnf і просто вкажіть -up. Інструменти MySQL автоматично підберуть ці облікові дані, прочитайте mysql (1) для отримання додаткової інформації.
Alex J

+1 Для псевдоніма .. = 'cd ..'
Мосг

+1 для 'mroe'. Мені потрібно подбати про мої поширені неправильні написання ...
gWaldo

Відповіді:


12
function s()
{
    screen -t "$@" /usr/bin/ssh "$@"
}

Підключіться до хоста на новій вкладці екрана з назвою пристрою.


11

Мої улюблені, які досі не згадувалися:

alias l='ls'
alias u='cd ..'
alias uu='cd ../..'
alias uuu='cd ../../..'
alias uuuu='cd ../../../..'

Я, як правило, не фанат псевдонімів, які просто вкорочують речі, але я набираю так багато, і мені потрібна лише одна рука.


+1 - не погана ідея
Rook

1
ls (і cd) потрібна лише одна рука ... якщо ключовою картою є Dvorak! Що стосується тієї самої руки, що і "Enter".
gbarry

8

жоден, оскільки я ніколи не можу гарантувати, що вони будуть налаштовані на КОЖНУ систему, у яку я ввійду (як я, root або хтось).


1
Саме так! Нешкідливі речі, такі як псевдонім ls = "ls --color = auto - це нормально, але зміна команди rm тощо? Ніколи.
user9474

7

Жоден, я щодня сильно змінююся між системами, що в основному я від нього відмовився.


Ви не синхронізуєте домашні каталоги між різними машинами? xoa.petdance.com/How_to:_Keep_your_home_directory_in_Subversion
Енді Лестер

Я підтримую з групою інших адміністраторів близько 5-ти машин, більшість цих машин протягом усього їхнього життя ніколи не мали віддаленого інтерактивного сеансу користувача (усі установки та конфігурації відбуваються автоматично). Ми вважаємо, що у нас є обліковий запис адміністратора користувача для автоматичного монтажу зі спільного розділу NFS, але використовувати його не варто.
Мартін П. Гелвіг

1
... не мають облікових записів адміністрування / кореневих файлів, на їх шляху входять каталоги nfs - коли NFS є bork, так це і адміністратор / root. Деякі мої клієнти наполягають на тому, щоб навчитися цьому важко.
Девід Макінтош

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

# mkdir and enter it immediately thereafter
mcd()           { mkdir $1 && cd $1; }

# when entering a directory, list the contents.
cd()            { builtin cd "$@" && ls; }

6

Загальний вміст мого "списку псевдонімів":



Я витратив достатньо часу на виправлення машин Unix, з якими не «нормально» працюю (один із мінусів того, що я працював адміністратором Unix для програмного дому, ви опиняєтесь на сайтах клієнтів, багато), що перше Я роблю це "unalias -a", просто так, щоб будь-який псевдонім звичайного адміністратора виробництва не вступав у взаємодію з неправильним написанням, після чого це занадто багато клопоту, щоб налаштувати.

Це перейшло і в моє звичайне використання.


6
alias rm 'mv -f \!* $WASTEBASKET'
alias unrm 'mv $WASTEBASKET/\!* .'

Я знаю, що багато хто не погодиться, але мені подобаються захисні мережі. (І будь ласка, спробуйте пробачити мене за використання ткш.)

Цей дещо подібний має бути поза законом:

alias rm 'rm -i'

Я бачив людей, які пройшли навчання в системах з цим псевдонімом, а потім вони набирають rm *якусь іншу систему, очікуючи, що вони запитають, які файли видалити, а потім вони сидять там і спостерігають, як вони роблять саме те, що потрібно робити.

Редагувати:

Деякі з коментарів порівнювали псевдонім «переїзд до сміття» із прапором «-i», кажучи, що вони схожі. Але для мене важлива різниця. За допомогою "-i" ви отримуєте запит на підтвердження щоразу, коли використовуєте команду, і вона стає чимось, на що ви очікуєте і на яке покладаєтесь. З іншого боку, сміттєвий кошик працює точно так, як і стандартний rm, поки ви фактично не помилитесь і не потрібно видалити файл. Це трохи схоже на різницю між тренувальними колесами та запасною шиною в багажнику.


еквівалент bash вимагає функції: del () {path = readlink -f "$1"mkdir -p $ WASTE $ path mv $ path $ WASTE $ path} Його не ідеально (оскільки він створює новий dir з назвою файлу), але він працює добре. (введення нових рядків залишається як вправа для читача!)
gbjbaanb

+1: Я використовую Tcsh теж :-)

+1: вас пробачили за використання tcsh;)
bedwyr

6
Справедливо кажучи, очікувати підтвердження і не отримати його так само погано, як сподіватися, що він перейде в сміттєвий кошик, а цього не відбудеться. Немає різниці, насправді.
Ден Удей

@Dan: Я думав те саме. Псевдонім справді повинен називатися не rm, а wb для сміттєвого кошика чи чимось подібним.
user9474

4

Вони призначені для zsh, але я думаю, ви могли досить легко перенести їх до іншої оболонки:

sudo() { [[ $1 == (vi|vim) ]] && shift && sudoedit "$@" || command sudo "$@"; } # sudo vi/vim => sudoedit
wst() { TZ=Australia/Perth date } # get local time no matter what server I'm on

FULLHOST=`hostname -f` 2>/dev/null || FULLHOST=`hostname` # reasonably portable, always gets a DHCP suffix too (if one exists)
SHORTHOST=`echo $FULLHOST | cut -d. -f1-2` # get the first two segments of hostname, which I used in my shell prompt

Вибачте за моє незнання, яка різниця між sudo vim та sudoedit? Sudo edit = sudo $ EDITOR?
olle

sudoedit запускає ваш редактор під вашим обліковим записом, а не як root. Це означає, що ви отримуєте доступ до власного ~ / .vimrc тощо.
Alex J

1
+1 для зміни sudo vi <somefile>на sudoedit <somefile! + більше, якби міг
Кевін М

4

Ось кілька моїх улюблених. (Кілька з них стосуються ZSH.)

alias ls='ls -F --color=auto'
alias l='ls'
alias ll='ls -ahl'
alias ..='cd ..'
alias ...='cd ../..'
alias mv='mv -i'
alias mmv='noglob zmv -W'
alias mcp='mmv -C'

mkcd() {
        if [ $1 = "" ]; then
                echo "Usage: mkcd <dir>"
        else
                mkdir -p $1
                cd $1
        fi
}

# ZSH global aliases for piping
alias -g H="| head"
alias -g T="| tail"
alias -g C="| wc -l"
alias -g L="| less"
alias -g G="| grep"
alias -g S="| sed -e"
alias -g A="| awk"

# Subversion related
alias ss='svn status'
alias sd='svn diff'
alias sc='svn commit'

# 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'

fortune -s  # Add to your profile to brighten your day :)


4

тут є багато псевдонімів, які не потрібні:

псевдонім c = 'ясно'

можна замінити, просто натиснувши [Ctrl] + [L]

alias mroe = 'більше'

тощо: zsh за замовчуванням забезпечує корекцію орфографії, bash робить це з розширеннями

псевдонім щось = "історія | grep $ @"

натискання [Ctrl] + [R] робить те саме, що і в bash / zsh

back = 'cd $ OLDPWD'

те ж саме можна зробити в кожній оболонці з

cd -




2
alias ls="ls --color=auto -A -h -i -s --group-directories-first -l"
alias screen="screen -U"
alias sscreen="~/Projects/bin/start_screen.sh"
alias gst='git status'
alias gl='git pull'
alias gp='git push'
alias gd='git diff | emacs'
alias gc='git commit -v'
alias gca='git commit -v -a'
alias gb='git branch'
alias gba='git branch -a'


2

Для пошуку старих сценаріїв perl для чогось:

alias searchperl 'find /place1 /place2 /place3 -name "*.pl" | xargs grep

Надішліть собі електронний лист:

alias mailthis 'mail -s mailthis email@email.com < '

1
alias l='ls --color=auto -lsah'
alias ..='cd ..'

Я дуже часто сумую за іншими системами


1
history | awk '{print $2}' | awk 'BEGIN {FS="|"} {print $1}' | sort | uniq -c | sort -nr | head -10

Покажіть 10 найпопулярніших команд у своїй історії.


скорочена версія, немає потреби в awk: історія | вирізати -f 5 -d '' | сортувати | uniq -c | сортувати -n | хвіст
Марцін

1
alias viewpw='aespipe -d < ~/.passwd.aes > ~/.passwd.dec && more ~/.passwd.dec && shred -u ~/.passwd.dec'

Як я пам’ятаю всі свої паролі ...


1

Ось мій улюблений, щоб знайти щось у всьому коді Python у поточному та дочірньому каталогах, виключаючи ті, що пов’язані з підривною роботою:

alias greppy="find . | grep -v [.]svn | grep [.]py$ | xargs grep "


1

Кілька вирваних з мого bashrc:

alias grep='grep --color=auto'
alias egrep='grep -E --color=auto'
alias e='$EDITOR'
alias g='git'
alias csort='sort | uniq -c | sort -n' # column sort piped data
alias sl='ls' # fat fingers

Як правило, я, як правило, мою програму bashrc з'ясовувати, який менеджер пакунків використовує система, а потім відстежувати його як aptі yum, тобто на будь-якій машині, на якій працює мій bashrc, я можу просто зробити:

apt search foo
yum install foo
apt update

Це не досконало, але більшість загальних дій однакові між yum та схильністю, до того часу, коли ви намагаєтесь зробити щось складніше, ви можете просто запам'ятати, на якій ОС ви працюєте.


1

Мабуть, мій улюблений, оскільки це робить так просто: написання нових псевдонімів:

alias realias='vim ~/.bash_aliases;source ~/.bash_aliases'

1

Я б сказав, що це мій улюблений псевдонім.

псевдонім resume = 'екран -D -R'

Це виявляється дуже зручним після того, як моя робоча станція Windows автоматично перезавантажується кожен вихідний (політика фірми).


1
if [ "$(uname)"="darwin" ]; then
  EDITOR=mate
  PATH=$PATH:~/.bin
  alias sleep_hdd='sudo pmset -a hibernatemode 1'
  alias sleep_ram='sudo pmset -a hibernatemode 0'
  alias sleep_combined='sudo pmset -a hibernatemode 3'
  alias cdproj='cd ~/Projects/Web'
  alias e='mate'
  alias vboxheadless='VBoxHeadless -startvm '
  alias subash='sudo bash'
fi

if [ "$(uname)" = "SunOS" ]; then
  alias ls='ls -F'
  alias e='vim'
  alias subash='pfexec bash'
fi

vboxheadless вже має бути у вашому $ PATH: uname; який vboxheadless Дарвін / usr / bin / vboxheadless
olle

1

Цей працює на більшості робочих столів Linux:

alias go='xdg-open'

Відкриває документ або папку з зареєстрованою програмою, подібно до команди запуску у Windows.


1
Змініть його на xdg-open, і він повинен працювати в будь-якому середовищі XDG-сумісного робочого столу.
Джуліано

1

Ще кілька, щоб додати до палі:

# little bit more readable PATH
alias path='echo -e ${PATH//:/\\n}'

# like others, I find these more efficient than
# typing cd ../../ etc
alias up='cd ..'
alias 2up='cd ../../'
alias 3up='cd ../../../'
alias 4up='cd ../../../../'

# found myself always mistyping this, so...
alias findy='find . -name'


alias targz='tar -xzvf'
alias hg='history | grep '
alias cls='clear'

# handy for the xclip tool
alias xclip='xclip -selection c'

# quick directory listing
alias ldir='ls -d */'

alias mys='mysql -uroot -psecret name-of-frequently-used-DB' 

alias trash='mv -t ~/.local/share/Trash/files --backup=t'
alias vb='vim ~/.bashrc'
alias +='pushd .'
alias _='popd'

Збереження паролів у таких сценаріях потенційно небезпечно, якщо ви їх не отримали 600. Також після виконання вашого пароля переходить до файлу історії - також потенційно небезпечно.
Марцін

1
alias dsclean='find . -name .DS_Store -exec rm \{\} \;'
alias l='ls -lh'
alias ls='ls -G'

# Depends on your specific router
alias myip='curl -sn http://192.168.1.1/wancfg.cmd?action=view | grep td | tail -1 | tr -d '\''/<>a-z '\'''

# Start/stop local mysql installation
alias myserver='sudo /usr/local/mysql/support-files/mysql.server'
alias rssh='ssh -l root'
alias sc='./script/console'
alias sr='screen -r'
alias ss='./script/server'
alias sss='screen ./script/server'
alias up='svn up'
alias webshare='python -c "import SimpleHTTPServer;SimpleHTTPServer.test()"'

1

Виконайте швидку арифметику з командного рядка. Використовуйте "x" для множення, щоб уникнути розширення.

function math
{       
    echo "scale=2 ; $*" | sed -e "s:x:*:g" | sed -e "s:,::g" | bc
}


$ math 12,537.2 x 4
50148.8

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.