කෙනෙකුගේ .bashrc එකට එකතු කළ හැකි ප්‍රයෝජනවත් දේවල් මොනවාද? [වසා ඇත]


141

ඔබට නැතිව ජීවත් විය නොහැකි සහ මගේ ජීවිතය වඩාත් පහසු කරවන කිසිවක් තිබේද? මෙන්න මම භාවිතා කරන සමහරක් ('ඩිස්ක් අවකාශය' සහ 'ෆෝල්ඩර' විශේෂයෙන් පහසුය).

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

3
මෙය ප්‍රජා විකිය විය යුතුය
ටොරෝ

1
ප්‍රජා විකියක් බවට පත් කර ඇත. විනෝද වන්න.
ගරෙත්

4
තවත් නල? අඩු හෝ අඩුවෙන් ඔබ සතුටින් සිටිනු ඇතැයි මම
සිතමි

වැඩි වැඩියෙන් පෙර “වර්ග කිරීම” ඇති බව හැර, වර්ග කිරීම සඳහා සම්පූර්ණ ආදානය අවශ්‍ය බැවින්, අඩු-එෆ් මඟින් ඔබට වර්ග කිරීම වේගයෙන් බැලීමට ඉඩ දෙනු ඇත, එය ඉතා වේගවත් බව මම විශ්වාස කරමි.
ග්‍රීන්කිවි

1
යමෙකු උනන්දුවක් දක්වන්නේ නම්, ඔබේ අන්වර්ථ නාම පිරික්සීමට, ලැයිස්තුවක් තැනීමට සහ ප්‍රභව කිරීමට ඔබට ඉඩ සලසන සේවාවක් තිබේ: alias.sh
Sam152

Answers:


81

ලේඛනාගාරය උපුටා ගන්නා කුඩා පිටපතක් මා සතුව ඇත, එය අන්තර්ජාලයේ කොතැනක හෝ මට හමු විය:

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
 }

1
හොඳයි. කෙසේ වෙතත්, මතකයේ ඇති විධාන දැන ගැනීම සම්බන්ධයෙන් IDE / Vim තර්කය තිබේ. අපූරු පිටපතක් වුවද. අනිවාර්යයෙන්ම .bashrc චියර්ස් තුළට යන්න!
ගරෙත්

19
ලස්සන හා සරල ලිනක්ස් විධානයක් ඇත "unp", Unpacker මෙය සහ තවත් බොහෝ දේ කරයි.
සැන්ඩර් මාරචල්

විධානයට එක් අංගයක් නොමැත. එයට 7z පැකේජය boost.org/doc/libs/1_39_0/more/getting_started/… හි නිවැරදිව විවෘත කළ නොහැක . ගැටලුව විසඳන්නේ කෙසේදැයි ඔබ දන්නවාද?
Léo Léopold Hertz 준영

7
තාර වල නවතම අනුවාදයන් ස්වයංක්‍රීයව සංරක්ෂිත වර්ගය හඳුනා ගනී, එබැවින් 'tar xvf' මඟින් සියලුම සහය දක්වන ආකෘතීන් උකහා ගත හැකිය.
මහාචාර්ය මොරියාර්ටි

AndSander dtrx එකත් නරක නැහැ. එමඟින් ලේඛනාගාරය තමන්ගේම උප බහලුමකට උපුටා ගන්නා බවට වග බලා ගනී.
ටොබු

39

මම විවිධ යන්ත්‍ර භාවිතා කරන බැවින්, මම .bashrcනිතරම ලොග් වී ඇති සේවාදායකයේ නම ඇතුළත් කිරීමට විධාන විමසුමක් නිතරම සකසයි. මේ ආකාරයෙන්, මම ටෙල්නෙට් / එස්එස් හි මට්ටම් තුනක් ගැඹුරු වන විට, මම වැරදි කවුළුව තුළ වැරදි දේ ටයිප් නොකරමි. එය ඇත්ත වශයෙන්ම 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} "

මෙම ස්ක්‍රිප්ට් මඟින් ධාරක නාමයට විමසුම සකසා :)අවසන් විධානය සාර්ථක :(නම් සහ අවසාන විධානය අසමත් වුවහොත්.


$? චෙක් කිරීම ලස්සන පිළිවෙලක්, මම එයට කැමතියි.
ඩෙරොබට්

6
මම ද මගේ විමසුමේ තත්වය පෙන්වමි, නමුත් සංඛ්‍යාත්මක අගය තබා ශුන්‍ය නොවන නම් රතු පාට කරන්න, නැතිනම් කොළ පාටයි.
pgs

සිත්ගන්නාසුළු ....
ඉමාපොල්ලෝ

25

අඩු වශයෙන් මෑන්පේජ් සඳහා වර්ණය මෑන්පේජ් කියවීමට ටිකක් පහසු කරයි:

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 විචල්‍යය ලෙස භාවිතා කිරීමෙන් වර්ණ ගැන්වූ පිටු ලබා ගත හැකිය. ඔබට මෙම පේජරය මිනිසා සඳහා පමණක් භාවිතා කිරීමට අවශ්‍ය නම්, මේ වගේ PAGER විචල්‍යය භාවිතා කරන්න:

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

24

තවත් සීඩී නැත ../../../ .. නමුත් 4 දක්වා

කිසිවක් පෙරනිමියෙන් 1 කින් ඉහළ නොගියහොත්, තර්කය ලෙස සම්මත වූ සංඛ්‍යා ගණන වැඩි වන විට (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
}

ඉහළ () හි මෙම අනුවාදය අනවශ්‍ය ලෙස සංකීර්ණ බව පෙනේ. මම මෙම අනුවාදය භාවිතා කරමි: up () {cd $ (eval printf '../'%.0s {1 .. $ 1}) && pwd; }. ඔබට පැහැදිලිවම අවශ්‍ය නම් 'pwd' වෙත ඇමතුම ඉවත් කළ හැකිය.
මැතිව් ජී

මම මේ වගේ දෙයක් භාවිතා කරමි: # නාමාවලි සංචාලන අන්වර්ථයන්alias ..='cd ..' alias ...='cd ../..' alias ....='cd ../../..' alias .....='cd ../../../..'
මැට් කෙනෙෆික්

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"
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කිරීම මගේ මතකය අවහිර කිරීමට උපකාරී වේ.

මගේ එක් එක් තැටියේ ප්‍රමාණය සොයා ගැනීම සඳහා awkනිමැවුමේ නිශ්චිත තීරුවක් ලබා ගැනීම සඳහා මම බොහෝ විට ප්‍රතිදානය නල මාර්ගයෙන් df -h | awk '{print $2}'සොයා ගතිමි. මෙය පහසු කිරීම සඳහා, මම fawkමගේ .bashrc හි ශ්‍රිතයක් නිර්මාණය කළෙමි :

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

මට දැන් ධාවනය කළ හැකි df -h|fawk 2අතර එය හොඳ ටයිප් කිරීමක් ඉතිරි කරයි.

ඔබ පරිසීමකය නියම කිරීමට අවශ්ය නම් ( උදා: , awk -F:සඳහා /etc/passwd), මෙම කාර්යය පැහැදිලිවම හැසිරවිය නොහැක. දී තරමක්-හඹාගිය අනුවාදය මෙම ආලෝකය යනු අත්තනෝමතික හැසිරවිය හැකි awkක්ෂේත්ර සංඛ්යාව පෙර තර්ක (නමුත් තවමත් stdin සිට ආදාන අවශ්ය).


2
මම ssh අන්වර්ථය සහ ssh යතුරු ද භාවිතා කරමි ... එය සෑම දෙයක්ම පහසු කරයි
ඩෙවින්

1
ඉතිහාස පාලන ඉඟි සඳහා +1.
රෙනේ සාර්සෝ

2
ඔබට ධාරක නාම අන්වර්ථයන් .ssh / config තුළට දැමිය හැකිය. මෙම අවස්ථාවෙහිදී, 'පරිශීලක නාමය ඩයිනමයිට්' සමඟ 'සත්කාරක වලාකුළු' ඇතුළත් කරන්න
සයිරෙක්ස්

15

GPG සංකේතාත්මක bashrc

මට විශ්වාසයි අපි හැමෝටම අපේ බෂර්ක් එකට දැමීමට කැමති දේවල් ඇති අතර අපට පහසුවෙන් කියවිය නොහැකි සුඩෝරයින්. මේ සඳහා මගේ විසඳුම:

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

මා සතුව ජීපීජී නියෝජිතයෙකු සිටින බැවින් මගේ පුද්ගලික යතුරේ මුරපදය ඇතුළත් කළ යුත්තේ පැය කිහිපයකට වරක් පමණි. පද්ධතියේ භාවිතා කරන්නන් කෙරෙහි ඔබට තවමත් යම් විශ්වාසයක් තිබිය යුතුය, මන්ද ඔබ අර්ථ දක්වන ඔබේ විචල්‍යය, ක්‍රියාකාරිත්වය සහ අන්වර්ථයන් RAM වලින් ලබා ගත හැකි බැවිනි. කෙසේ වෙතත්, මම මෙය ප්‍රධාන වශයෙන් මගේ ලැප්ටොප් සඳහා භාවිතා කරමි. එය සොරකම් කළහොත්, යමෙකු පහසුවෙන් දේවල් දැකීමට මා කැමති නැත:

alias MYsql='mysql -uadmin -psecret'
wglatest(){ wget -O https://admin:secret@server.com/latest; }

එවැනි අවස්ථාවකදී ඔබ ඔබේ ඉතිහාසය සංකේතනය කරනවාද? ඔබේ $ නිවස සංකේතනය නොකරන්නේ ඇයි
Rqomey

QRqomey, සමස්ත කාරණය නම් මගේ මුරපද මගේ .bash_history හි නොපෙන්වන බැවින් මගේ ඉතිහාසය සංකේතනය කිරීමට මට අවශ්‍ය නැති නිසා ඒවා අන්වර්ථයන් හෝ ක්‍රියාකාරකම් මගින් සඟවා ඇති බැවිනි. ඒ MYsql < garbagecollect.sqlවෙනුවට ඔබට පෙනෙන්නේ ඒ වෙනුවටmysql -uadmin -psecret < garbagecollect.sql
බ un නෝ බ්‍රොනොස්කි


12

මම මේවා සෑම තැනකම සැකසීමට පුරුදුව සිටියද, ඒවා 'අතින්' කරන්නේ කෙසේදැයි මතක තබා ගැනීම වඩා හොඳ බව වටහා ගත් හෙයින්, එයින් අදහස් කළේ මා 1) සිදුවන්නේ කුමක්ද යන්න සම්පූර්ණයෙන් වටහා ගැනීම සහ 2) මෙම හැකියාවන්ට ප්‍රවේශ විය හැකි වුවත් මගේ අභිරුචි .bashrc ස්ථාපනය කර නැත.

මේ දිනවල මම අන්වර්ථ නාම භාවිතා කරන එකම දෙය නම් සැබවින්ම දිගු රේඛා නැවත නැවත ටයිප් කිරීම අඩු කිරීමයි (උදා. alias myhost='ssh -T user@my.remote.host screen -dAr')


2
දිගු ප්‍රයෝජනවත් විධානයන් කටපාඩම් කිරීම සම්බන්ධයෙන් එකඟ විය. මම බොහෝ විට ධාවනය වන සේවාදායකයන් මත 'ඩිස්ක් අවකාශය' ධාවනය කරන බව මට පෙනී ගියේය (එනම් php සෑම තැනකම කේන්ද්‍රගත වෙමින් පවතී).
ගරෙත්

ඔව්, මට ඇත්ත වශයෙන්ම ඒ හා සමාන දෙයක් තිබේ (du / home / * --max-deep 1 | sort -n> /home/.sizes) රාත්‍රියේදී ධාවනය වන නිසා මගේ පරිශීලකයින්ගේ අභ්‍යවකාශ පරිභෝජනය පිළිබඳව විශාල අවධානයක් යොමු කළ හැකිය. හවුල් යන්ත්‍රය.
pjz

1
ඔබ නිතිපතා භාවිතා කරන පද්ධති මත ඔබගේ අභිරුචි වින්‍යාසය යෙදවීමට එය පහසුය.
ටෝබු

ඔබට පසු විපරමක් කරනවා සේම, මෙය මම නිතරම කරන දෙයකි. ඩීඑන්එස් ඇනහිටීමකදී වුවද මම සෑම විටම අයිපී සමඟ මෙය කරන්නෙමි.
jwbensley

9

එහි ඇති එක් ලයිනර් සහ කුඩා ස්ක්‍රිප්ට් සදහටම පැවතිය හැකිය. මම නිර්දේශ කරන්නේ මෑන් බාෂ් සහ ඔබම දේවල් ලිවීමයි. Http://www.commandlinefu.com හි හොඳ කෙටි දේවල් කිහිපයක් . කරුණු කිහිපයක් මෙන්න.

#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 "$@"
    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 "$@"
        $1 "$2"
    }
    for x in "$@"; 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
}

2
මම ඔබේ history -pඋපක්‍රමයට කැමතියි .
ටොබු

9

ඔබ සිසාඩ්මින් නම් සහ මූල වරප්‍රසාද සමඟ වැඩ කරන්නේ නම් බාෂ් සඳහා කුඩා ඉඟියක්:

shopt -o noclobber

ඔබ ප්‍රතිදානය (> ගොනු නාමය) හරවා යැවුවහොත් දැනටමත් පවතින ගොනුවක අන්තර්ගතය අහම්බෙන් විනාශ වීමෙන් මෙය වළක්වනු ඇත. ඔබට සෑම විටම> | ගොනු නාමය සමඟ නැවත ලිවීමට බල කළ හැකිය.


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 }'`
  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][user@machine:~]$

6

මම මෙය මගේ .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

ඔබ ඔබේ පිවිසුම් කවචය තිරය ලෙස සකසා ඇත්නම් (සහ ඔබේ .screenrc හි උදා. බාෂ් වින්‍යාස කරන්න), ඔබ SSH කරන සෑම විටම තිරය ස්වයංක්‍රීයව විසන්ධි වූ තිර වෙත නැවත සම්බන්ධ වීමට උත්සාහ කරයි. එය අසමත් වුවහොත් එය නව තිරයක් නිර්මාණය කරනු ඇත.
ඩෑන් උදේ

An ඩෑන් උඩේ ඔබ මා යෝජනා කළ දේ මම උත්සාහ කර නැත, නමුත් මා විසින් පළ කරන ලද බැෂ් එක තිරය ආරම්භ කරනුයේ ඔබේ පිවිසුම් කවචය මෙන් තිරය සැකසීම මෙන් ම ssh පිවිසුම් වලින් පමණි. සමහර විට ඔබට අවශ්‍ය දේ. එය මට අවශ්‍ය දේ පමණක් නොවේ. :-)
baudtack

විසන්ධි වීම ගැන ඔබ කනස්සල්ලට පත්ව සිටී නම්, මෝෂ් පරීක්ෂා කරන්න, මම එය නිතරම භාවිතා කරන අතර එය බෙහෙවින් නිර්දේශ කරමි: mosh.mit.edu
jwbensley

5

fortuneකෙසේ වෙතත් ඔබට අන්වර්ථ කීයක් අවශ්‍යද?

මම cddදැනට එම සේවාදායකයේ වැඩ කිරීමට බොහෝ දුරට ඉඩ ඇති ඕනෑම තැනකට මා ගෙන යන අන්වර්ථයක් සෑදීමට මම කැමතියි .

PATHනැවත අර්ථ දැක්වීම සැබවින්ම අයත් වේ .bash_profile, නැත .bashrc.

මම සාමාන්‍යයෙන් විශාල ප්‍රමාණයේ කට්ටලයක් භාවිතා කරන සේවාදායකයක screen, මගේ .bashrcකැමැත්ත:

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

( screenS, උදාහරණයක් ලෙස, සමඟ සකසා ඇත screen -U -S chaos1.)


2
@chaos "කෙසේ වෙතත් ඔබට වාසනාව සඳහා අන්වර්ථ කීයක් අවශ්‍යද?". ජයග්‍රහණය සඳහා වූ. අසමත් වීම සඳහා frak (සහ විකල්ප අක්ෂර වින්‍යාසය).
ගරෙත්

කරුණාකර මෙම පියවර අනුගමනය කරන්න. 1) ඔබේ .bashrc හි ඔබේ මාර්ගය දිගු කරන්න. 2) 'bash' ටයිප් කරන්න. 3) 'echo $ PATH' ටයිප් කරන්න. 4) 'bash' ටයිප් කරන්න. 5) 'echo $ PATH' ටයිප් කරන්න. 6) ඔබ නොදැනුවත්වම මිනිසුන්ව පහත් කොට සැලකීම සහ අපහාස කිරීම සඳහා ඔලුවට පහර දෙන්න.
අවුල්සහගත

ඔබට තරමක් වලංගු හේතුවක් ඇති බව මට හැඟේ, නමුත් මගේ මුහුණට පහරක් එල්ල නොකෙරේ. ඔබගේ මාර්ගය දැනටමත් දීර් not කර නොතිබූ පිවිසුම් නොවන ෂෙල් වෙඩි ලබා ගැනීම පහසුය. එහි ගොළු බව මම නැවත කියවමි, මම මුලින් කියවූයේ ඔබ .bashrc හෝ වෙනත් දෙයක් තුළ වැදගත් විචල්‍යයන් සැකසිය යුතු නැති බව පැවසීමට උත්සාහ කළ බවයි.
ඉයන් කෙලින්ග්

සමහර විට කවුරුහරි "මගේ PATH විචල්‍යයන් .bashrc හෝ .bash_profile තුළ සැකසිය යුතුද?"
ගරෙත්

3
An ඉයන් කෙලින්ග්: මම ඇත්ත වශයෙන්ම කියන්නේ, එක් පිවිසුමකට වරක් සිදු කළ යුතු මෙහෙයුම් .bash_profile හා අයත් වන අතර ෂෙල් ක්ෂණිකව එක් වරක් සිදු කළ යුතු මෙහෙයුම් .bashrc ට අයත් වේ.
අවුල්සහගත

5

වෙනත් දේ අතර, මම අඩුපාඩු කිහිපයක් අඩු මුදලකට සකසා, අහම්බෙන් මගේ පර්යන්තය වැසීම වළක්වා ඉතිහාසය හරහා ඉදිරියට යා හැකිය:

# 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

+1 සඳහාexport IGNOREEOF="2"
මාටින් එම්.

5

මට බිටු කිහිපයක් තිබේ:

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

3
ඔබේ HISTCONTROL රේඛා එකිනෙක අභිබවා යයි, මන්ද එය ෂෙල් විචල්‍යයකි. නොසලකා හැරීම අවකාශය සහ නොසලකා හැරීම ඒකාබද්ධ කරයි.
ඇනිකා බැක්ස්ට්‍රෝම්

4
cd -
Bd

5

සියලුම ල logs ු-සටහන් / 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"


4

'ෆෝල්ඩර' අන්වර්ථය විශිෂ්ටයි! අවකාශය සහිත නාමාවලි දෝෂ ඇති නොවන පරිදි මම එය තරමක් වෙනස් කළෙමි.

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

2
ෆෝල්ඩර තැටි භාවිතයෙන් වර්ග කර ඇත, හොඳයි
dotjoe

3

දේවල් සැකසීමට වඩා අතින් දැන ගැනීම ගැන මම @ pjz ගේ ප්‍රකාශය ප්‍රතිරාවය කරමි. විශේෂයෙන් ඔබ බොහෝ යන්ත්‍ර මෙන් ප්‍රවේශ වන්නේ නම්, මම සෑම විටම කරන ආකාරයට.

ඒ නිසා මම අනිවාර්යයෙන්ම දන්නා දෙයක් නම් set -o vi, මම vi-editing විධාන බාෂ් වලින් දන්නා නිසාත්, ඊමාක්ස් ඒවා නොදන්නා නිසාත් (Ctrl + A මැදිහත් වේ screen). මගේම පෙට්ටිවල මම එය දැමුවෙමි.bashrc

මම export EDITOR=vimvi අපේක්ෂා කරන විට ඔබට යමක් සංස්කරණය කිරීමට අවශ්‍ය උපයෝගීතාවයකින් විසි කිරීම වඩාත් කරදරකාරී වන නැනෝ වෙත මෑතදී ඩිස්ට්‍රෝස් පෙරනිමි ගණනාවක් ඇතුළත් කළ යුතු බව මට පෙනේ. : - / /

මම මගේ විමසුම ද වෙනස් කරමි. අවසාන දෝෂ කේතය එක් කිරීම මා කැමති තරම් ප්‍රයෝජනවත් බව මම බොහෝ කලකට පෙර සොයා ගතිමි. ඒ වගේම මම විමසුමේ සම්පූර්ණ මාර්ග නාමයට කැමතියි. වත්මන් screenඅංකය ද ඇත. වත්මන් පරිශීලකයා සහ සත්කාරක නාමය ඇතුළත් කිරීම අර්ථවත් කරයි. මගේ විමසුමPS1='\u@\h $PWD $WINDOW [$?] \$ '


path w ඔබට සම්පූර්ණ මාර්ග නාමය ලබා දිය යුතුය ('/ home / me' '~' බවට පත්වන විට ඔබ ඔබේ නිවාස නාමාවලි ධූරාවලිය තුළ නොමැති නම් උදාහරණයක් ලෙස :-)
dr-jan

මම use w භාවිතා නොකරන "හැර" බිට් එක එයයි. :-)
staticsan

3

කවුළු ප්‍රමාණය වෙනස් වී ඇත්දැයි බැලීමට බාෂ් පරීක්‍ෂා කරන්න (ඔබ ඔබේ පර්යන්ත කවුළුව ප්‍රමාණය වෙනස් කළහොත් රේඛා සංස්කරණය අමුතු වීම වළක්වයි)

shopt -s checkwinsize

මෙය මගේ ප්‍රියතමය. බාෂ් ඉතිහාසය නැවත ලිවීම වෙනුවට එය එකතු කිරීමට හේතු වේ. සාමාන්‍යයෙන් ඔබ bash දියත් කරන විට, එය ඉතිහාසය මතකයට පටවන අතර ඔබ එය වසා දැමූ විට එය ලියයි. මෙයින් අදහස් කරන්නේ ඔබ ෂෙල් වෙඩි දෙකක් පටවන්නේ නම්, දෙකම භාවිතා කරන්න, පසුව දෙකම වසා දමන්න, ඔබ අවසන් වරට වසා දැමූ දෙය සියලු වෙනස්කම් නැවත ලියයි.

මෙම ස්නිපටය මඟින් එය පළමුවෙන්ම වෙනස්කම් පමණක් එකතු කරයි (සමස්ත බෆරය සමඟ නැවත ලිවීම වෙනුවට), ඉන්පසු සෑම විධානයකටම පසුව වෙනස්කම් ලිවීමට එය හේතු වේ. ඇත්ත වශයෙන්ම, ඔබට සජීවී යාවත්කාලීන කිරීමක් ලැබෙනු ඇත .bash_history, එබැවින් ඔබ නව පර්යන්තයක් ආරම්භ කරන්නේ නම්, ඔබේ අනෙකුත් ධාවන සැසි ඉතිහාසයේ සියලුම විධානයන් ඔබට ඇත.

shopt -s histappend
PROMPT_COMMAND='history -a'


3

මෙන්න පතල්:

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'

2

මේවා මගේ ප්‍රියතමයන්:

export HISTFILESIZE=1000000000
export HISTSIZE=1000000

කවදාවත් අමතක නොවන විධාන රේඛා ඉතිහාසයක් තිබීමට මම කැමතියි.

අවාසනාවකට මෙන්, මඳ වේලාවකට පසු මම .bashrc කියවා නැති ක්‍රොන් වලින් කවචයක් දියත් කර සියල්ල පේළි 500 දක්වා කපා, වසරක ඉතිහාසය විනාශ කර දැමුවෙමි. එබැවින් මේවා / etc / bashrc තුළට යාමට මම නිර්දේශ කරමි.


2

මෙන්න මගේ ප්‍රියතමයන් කිහිපයක්:

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

අවසන් වරට වෙනස් කළ නාමාවලියට සීඩී කිරීමට මම මෙය දිනකට 20 වතාවක් පමණ භාවිතා කරමි:

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

සිට Automating ලිනක්ස් සහ යුනික්ස් පරිපාලන කර්ක් බවර් විසින් (මහා පොත!)

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

ආරම්භයේ නව රේඛාව මගේ ය, පෙර ප්‍රතිදානය සහ විමසුම අතර පැහැදිලි රේඛාවක් තිබීමට මම කැමතියි. ඉතිරිය:

\ u = පරිශීලක නාමය

\ h = සත්කාරක

\ w = වැඩ කරන නාමාවලිය

$? = අවසාන ප්‍රතිලාභ කේතය


1

මම අතින් බොහෝ දේ $ 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

මම බොහෝ යන්ත්‍රවල මගේ bashrc භාවිතා කරමි, එබැවින් LS වර්ණ ගැන්වී ඇති බව තහවුරු කර ගැනීම සඳහා මෙම කුඩා ස්නිපටය මා සතුව ඇත. මෙය 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 ; }

Nd ඇන්ඩ rew: මම ඔබේ පළමු කේතය OSX හි අසාර්ථක ලෙස ධාවනය කරමි. එය මගේ කඩිනම් සැකසුම් බිඳ දමයි.
ලියෝ ලියෝපෝල්ඩ් හර්ට්ස් 준영

මෙහි හොඳින් ක්‍රියාත්මක වේ (10.6.X)
Rev316

1

මෙය මගේ ප්‍රියතම එකක්:

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

සත්‍යාපනය කිරීමට මට අමතක වී ඇත්නම් , ssh සැසිවාරයෙන් පසුව ssh-add කිරීමෙන් මගේ ටයිප් කිරීම නාස්ති නොකර එය කිරීමට මට ඉඩ දෙයි .


1

හොඳ යුවළක්

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

සමහර ප්‍රයෝජනවත් බාෂ් සම්පූර්ණ කිරීමේ සැකසුම්

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

මැක් ඕඑස් එක්ස් සඳහා ප්‍රයෝජනවත් සමහරක්

alias nospotlight='sudo mdutil -a -i off'
alias cleardnscache='sudo killall -HUP mDNSResponder'
alias ldd='otool -L'
alias seq='jot - '
alias eject='drutil eject'
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.