有什么东西是你生活中必不可少的,并且能让我的生活变得轻松很多?下面是我使用的一些东西(“磁盘空间”和“文件夹”特别方便)。
# 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"
答案1
我有一个提取档案的小脚本,我在网上的某个地方找到了它:
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
}
答案2
由于我使用许多不同的机器,我.bashrc
总是将命令提示符设置为包括我当前登录的服务器的名称等。这样,当我深入 telnet/ssh 的三层时,我不会在错误的窗口中输入错误的内容。rm -rf .
在错误的窗口中输入内容真的很糟糕!(注意:在家里,所有机器上的 telnet 都是禁用的。在工作中,ssh 并不总是启用的,而且我对很多机器都没有 root 访问权限。)
~/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} "
此脚本将提示设置为主机名,后跟上:)
一个命令是否成功以及:(
上一个命令是否失败。
答案3
less 中手册页的颜色使得手册页更易于阅读:
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'
也可以通过安装 most 并将其用作 MANPAGER 环境变量来获取彩色手册页。如果您希望此分页器不仅用于 man,请使用 PAGER 变量,如下所示:
export PAGER="/usr/bin/most -s"
答案4
我需要处理很多不同的机器,因此我最喜欢的一个方法是给每台需要经常通过 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"
历史记录非常有用,但默认情况下,大多数发行版的历史记录都会因每次退出 shell 而消失,而且一开始就无法保存太多内容。我喜欢有 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
在字段编号之前处理任意参数(但仍然需要从标准输入输入)。