it-swarm-ko.tech

.bashrc에 어떤 유용한 것들을 추가 할 수 있습니까?

당신이없이 살 수없는 내 인생을 만들 것입니다 무엇입니까 SO 훨씬 쉬워? 여기에 내가 사용하는 일부가 있습니다 ( 'diskspace'& 'folders'가 특히 편리합니다).

# 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

아카이브를 추출하는 작은 스크립트가 있는데 인터넷 어딘가에 있습니다.

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

다른 컴퓨터를 너무 많이 사용하기 때문에 .bashrc는 항상 현재 로그인 한 서버 이름을 포함하도록 Prompt 명령을 설정합니다. 이렇게하면 telnet/ssh의 세 수준 깊이에있을 때 잘못된 창에 잘못된 것을 입력하지 않습니다. 잘못된 창에서 실제로 rm -rf .에 빠집니다! (참고 : 집에서는 모든 컴퓨터에서 텔넷이 비활성화되어 있습니다. 직장에서 ssh는 항상 활성화되어 있지 않으며 많은 컴퓨터에 대한 루트 액세스 권한이 없습니다.)

~/bin/setprompt에 의해 실행되는 스크립트 .bashrc가 있습니다.

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} "

이 스크립트는 프롬프트를 호스트 이름으로 설정하고 마지막 명령이 성공하면 :)로, 마지막 명령이 실패하면 :(로 설정합니다.

39
Eddie

맨 페이지의 색상이 적 으면 맨 페이지를 좀 더 쉽게 읽을 수 있습니다.

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'

컬러 맨 페이지는 대부분을 설치하고 MANPAGER env 변수로 사용하여 얻을 수도 있습니다. 이 호출기를 man뿐만 아니라 PAGER 변수를 사용하려면 다음과 같이 사용하십시오.

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

더 이상 cd ../../../ ..가 아니라 최대 4

기본적으로 1만큼 올라가지 않는 경우 인수로 전달 된 수만큼 많은 수의 dirs를 증가시킵니다 (stackoverflow.com의 주석 링크에 있고 비트를 수정 함)

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

나는 많은 다른 기계를 다루기 때문에 내가 가장 좋아하는 것 중 하나는 자주 SSH 해야하는 각 기계의 별명입니다.

alias claudius="ssh [email protected]"

기계들 사이의 호핑을보다 쉽게하기 위해 좋은 .ssh/configssh keys 를 설정하는 것도 유용합니다.

내가 가장 좋아하는 별명 중 하나는 디렉토리를 옮기는 것입니다.

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"
alias l="ls"
alias s="ls"

히스토리는 매우 유용 할 수 있지만 기본적으로 대부분의 배포판에서는 히스토리가 종료 될 때마다 히스토리가 사라지고 시작하기에는 많은 시간이 걸리지 않습니다. 나는 10,000 줄의 역사를 갖고 싶다.

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"

이런 식으로, 내가 전에 무언가를 해왔지만 구체적인 내용을 기억할 수 없다는 것을 안다면, 빠른 history | grep foo가 내 기억을 자극하는 데 도움이 될 것입니다.

각 디스크의 크기를 찾기 위해 df -h | awk '{print $2}'에서와 같이 출력의 특정 열을 얻기 위해 awk를 통해 출력을 파이핑하는 경우가 종종있었습니다. 이것을 쉽게하기 위해 .bashrc에 fawk 함수를 만들었습니다.

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

이제 df -h|fawk 2를 실행하면 타이핑을 상당히 줄일 수 있습니다.

구분 기호 ( eg , awk -F:/etc/passwd)를 지정해야하는 경우이 함수는 분명히 처리 할 수 ​​없습니다. 그. this Gist 에서 약간 개선 된 버전은 필드 번호 전에 임의의 awk 인수를 처리 할 수 ​​있지만 여전히 stdin의 입력이 필요합니다.

19
Drew Stephens

GPG 암호화 bashrc

우리 모두 sudoers가 쉽게 읽을 수 없도록 bashrc에 넣고 싶은 것을 가지고 있다고 확신합니다. 이것에 대한 나의 해결책은 다음과 같습니다.

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

GPG 에이전트가 있으므로 몇 시간마다 개인 키의 비밀번호 만 입력하면됩니다. 사용자가 정의한 변수, 함수 및 별명을 RAM에서 추출 할 수 있으므로 시스템 사용자를 여전히 신뢰해야합니다. 그러나 나는 주로 내 노트북에 사용합니다. 도난 당하면 다음과 같은 것을 쉽게 보지 않기를 바랍니다.

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

이것은 이것을위한 멋진 자료입니다 :

. bashrc 표시

12
devin

나는 이것을 사방에 설치했지만 1) 진행중인 것을 완전히 이해하고 2) 다음과 같은 경우 에도이 기능에 액세스 할 수 있기 때문에 '수동으로'수행하는 방법을 기억하는 것이 낫다는 것을 깨달았습니다. 내 사용자 지정 .bashrc가 설치되지 않았습니다.

요즘 별명을 사용하는 유일한 것은 실제로 긴 줄을 반복적으로 입력하는 것을 줄이는 것입니다 (예 : alias myhost='ssh -T [email protected] screen -dAr')

12
pjz

하나의 라이너와 작은 스크립트는 영원히 계속 될 수 있습니다. 나는 남자 배쉬와 글쓰기를 추천한다. http://www.commandlinefu.com 에 좋은 짧은 bash 물건. 여기 몇 가지가 있습니다.

#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

Sysadmin이고 루트 권한을 많이 사용하는 경우 Bash에 대한 작은 팁 :

shopt -o noclobber

이렇게하면 출력 (> 파일 이름)을 리디렉션 할 경우 기존 파일의 내용이 실수로 삭제되지 않습니다. > | filename을 사용하여 강제로 덮어 쓸 수 있습니다.

9
Cyberdrow

내 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 }'`
  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

로컬 컴퓨터에서는 다음과 같습니다.

[17:57][user:~]$

그러나 원격에서 (ssh를 통해) 다음과 같습니다.

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

나는 이것을 .bashrc에서 잠시 동안 가지고 있었고 그것이 도움이되는 것을 발견했다. 상자에 넣을 때 로그인 할 때 자동으로 시작 화면입니다. 그러면 네트워크 연결이 중단되거나 무엇이든간에 수행중인 모든 것을 잃지 않습니다. 끝에 배치해야합니다.

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

몇 가지 비트가 있습니다.

# 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

어쨌든 fortune에 대한 별칭은 몇 개입니까?

현재 해당 서버에서 작업 할 가능성이 가장 높은 곳으로 cdd 별칭을 만들고 싶습니다.

PATH 재정의는 실제로 .bash_profile가 아니라 .bashrc에 속합니다.

일상적으로 많은 screens 세트를 사용하는 서버에서 내 .bashrc는 다음과 같습니다.

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

(screens는 예를 들어 screen -U -S chaos1로 설정되었습니다.)

5
chaos

무엇보다도, 나는 기본값을 적게 설정하고 실수로 터미널을 닫지 않으며 기록을 통해 앞으로 탐색 할 수 있습니다.

# 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의 모든 로그를 조정하십시오.

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 및 zgrep와 같은 모든 grep 명령의 색상을 가지려면 .bashrc에 다음이 있습니다.

export GREP_OPTIONS='--color=auto'

'폴더'별칭은 훌륭합니다! 공백이있는 디렉토리가 오류를 일으키지 않도록 약간 수정했습니다.

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

나는 물건을 설정하는 대신 수동으로 아는 것에 대한 @pjz의 의견을 에코합니다. 특히 내가 항상하는 것처럼 많은 컴퓨터에 액세스하는 경우.

제가 확실히 아는 것은 set -o vi bash에서 vi-editing 명령을 알고 있고 emacs 명령도 모르기 때문에 Ctrl + A는 screen을 방해합니다. 내 상자에 .bashrc

또한 export EDITOR=vim 최근의 많은 배포판이 기본적으로 nano로 설정되어 있기 때문에 vi를 기대할 때 무언가를 편집 해야하는 유틸리티에 의해 가장 성가 시게됩니다. :-/

또한 프롬프트를 변경합니다. 오래 전에 마지막 오류 코드를 추가하는 것이 내가 좋아할만큼 유용하다는 것을 오랫동안 발견했습니다. 그리고 나는 프롬프트에서 전체 경로 이름을 좋아한다. 그리고 현재 screen 번호도 있습니다. 그리고 현재 사용자와 호스트 이름을 포함시키는 것이 합리적입니다. 내 프롬프트는 PS1='\[email protected]\h $PWD $WINDOW [$?] \$ '

3
staticsan

광산은 다음과 같습니다.

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

Bash에서 창 크기가 변경되었는지 확인하십시오 (터미널 창 크기를 조정하면 줄 편집이 이상하지 않도록)

shopt -s checkwinsize

이것은 내가 가장 좋아하는 것입니다. bash가 overwriting 대신 히스토리에 append가되게합니다. 일반적으로 bash를 시작하면 메모리에 기록이로드되고 닫으면 기록됩니다. 즉, 두 개의 셸을로드하고 두 셸을 모두 사용한 다음 모두 닫으면 마지막으로 닫은 것이 모든 변경 사항을 덮어 씁니다.

이 스 니펫은 우선 전체 버퍼로 덮어 쓰지 않고 변경 사항 만 추가 한 다음 모든 명령 후에 변경 사항을 작성하도록합니다. 실제로 .bash_history를 실시간으로 업데이트하므로 새 터미널을 시작하면 실행중인 다른 세션 기록의 모든 명령이 있습니다.

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

여기 내가 좋아하는 몇 가지가 있습니다.

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

Kirk Bauer의 Linux 및 Unix 관리 자동화

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

처음에 줄 바꿈은 내 것입니다. 이전 출력과 프롬프트 사이에 명확한 줄이 있습니다. 나머지는 :

\ u = 사용자 이름

\ h = 호스트

\ w = 작업 디렉토리

$? = 마지막 리턴 코드

2
Cawflands

나는 이것을 하루에 약 20 번 사용하여 마지막으로 변경된 디렉토리로 cd합니다.

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

이 두 가지는 자주 사용되는 디렉토리의 영구 책갈피를 유지합니다.

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

이들은 내가 좋아하는 것입니다 :

export HISTFILESIZE=1000000000
export HISTSIZE=1000000

나는 결코 잊을 수없는 명령 줄 역사를 가지고있다.

불행히도, 나는 cron에서 Shell을 시작했습니다. 그래서 나는/etc/bashrc에 들어가는 것이 좋습니다.

2
skiphoppy

이것은 내가 가장 좋아하는 것 중 하나입니다.

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

인증을 잊어 버린 경우 ssh-add after ssh 세션을 수행하는 동안 입력을 낭비하지 않고도 그렇게 할 수 있습니다.

1
joshk0

몇 가지 좋은 것들

SSH가 ssh 호스트 이름을 자동으로 완성하도록하십시오 (구성 또는 히스토리에있는 경우)

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

유용한 bash 완료 설정

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에 유용한 몇 가지

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 % "

그런 다음 방금 로그인 한 컴퓨터의 IP가 표시됩니다.

1
mrkafk

나는 많은 것들을 $ HOME/local에 수동으로 컴파일하여이 작은 스 니펫을 갖습니다.

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

또한 내 IRC 클라이언트가 있으므로 이것을 가지고 있습니다 (.bashrc는 아니지만 여전히 유용합니다))

#!/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를 사용하므로 LS가 채색되도록이 작은 발췌 문장이 있습니다. 이것은 uname 라인을 조정하면 OSX 시스템에서, 심지어 * BSD에서도 수정됩니다.

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

또한 파일을 백업하는 명령이있어 구성 파일을 변경하려고하고 사전에 빠른 사본을 만들고 싶을 때 유용합니다.

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-Prompt/ git-Prompt.sh

0
brunoqc

매일 CLI Grind에서 Edge를 제거하는 데 사용하는 몇 가지 별칭 ...

# 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

때로는 직장에서 Solaris 시스템을 사용해야합니다.

그러나 시스템은 비밀번호 파일 (쉘 설정 포함)을 포함하여 Puppet을 통해 중앙에서 관리됩니다.

나의 .bashrc 따라서 다음과 같이 읽습니다.

%!/bin/bash
exec /bin/tcsh

:)

0
Alnitak

크기 조정 후 GNU 화면에서 창 크기를 수정하려면 :

shopt -s checkwinsize

디렉토리에 대한 권한을 표시하려면 바로 가기 ls -ld :

alias lld='ls -ld'

히스토리보기 :

alias h='history | zgrep'

그리고 내 zgrep 스크립트의 내용은 별칭에 직접 넣는 방법을 알 수 없었습니다.

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

나는 화면에 중독되어 있으며 컴퓨터에 대한 SSHing을 위해 다음 단축키를 사용합니다. 이 스크립트를 사용하여 p hostname에서 호스트로 SSH 및 화면 실행 또는 o hostname 로컬 컴퓨터에서 동일하지만 실행 화면을 수행합니다.

먼저 실행중인 스크립트와 동일한 이름의 SSH 서버에 연결하는 스크립트입니다. 나는 이것을 simple_ssh :

#!/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]"

이것을 경로의 mars에 링크하면 mars은 (는) ssh mars :

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

$SCREEN 환경 변수를 사용하면 연결이있는 GNU 화면을 자동으로 실행할 수 있습니다. SCREEN=1는 화면을 로컬로 실행하고 (예 : 화면이 호스트에 설치되어 있지 않은 경우) SCREEN = 2는 호스트 자체에서 화면을 실행합니다.

몇 개의 별칭을 사용하여 바로 가기를 사용하십시오.

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

스크립트를 사용하여 ~/.ssh/config 다음과 같은 파일 :

Host mars
    HostName mars.example.com
    User abackstrom

스크립트 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

페도라

alias install=Sudo yum install

데비안

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