প্রশ্ন কি দরকারী জিনিস এক এক যোগ করতে পারেন। Bashrc? [বন্ধ]


আপনি ছাড়া বাঁচতে পারেন না এবং আমার জীবন করতে হবে যে কিছু আছে তাই অনেক সহজ? এখানে কিছু যা আমি ব্যবহার করি ('ডিস্কস্পেস' এবং 'ফোল্ডারগুলি' বিশেষভাবে কার্যকর)।

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

142


উত্স


এই সম্প্রদায় উইকি করা উচিত - Toro
কমিউনিটি উইকি মধ্যে চালু। উপভোগ করুন। - Gareth
আরো পাইপ? আমি আপনাকে কম বা কম সঙ্গে সুখী হতে হবে bet - derobert
যেহেতু আরো আগে "সাজানোর" আছে, যেহেতু সাজানোর সম্পূর্ণ ইনপুট প্রয়োজন, কম - F আপনাকে শুধু দ্রুত সাজানোর দেখতে দেয়, এবং আমি এটি খুব দ্রুত ঝলসানি বেট। - GreenKiwi
কেউ আগ্রহী হলে কেবল একটি পরিষেবা রয়েছে যা আপনাকে ব্রাউজ করতে, একটি তালিকা তৈরি করতে এবং আপনার উপনামগুলি উৎস করতে দেয়: alias.sh - Sam152


উত্তর:


আমার কাছে একটি ছোট স্ক্রিপ্ট রয়েছে যা আর্কাইভগুলিকে বের করে দেয়, আমি নেটতে কোথাও এটি খুঁজে পেয়েছি:

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



খুশী হলাম। আবার, মেমরি থেকে কমান্ড জানতে সংক্রান্ত আইডিই / ভিআইএম যুক্তি আছে। যদিও স্ক্রিপ্ট কল্পনাপ্রসূত বিট। নিশ্চিতভাবে যাচ্ছে। Bashrc Cheers! - Gareth
"Unp" নামক একটি চমৎকার এবং সহজ লিনাক্স কমান্ড রয়েছে, যা অপপ্যাকার এই এবং আরও অনেক কিছু করে। - Sander Marechal
কমান্ড একটি অনুপস্থিত বৈশিষ্ট্য আছে। এটা 7z প্যাকেজ খুলতে পারে না boost.org/doc/libs/1_39_0/more/getting_started/... সঠিকভাবে। আপনি কিভাবে সমস্যা সমাধানের জানেন? - Léo Léopold Hertz 준영
Tar এর নতুন সংস্করণগুলি স্বয়ংক্রিয়ভাবে সংরক্ষণাগারের ধরন সনাক্ত করে, তাই কেবলমাত্র 'tar xvf' দ্বারা সমস্ত সমর্থিত বিন্যাসগুলি বের করতে পারে। - Prof. Moriarty
@ স্যান্ডার ডিট্রিক্স এতো খারাপ নয়। এটি নিশ্চিত করে যে আর্কাইভটি তার নিজস্ব উপড্রাইরেক্টরীতে অर्क। - Tobu


যেহেতু আমি বিভিন্ন মেশিন ব্যবহার, আমার .bashrc সর্বদা কমান্ড প্রম্পটটি অন্তর্ভুক্ত করতে, অন্যান্য জিনিসের মধ্যে, সার্ভারের নাম যা আমি বর্তমানে লগ ইন করেছি। এই ভাবে, যখন আমি টেলনেট / এসএসএস-তে তিনটি স্তর গভীর, আমি ভুল উইন্ডোতে ভুল জিনিস টাইপ করি না। এটা সত্যিই sucks rm -rf . ভুল উইন্ডোতে! (নোট: বাড়িতে, সব মেশিনে টেলনেটটি নিষ্ক্রিয় করা আছে। কাজে, এসএসএস সবসময় সক্রিয় থাকে না এবং আমার কাছে অনেকগুলি মেশিনে রুট অ্যাক্সেস নেই।)

আমি একটি স্ক্রিপ্ট আছে ~/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



ডলার? চেক একটি সুন্দর পরিষ্কার ধারণা, আমি এটা পছন্দ করি। - derobert
আমি আমার প্রম্পটে স্ট্যাটাস দেখাই, কিন্তু সাংখ্যিক মান রাখে এবং যদি অ-শূন্য থাকে তবে অন্যথায় সবুজ। - pgs
মজাদার.... - imapollo


কমপক্ষে ম্যানপ্যাজগুলির জন্য রঙটি সহজে পড়ার জন্য manpages তৈরি করে:

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'

রঙিন manpages এছাড়াও অধিকাংশ ইনস্টল এবং MANPAGER env পরিবর্তনশীল হিসাবে এটি ব্যবহার করে প্রাপ্ত করা যেতে পারে। যদি আপনি শুধুমাত্র এই ব্যক্তির জন্য এই প্যাজারটি ব্যবহার করতে চান তবে PAGER পরিবর্তনশীলটি ব্যবহার করুন:

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

25





কোন সিডি ../../../ কিন্তু আপ 4

সংখ্যার হিসাবে সংখ্যাটি পাস হিসাবে অনেক dirs যায়, যদি কেউ ডিফল্ট হিসাবে 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
}

24



আপ এই সংস্করণ () মনে হয় অপ্রয়োজনীয়ভাবে জটিল। আমি এই সংস্করণটি ব্যবহার করি: আপ () {সিডি $ (eval printf '../'%.0s {1 .. $ 1}) && pwd; }। আপনি যদি স্পষ্টতই চান তবে কলটি 'pwd' এ সরিয়ে ফেলতে পারেন। - Matthew G
আমি এই মত কিছু ব্যবহার: # ডিরেক্টরি ন্যাভিগেশন উপনাম alias ..='cd ..' alias ...='cd ../..' alias ....='cd ../../..' alias .....='cd ../../../..' - Matt Kenefick


আমি অনেকগুলি মেশিনের সাথে মোকাবিলা করি তাই আমার পছন্দসইগুলির মধ্যে একটি হল যে প্রতিটি মেশিনের জন্য আমি প্রায়শই এসএসএইচ করতে চাই:

alias claudius="ssh dinomite@claudius"

এটি একটি ভাল সেটআপ দরকারী .ssh/config এবং ssh কী মেশিনের মধ্যে hopping এমনকি সহজ করতে।

আমার পছন্দের উপাধি অন্য একটি ডিরেক্টরি আপ চলন্ত জন্য হয়:

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 আমার মেমরি jog সাহায্য করবে।

আমি প্রায়শই পাইপ আউটপুট খুঁজে পেয়েছি 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), এই ফাংশন সম্ভবত হ্যান্ডেল করতে পারে না। সামান্য-overhauled সংস্করণ এই জিস্ট ইচ্ছামত হ্যান্ডেল করতে পারেন awk ক্ষেত্র সংখ্যা আগে আর্গুমেন্ট (কিন্তু এখনও স্টেডিন থেকে ইনপুট প্রয়োজন)।


19



আমি ssh ওরফে এবং ssh কীগুলিও ব্যবহার করি ... এটি প্রত্যেকটি সহজ করে তোলে - devin
ইতিহাস নিয়ন্ত্রণ টিপস জন্য +1। - Rene Saarsoo
আপনি একই প্রভাবতে .ssh / config এ হোস্টনাম উপনামগুলি স্থাপন করতে পারেন। এই ক্ষেত্রে, 'ইউজারনেম ডিনোমাইট' সহ একটি এন্ট্রি 'হোস্ট ক্লাউডিয়াস' যোগ করুন - Sirex


GPG এনক্রিপ্টেড bashrc

আমি নিশ্চিত যে আমাদের সকলের কাছে আমরা আমাদের 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; }

15



আপনি যে ক্ষেত্রে আপনার ইতিহাস এনক্রিপ্ট না? কেন আপনার $ বাড়িতে এনক্রিপ্ট না - Rqomey
@ রকোমি, পুরো বিষয়টি হল আমার ইতিহাসকে এনক্রিপ্ট করতে হবে না কারণ আমার পাসওয়ার্ডগুলি আমার .bash_history তে দেখা যাচ্ছে না কারণ সেগুলি আলাইজেস বা ফাংশন দ্বারা লুকানো আছে। এটা আপনি মত জিনিস দেখতে MYsql < garbagecollect.sql পরিবর্তে mysql -uadmin -psecret < garbagecollect.sql - Bruno Bronosky


এই জন্য একটি ভয়ঙ্কর সম্পদ:

আমাদের আপনার .bashrc দেখান


12





আমি সব জায়গাতেই সেট আপ করতাম কিন্তু তারপর বুঝতে পেরেছিলাম যে কিভাবে 'ম্যানুয়ালি' করতে হয় তা মনে রাখা ভাল ছিল কারণ এর অর্থ হল 1) পুরোপুরি বুঝে যাচ্ছিল এবং 2) এই ক্ষমতাগুলি অ্যাক্সেস করতে থাকলেও আমার কাস্টম .bashrc ইনস্টল করা হয় নি।

এই দিনের জন্য আমি আলিযেস ব্যবহার করি এমন একমাত্র জিনিস সত্যিই দীর্ঘ লাইনগুলির পুনরাবৃত্তিমূলক টাইপের উপর কাটাতে হবে (উদাহরণস্বরূপ। alias myhost='ssh -T user@my.remote.host screen -dAr' )


12



দীর্ঘ দরকারী কমান্ড memorizing সংক্রান্ত সম্মত। যদিও আমি runaway সার্ভারে মোটামুটিভাবে 'ডিস্কস্পেস' চালাচ্ছি তবে আমি খুঁজে পাচ্ছি (অর্থাত PHP সমস্ত জায়গায় সিডমিং করা হয়)। - Gareth
হ্যাঁ, আমার আসলে এমন কিছু (du / home / * --max-depth 1 | sort -n> / home /.sizes) অনুরূপ কিছু আছে, তাই আমি আমার ব্যবহারকারীদের মহাকাশযানের উপর নজর রাখতে পারি শেয়ার্ড মেশিন। - pjz
যদিও আপনি নিয়মিত ব্যবহার করেন এমন সিস্টেমে আপনার কাস্টম কনফিগারেশনটি স্থাপন করা সহজ। - Tobu
এসএসএল ওরফে অনুসরণ করার মতোই, এইটা আমি সব সময়ই করি। যদিও DNS আয়ের ক্ষেত্রে আমি সবসময় আইপি দিয়ে এটি করি। - jwbensley


সেখানে এক liners এবং ক্ষুদ্র স্ক্রিপ্ট চিরতরে যেতে পারে। আমি মানুষ bash সুপারিশ এবং জিনিস নিজেকে লিখুন। কিছু ভাল ছোট bash স্টাফ এ http://www.commandlinefu.com। কিছু জিনিস heres।

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

9



আমি আপনার পছন্দ history -p কৌতুক। - Tobu


আপনি একটি sysadmin হয় এবং রুট বিশেষাধিকার সঙ্গে কাজ যদি Bash জন্য একটি সামান্য টিপ:

shopt -o noclobber

যদি আপনি আউটপুট (> ফাইলনাম) পুনঃনির্দেশিত করেন তবে এটি আপনাকে ইতিমধ্যে বিদ্যমান বিদ্যমান ফাইলের সামগ্রীটি হ্রাস করতে বাধা দেবে। আপনি সর্বদা> | ফাইলের নাম দিয়ে overwriting করতে বাধ্য করতে পারেন।


9