it-swarm-tr.com

Kişinin .bashrc'sine hangi yararlı şeyler eklenebilir?

Olmadan yaşayamayacağınız ve hayatımı yapacak bir şey var mı SO Çok daha kolay mı? İşte kullandığım bazı şeyler ('disk alanı' ve 'klasörler' özellikle kullanışlıdır).

# some more ls aliases
alias ll='ls -alh'
alias la='ls -A'
alias l='ls -CFlh'
alias woo='fortune'
alias lsd="ls -alF | grep /$"

# This is GOLD for finding out what is taking so much space on your drives!
alias diskspace="du -S | sort -n -r |more"

# Command line mplayer movie watching for the win.
alias mp="mplayer -fs"

# Show me the size (sorted) of only the folders in this directory
alias folders="find . -maxdepth 1 -type d -print | xargs du -sk | sort -rn"

# This will keep you sane when you're about to smash the keyboard again.
alias frak="fortune"

# This is where you put your hand rolled scripts (remember to chmod them)
PATH="$HOME/bin:$PATH"
141
Gareth

Arşivleri ayıklayan küçük bir senaryom var, internette bir yerde buldum:

extract () {
   if [ -f $1 ] ; then
       case $1 in
           *.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 "don't know how to extract '$1'..." ;;
       esac
   else
       echo "'$1' is not a valid file!"
   fi
 }
81
Gert M

Çok farklı makineler kullandığım için, .bashrc istemi komutunu, diğer şeylerin yanı sıra, şu anda oturum açmış olduğum sunucunun adını içerecek şekilde ayarlar. Bu şekilde, telnet/ssh içinde üç seviye derinken, yanlış pencereye yanlış bir şey yazmıyorum. Gerçekten rm -rf . yanlış pencerede! (Not: Evde telnet tüm makinelerde devre dışıdır. İş yerinde ssh her zaman etkin değildir ve çok fazla makineye kök erişimim yoktur.)

Bir senaryom var ~/bin/setprompt tarafından yürütülen _ .bashrc, şunları içerir:

RESET="\[\017\]"
NORMAL="\[\033[0m\]"
RED="\[\033[31;1m\]"
YELLOW="\[\033[33;1m\]"
WHITE="\[\033[37;1m\]"
SMILEY="${WHITE}:)${NORMAL}"
FROWNY="${RED}:(${NORMAL}"
SELECT="if [ \$? = 0 ]; then echo \"${SMILEY}\"; else echo \"${FROWNY}\"; fi"

# Throw it all together 
PS1="${RESET}${YELLOW}\h${NORMAL} \`${SELECT}\` ${YELLOW}>${NORMAL} "

Bu komut dosyası, İstemci'yi Ana Bilgisayar adına ve ardından :) son komut başarılı olduysa ve :( son komut başarısız olursa.

39
Eddie

Daha az sayıda sayfa için renk, sayfaların okunmasını biraz daha kolaylaştırır:

export LESS_TERMCAP_mb=$'\E[01;31m'
export LESS_TERMCAP_md=$'\E[01;31m'
export LESS_TERMCAP_me=$'\E[0m'
export LESS_TERMCAP_se=$'\E[0m'
export LESS_TERMCAP_so=$'\E[01;44;33m'
export LESS_TERMCAP_ue=$'\E[0m'
export LESS_TERMCAP_us=$'\E[01;32m'

Renkli manpajlar ayrıca en çok yüklenerek ve MANPAGER env değişkeni olarak kullanılarak elde edilebilir. Bu çağrı cihazını sadece erkekler için kullanmak istemiyorsanız, PAGER değişkenini şu şekilde kullanın:

export PAGER="/usr/bin/most -s"
25
oyvindio

Daha fazla cd yok ../../../ .. ama yukarı 4

Varsayılan olarak hiçbiri 1 artmazsa, sayı bağımsız değişken olarak geçtiğinde birçok yön yükselir (stackoverflow.com adresindeki yorumdaki bir bağlantıda bulunur ve biraz değiştirilir)

up(){
  local d=""
  limit=$1
  for ((i=1 ; i <= limit ; i++))
    do
      d=$d/..
    done
  d=$(echo $d | sed 's/^\///')
  if [ -z "$d" ]; then
    d=..
  fi
  cd $d
}
24
Alberto Zaccagni

Birçok farklı makine ile ilgileniyorum, bu yüzden favorilerimden biri sık sık SSH'ye ihtiyacım olan her makine için takma adlar:

alias claudius="ssh [email protected]"

Makineler arasında atlamayı daha da kolaylaştırmak için iyi bir .ssh/config ve ssh tuşları ayarlamak da yararlıdır.

En sevdiğim diğer adlardan biri dizinleri yukarı taşımak için:

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

Ve bazıları ls (ve yazım hataları) gibi sık kullanılan varyasyonlar için:

alias ll="ls -l"
alias lo="ls -o"
alias lh="ls -lh"
alias la="ls -la"
alias sl="ls"
alias l="ls"
alias s="ls"

Geçmiş çok yararlı olabilir, ancak varsayılan olarak çoğu dağıtımda geçmişiniz her Shell tarafından dışarı atılır ve başlamak için fazla bir şey yoktur. 10.000 satır geçmişe sahip olmayı seviyorum:

export HISTFILESIZE=20000
export HISTSIZE=10000
shopt -s histappend
# Combine multiline commands into one in history
shopt -s cmdhist
# Ignore duplicates, ls without options and builtin commands
HISTCONTROL=ignoredups
export HISTIGNORE="&:ls:[bf]g:exit"

Bu şekilde, daha önce bir şey yaptığımı biliyor ancak özellikleri hatırlayamıyorsam, hızlı bir history | grep foo Hafızamı çalıştırmaya yardımcı olacak.

Disklerimin her birinin boyutunu bulmak için, df -h | awk '{print $2}' 'Da olduğu gibi, çıktının belirli bir sütununu almak için sık sık kendimi awk aracılığıyla piping buldum. Bunu kolaylaştırmak için .bashrc dosyamda bir fawk işlevi oluşturdum:

function fawk {
    first="awk '{print "
    last="}'"
    cmd="${first}\$${1}${last}"
    eval $cmd
}

Şimdi yazmak için df -h|fawk 2 Çalıştırabilirsiniz.

Bir sınırlayıcı belirtmeniz gerekiyorsa ( örneğin , awk -F: İçin /etc/passwd), Bu işlev açıkça işleyemez söyledi. this Gist içindeki hafifçe gözden geçirilmiş sürüm, alan numarasından önce rastgele awk bağımsız değişkenlerini işleyebilir (ancak yine de stdin'den girdi gerektirir).

19
Drew Stephens

GPG şifreli bashrc

Eminim hepimiz, sudoers tarafından kolayca okunmasını istemediğimiz bashrc'umuza koymak istediğimiz şeyler var. Buna benim çözümüm:

if [ -f ~/.bash_private.gpg ]; then
   eval "$(gpg --decrypt ~/.bash_private.gpg 2>/dev/null)"
fi

Bunu yapan bir GPG aracım var, bu yüzden sadece birkaç saatte bir özel anahtarımın şifresini girmem gerekiyor. Tanımladığınız değişkeniniz, işlevleriniz ve takma adlarınız RAM'den çıkarılabileceğinden, sistem kullanıcılarına hala güvenmeniz gerekir. Ancak bunu esas olarak dizüstü bilgisayarım için kullanıyorum. Çalınırsa, birinin kolayca böyle şeyleri görmesini istemiyorum:

alias MYsql='mysql -uadmin -psecret'
wglatest(){ wget -O https://admin:[email protected]/latest; }
15
Bruno Bronosky

bunun için harika bir kaynak:

bize .bashrc'nizi gösterin

12
devin

Bunları her yere kurardım ama sonra onları 'elle' nasıl yapacağımı hatırlamanın daha iyi olduğunu fark ettim, çünkü 1) neler olduğunu tam olarak anlayacağım ve 2) bu yeteneklere erişebilse bile benim özel .bashrc yüklenmedi.

Bugünlerde takma ad kullandığım tek şey, gerçekten uzun satırların tekrarlayan yazımını azaltmaktır (ör. alias myhost='ssh -T [email protected] screen -dAr')

12
pjz

Bir gömlek ve küçük senaryolar sonsuza dek devam edebilir. Adam bash ve şeyler kendiniz yazmanızı öneririm. http://www.commandlinefu.com adresinde bazı iyi kısa bash şeyler. Heres birkaç şey.

#use extra globing features. See man bash, search extglob.
shopt -s extglob
#include .files when globbing.
shopt -s dotglob
#When a glob expands to nothing, make it an empty string instead of the literal characters.
shopt -s nullglob
# fix spelling errors for cd, only in interactive Shell
shopt -s cdspell
# vi mode
set -o vi

s() { # do Sudo, or Sudo the last command if no argument given
    if [[ $# == 0 ]]; then
        Sudo $(history -p '!!')
    else
        Sudo "[email protected]"
    fi
}

Prompt_command() {
    p=$PWD  # p is much easier to type in interactive shells
    # a special IFS should be limited to 1 liners or inside scripts.
    # Otherwise it only causes mistakes.
    unset IFS
}
Prompt_COMMAND=Prompt_command


# smart advanced completion, download from
# http://bash-completion.alioth.debian.org/
if [[ -f $HOME/local/bin/bash_completion ]]; then
    . $HOME/local/bin/bash_completion
fi


extract () { # extract files. Ignore files with improper extensions.
    local x
    ee() { # echo and execute
        echo "[email protected]"
        $1 "$2"
    }
    for x in "[email protected]"; do
        [[ -f $x ]] || continue
        case "$x" in
            *.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
    done
}
9
Ian Kelling

Bir sistem yöneticisi iseniz ve kök ayrıcalıklarıyla çok çalışıyorsanız Bash için küçük bir ipucu:

shopt -o noclobber

Bu, çıktıyı (> dosya adı) yeniden yönlendirirseniz zaten var olan bir dosyanın içeriğini yanlışlıkla yok etmenizi önler. Her zaman> | dosyaadı ile üzerine yazmaya zorlayabilirsiniz.

9
Cyberdrow

Benim bashrc aşağıdaki var

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 }'`
  if [ $SSH2_IP ] || [ $SSH_IP ] ; then
    local SSH_FLAG="@\h"
  fi
  PS1="$BLUE[\$(date +%H:%M)][\u$SSH_FLAG:\w]\\$ $NO_COLOUR"
  PS2="$BLUE>$NO_COLOUR "
  PS4='$BLUE+$NO_COLOUR '
}
__setprompt

Yerel bir makinede şöyle görünür:

[17:57][user:~]$

ancak uzaktan kumandada (ssh aracılığıyla):

[17:57][[email protected]:~]$
8
Anders Rasmussen

Bunu bir süredir .bashrc'de yaşadım ve yararlı buldum. Eğer kutuya sshing iseniz, oturum açtığınızda otomatik olarak ekran başlar, bu şekilde ağ bağlantınız kesildiğinde veya herhangi bir şekilde, yaptığınız her şeyi kaybetmezsiniz. Sonuna yerleştirilmelidir.

if [ "$PS1" != "" -a "${STARTED_SCREEN:-x}" = x  -a "${SSH_TTY:-x}" != x ]
then
STARTED_SCREEN=1 ; export STARTED_SCREEN
[ -d $HOME/lib/screen-logs ] || mkdir -p $HOME/lib/screen-logs

sleep 1
screen -U -RR && exit 0

echo "Screen failed! continuing with normal bash startup"
fi
6
baudtack

Birkaç bitim var:

# stop the pc speaker ever annoying me :)
setterm -bfreq 0

# don't put duplicate lines in the history. See bash(1) for more options
HISTCONTROL=ignoredups
# ... and ignore same sucessive entries.
HISTCONTROL=ignoreboth

# Expand the history size
HISTFILESIZE=10000 
HISTSIZE=100

# commands with leading space do not get added to history
HISTCONTROL=ignorespace

# am I on the internet?
alias 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 into the old directory
alias bd='cd "$OLDPWD"'

# install a package and automatically respond yes to confirmation Prompt
alias ins="Sudo aptitude install"

# remove a package and its configuration files
alias remp="Sudo aptitude purge"

# search for a package - apt-cache and aptitude search in different ways
# so have both
alias searchc="apt-cache search"
alias search="aptitude search"
alias show="aptitude show"
5
Hamish Downer

Yine de fortune için kaç takma ada ihtiyacınız var?

Beni şu anda bu sunucu üzerinde çalıştığım yere götüren bir cdd takma adı yapmayı seviyorum.

PATH yeniden tanımlama gerçekten de .bash_profile, değil .bashrc.

Düzenli olarak büyük bir screens kümesi kullandığım bir sunucuda, benim .bashrc olacak:

alias s1="screen -dr chaos1"
alias s2="screen -dr chaos2"
alias s3="screen -dr chaos3"
# ... and so on

(screens, örneğin screen -U -S chaos1.)

5
chaos

Diğer şeylerin yanı sıra, daha azına bazı varsayılanlar ayarladım, yanlışlıkla terminalimi kapatmayı önledim ve geçmişte ileriye doğru gezinmeyi etkinleştirdim:

# ignore case, long Prompt, exit if it fits on one screen, allow colors for ls and grep colors
export LESS="-iMFXR"

# must press ctrl-D 2+1 times to exit Shell
export IGNOREEOF="2"

# allow ctrl-S for history navigation (with ctrl-R)
stty -ixon

/ Var/log içindeki tüm günlükleri kuyrukla

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"
5
hoberion

Grep, egrep ve zgrep gibi tüm grep komutları için renklere sahip olmak için .bashrc dosyamda aşağıdakiler var

export GREP_OPTIONS='--color=auto'

'Klasörler' takma adı harika! Biraz değiştirdim, böylece boşluklu dizinler hatalara neden olmaz.

alias folders='find . -maxdepth 1 -type d -print0 | xargs -0 du -sk | sort -rn'
4
phoenix8

@ Pjz'nin şeyleri ayarlamak yerine manuel olarak bilmek hakkındaki yorumunu yankılarım. Özellikle çok sayıda makineye erişiyorsanız, her zaman yaptığım gibi.

Kesinlikle bildiğim biri set -o vi çünkü bash vi-düzenleme komutlarını biliyorum ve emacs olanları bilmiyorum (ayrıca, Ctrl + A screen ile karışıyor). Kendi kutularımda bunu .bashrc

Ayrıca export EDITOR=vim çünkü son dağıtımların birçoğu, vi beklerken bir şeyi düzenlemenizi gerektiren bir yardımcı program tarafından atılacak en sinir bozucu olan nano'ya varsayılan. : - /

Ayrıca İstemimi de değiştirdim. Uzun bir süre önce, son hata kodunu eklemenin sadece sevdiğim kadar yararlı olduğunu buldum. Ve İstemdeki tam yol adını seviyorum. Ve mevcut screen numarası da. Ve sadece geçerli kullanıcı ve ana bilgisayar adını eklemek mantıklı. İstemim PS1='\[email protected]\h $PWD $WINDOW [$?] \$ '

3
staticsan

İşte mayınlar:

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

# set variable identifying the chroot you work in (used in the Prompt below)
if [ -z "$debian_chroot" ] && [ -r /etc/debian_chroot ]; then
    debian_chroot=$(cat /etc/debian_chroot)
fi

# shows you if you are in a chroot or in a git repository
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;30m\]\h\[\033[00m\]:\[\033[01;34m\]\W\[\033[00m\]$(__git_ps1)\$ '


if [ -f /etc/bash_completion ]; then
    . /etc/bash_completion
fi

# two handy single-letter aliases

alias u='ls -hltr'
alias e='du * -cs | sort -nr | head'
alias g='grep -C5 --color=auto'

# creates a temp dir and cds into it
alias td='pushd $(mktemp -d)'

# find <dir> <file name regexp> <file contents regexp>
function fing { find "$1" -name "$2" -exec grep -H "$3" "{}" \; }

# shows "git diff" across any project in any subdirectory
alias git-differ='for g in $(find . -name ".git"); do g=${g%%.git};printf "$g\t\t\t";pu $g >/dev/null && git diff |wc -l; p >/dev/null; done'

# does git house keeping across any project in any subdirectory
alias git-housekeep='for g in $(find . -name ".git"); do g=${g%%.git};echo $g;pu $g && git repack && git gc --auto && p;done'

# Debian update
alias apg='aptitude update && aptitude dist-upgrade && aptitude clean'

# Quick way to serve files in HTTP from the local dir
alias webs='python -m SimpleHTTPServer'
3
Federico
3
raspi

Pencere boyutunun değişip değişmediğini görmek için bash kontrol edin (terminal pencerenizi yeniden boyutlandırırsanız satır düzenlemenin garipleşmesini önler)

shopt -s checkwinsize

Bu benim favorim. Bash --- overwriting yerine tarihe append neden olur. Genellikle bash'ı başlattığınızda, geçmişi belleğe yükler ve kapattığınızda bunu yazar. Bu, iki mermi yüklerseniz, her ikisini de kullanın, ardından her ikisini de kapatın, en son kapattığınız tüm değişikliklerin üzerine yazar.

Bu snippet, her şeyden önce yalnızca değişiklik eklemesine (tüm arabelleğin üzerine yazmak yerine) ve ardından her komuttan sonra değişiklikleri yazmasına neden olur. Aslında, canlı bir güncelleme .bash_history alırsınız, bu nedenle yeni bir terminal başlatırsanız, diğer çalışan oturumlarınızın geçmişindeki tüm komutlara sahip olursunuz.

shopt -s histappend
Prompt_COMMAND='history -a'
3
Dan Udey

İşte favorilerimden birkaçı:

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

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

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

Gönderen Linux ve Unix Yönetimini Otomatikleştirme Kirk Bauer (harika kitap!)

PS1='\n[\[email protected]\h]: \w\n$?> '

Başlangıçtaki satırsonu benim, önceki çıktı ile Bilgi İstemi arasında net bir çizgiye sahip olmayı seviyorum. Dinlenme:

\ u = kullanıcı adı

\ h = Ana bilgisayar

\ w = çalışma dizini

, $? = son dönüş kodu

2
Cawflands

Bu son değiştirilen dizine cd yaklaşık günde 20 kez kullanın:

cl()
{
        last_dir="$(ls -Frt | grep '/$' | tail -n1)"
        if [ -d "$last_dir" ]; then
                cd "$last_dir"
        fi
}

Bu ikisi, sık kullanılan dizinlerin kalıcı yer işaretlerini tutar:

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

crd(){
        lastdir="$(cat "$HOME/.lastdir_$1")">/dev/null 2>&1
        if [ -d "$lastdir" ]; then
                cd "$lastdir"
        else
                echo "no existing directory stored in buffer $1">&2
        fi
}
2
gz34

Bunlar benim favorilerim:

export HISTFILESIZE=1000000000
export HISTSIZE=1000000

Asla unutmayacak bir komut satırı geçmişine sahip olmayı seviyorum.

Ne yazık ki, bir süre sonra .bashrc'yi bir şekilde okumayan cron'dan bir Kabuk başlattım ve her şeyi 500 yıla kadar doğrayıp bir yıllık geçmişi yok ettim. Bu yüzden/etc/bashrc gitmek öneririz.

2
skiphoppy

Bu benim favorilerimden biri:

alias ssh='if [ "$(ssh-add -l)" = "The agent has no identities." ]; then ssh-add; fi; /usr/bin/ssh "[email protected]"'

Kimlik doğrulamayı unuttum, ssh-add after ssh oturumu yaparak yazımı boşa harcamadan bunu yapmama izin veriyor.

1
joshk0

Birkaç iyi olan

SSH'yi otomatik olarak tamamladığınız ana bilgisayar adını tamamlayın (yapılandırmanızda veya geçmişinizde varsa)

complete -o default -o nospace -W "$(/usr/bin/env Ruby -ne 'puts $_.split(/[,\s]+/)[1..-1].reject{|Host| Host.match(/\*|\?/)} if $_.match(/^\s*Host\s+/);' < $HOME/.ssh/config)" scp sftp ssh

Bazı kullanışlı bash tamamlama ayarları

bind "set completion-ignore-case on" # note: bind used instead of sticking these in .inputrc
bind "set bell-style none" # no bell
bind "set show-all-if-ambiguous On" # show list automatically, without double tab

Mac OS X için bazı yararlı olanlar

alias nospotlight='Sudo mdutil -a -i off'
alias cleardnscache='Sudo killall -HUP mDNSResponder'
alias ldd='otool -L'
alias seq='jot - '
alias eject='drutil eject'
1
lynxman
# vi ~/.bashrc # red/green terminal colors regarding exit code
export Prompt_COMMAND='PS1="`
if [[ \$? = "0" ]];
then echo "\\[\\033[0;32m\\]";
else echo "\\[\\033[0;31m\\]";
fi`[\[email protected]\h \w]\[\e[m\] "'
export PS1
1
LanceBaynes
IP_ADDRESS_BASH=`ip addr | grep -w inet | gawk '{if (NR==2) {$0=$2; gsub(/\//," "); print $1;}}'`
PS1="\h $IP_ADDRESS_BASH \w % "

Ve daha sonra, az önce oturum açtığınız makinenin IP'sini görüntüler.

1
mrkafk

Ben bu küçük snippet var böylece $ HOME/local içine birkaç şey el ile derlemek:

for prog in $HOME/local/*
do
    if [ -d "$prog/bin" ]; then
        export PATH=$prog/bin:$PATH
    fi
    if [ -d "$prog/include" ]; then
        export C_INCLUDE_PATH=$prog/include:$C_INCLUDE_PATH
    fi
    if [ -d "$prog/lib" ]; then
        export LD_LIBRARY_PATH=$prog/lib:$LD_LIBRARY_PATH
        export LIBRARY_PATH=$prog/lib:$LIBRARY_PATH
    fi
    if [ -d "$prog/man" ]; then
        export MANPATH=$prog/man:$MANPATH
    fi
    if [ -d "$prog/share/man" ]; then
        export MANPATH=$prog/share/man:$MANPATH
    fi
done

Ben de benim IRC istemcim ekranda çalışan bu yüzden bu var (.bashrc bir şey değil, ama yine de yararlı)

#!/usr/bin/env bash

RUNNING=`screen -ls | grep irc`
if [ "" = "$RUNNING" ]; then
   screen -S irc irssi
else
   screen -dr irc
fi
1
Daniel Huckstep

Bashrc'imi çok sayıda makinede kullanıyorum, bu yüzden LS'nin renklendirildiğinden emin olmak için bu küçük snippet'im var. Bu, uname hattını ayarlarsanız OSX makinelerinde, hatta * BSD'de düzeltilecektir.

if [ "$TERM" != "dumb" ]; then
    if [ `uname` == "Darwin" ]; then
       alias ls='ls -G'
    else
       eval "`dircolors -b`"
       alias ls='ls --color=auto'
    fi
fi

Ayrıca, bir dosyayı yedeklemek için bir komutum var, bir yapılandırma dosyasını değiştirmek üzereyseniz ve elden önce hızlı bir kopya oluşturmak istiyorsanız.

bu () { cp $1 ~/.backup/`basename $1`-`date +%Y%m%d%H%M`.backup ; }
1
Andrew Williams
mkdircd () { mkdir -p "[email protected]" && eval cd "\"\$$#\""; }

ecb () { emacsclient -n -a emacs [email protected] & } # open in emacsclient in the background
ecp () { emacsclient -n $(which [email protected]) & } # open a given file found in a $PATH in emacsclient
ecr () { Sudo_EDITOR="emacsclient -a emacs" sudoedit [email protected]; } # start emacsclient or emacs and open the file as root

eCf () { emacs --batch --eval "(byte-compile-file \"[email protected]\")"; } # byte-compile file
eCa () { emacs --batch --eval "(batch-byte-compile-if-not-done)" *.el; } # byte-compile all el files in the current directory and it's children
1
Adobe

. $ HOME/bin/git-İstemi/ git-Prompt.sh

0
brunoqc

Edge'i günlük CLI Grind'den çıkarmak için kullandığım birkaç takma ad ...

# I find myself doing this a lot
alias hg='history | grep '

# Likewise this, plus I'm always mistyping it...
alias findy='find . -name'

# sometimes you're just not sure you want to delete something...
alias trash='mv -t ~/.local/share/Trash/files --backup=t'

alias vb='vim ~/.bashrc'

# I find typing 'cd ..' less than optimal
alias up='cd ..'
alias 2up='cd ../../'
alias 3up='cd ../../../'
alias 4up='cd ../../../../'

# re-map caps lock key to be Ctrl
# (works on Linux, at least)
xmodmap -e "remove lock = Caps_Lock"
xmodmap -e "add control = Caps_Lock"

# helpful history settings:
export HISTCONTROL=ignoredups
export HISTCONTROL=ignoreboth
export HISTIGNORE=ls:ll:la:l:cd:pwd:exit:mc:su:df:clear:cls
0
yalestar

Bazen işte bir Solaris sistemi kullanmak zorundayım.

Ancak sistem, şifre dosyası (Kabuk ayarını içeren) de dahil olmak üzere Kukla ile merkezi olarak yönetilir.

Benim .bashrc bu nedenle şöyle bir şey okur:

%!/bin/bash
exec /bin/tcsh

:)

0
Alnitak

Yeniden boyutlandırdıktan sonra GNU ekranında pencere boyutunu düzeltmek için:

shopt -s checkwinsize

Bir dizindeki izinleri göstermek için ls -ld:

alias lld='ls -ld'

Geçmiş görüntüleme:

alias h='history | zgrep'

Ve doğrudan takma isme nasıl sıkıştırılacağını anlayamadığım zgrep betiğimin içeriği:

#!/bin/sh
grep "${*-.}"
0
Annika Backstrom

Ekrana bağımlıyım ve makinelere SSHing için aşağıdaki kısayolları kullanıyorum. Bu komut dosyasıyla, SSH'ye bir Ana Bilgisayar ve çalıştırma ekranına p hostname Veya aynı işlemi yapmak için yerel makinede o hostname Yazıyorum.

İlk olarak, çalıştırdığınız komut dosyasıyla aynı ada sahip bir SSH sunucusuna bağlanan bir komut dosyası. Buna simple_ssh Diyorum:

#!/bin/sh
BASENAME=$(basename $0)

if [ "$SCREEN" = "1" ]; then
    export SCREEN=0
    exec screen -RD scr$BASENAME -s $0
Elif [ "$SCREEN" = "2" ]; then
    exec ssh $BASENAME "[email protected]" -t 'screen -RD'
fi

exec ssh $BASENAME "[email protected]"

Bunu yolunuzda mars olarak işaretleyin ve marsssh mars İçin bir kısayol haline gelir:

[email protected]:bin$ ln -s simple_ssh mars
[email protected]:bin$ mars
[email protected]:~$

$SCREEN Ortam değişkeni, GNU ekranı bağlantıyla otomatik olarak yürütmenizi sağlar. SCREEN=1 Ekranı yerel olarak çalıştırır (diyelim ki, Ekran Ana Bilgisayarda yüklü değilse) ve SCREEN = 2 bunu Host'un kendisinde çalıştırır.

Bunu kısaltmak için birkaç takma ad kullanın:

alias o='SCREEN=1 exec'
alias p='SCREEN=2 exec'

Aşağıdaki gibi bir ~/.ssh/config Dosyası verilen tüm ana bilgisayarlarınız için simgeler oluşturmak üzere bir komut dosyası kullanın:

Host mars
    HostName mars.example.com
    User abackstrom

Komut dosyası, sshconfig2simplessh:

#!/bin/sh

BASENAME=$(basename "$0")
USAGE="Usage: $BASENAME /path/to/bin"

if [ -z "$1" ] ; then
    echo $USAGE
    exit 0
fi

if [ ! -d "$1" ] ; then
    echo "$1 is not a directory" >&2
    exit 1
fi

cd "$1"

HOSTS=$(grep '^Host ' < ~/.ssh/config | cut -d' ' -f2)

for Host in $HOSTS ; do
    if [ ! -e "$Host" ]; then
        echo ln -s simple_ssh "$Host"
        ln -s simple_ssh "$Host"
    fi
done
0
Annika Backstrom

Fötr şapka

alias install=Sudo yum install

Debian

alias install=Sudo apt-get update && Sudo apt-get install
0
egorgry