linux使用技巧

来源:互联网 发布:集体智慧编程在线观看 编辑:程序博客网 时间:2024/06/02 07:29

zz : http://www.ccvita.com/520.html

一,在命令行快速切换目录

1,使用 alias cd-sanguo='cd /Users/kimi/work/123guo/sanguo'就可以啦,以后直接用cd-sanguo就ok了。 用

功能说明:设置指令的别名。
语  法:alias[别名]=[指令名称]
参  数 :若不加任何参数,则列出目前所有的别名设置。
举    例 :ermao@lost-desktop:~$ alias
                 alias egrep='egrep --color=auto'
                 alias fgrep='fgrep --color=auto'
                 alias grep='grep --color=auto'
                 alias l='ls -CF'
                 alias la='ls -A'
                 alias ll='ls -alF'
                 alias ls='ls --color=auto'
说     明:用户可利用alias,自定指令的别名。若仅输入alias,则可列出目前所有的别名设置。 alias的效力仅及于该次登入的操作。若要每次登入是即自动设好别名,可在/etc/profile。
    还有,如果你想给每一位用户都生效的别名,请把alias la='ls -al' 一行加在/etc/bashrc最后面,bashrc是环境变量的配置文件。
    利用alias可以把很长的命令变成任意我们喜欢的简短的,  如果想永久生效,就把这条写入到 /etc/bashrc里面。

/etc/profile:此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行,并从/etc/profile.d目录的配置文件中搜集shell的设置,/etc/bashrc:为每一个运行bash shell的用户执行此文件,当bash shell被打开时,该文件被读取。~/.bash_profile:每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次!默认情况下,他设置一些环境变量,执行用户的.bashrc文件。

让/etc/profile文件修改后立即生效 # source /etc/profile



2,每天在命令行下,一大部分的工作都是一遍又一遍的输入 cd ~/some/very/deep/often-used/directory这样来切换目录,现在利用一个简单的配置可以实现如下效果:

首先进入我的日常工作目录,标记一个书签mark sanguo。这个修改完以后需要重新启动的。
   
cd /Users/kimi/work/123guo/sanguo

mark sanguo

以后我再进入这个目录只需要g sanguo即可

   
g sanguo   通过输入gs指令来浏览所有的标签
   
gs
#app -> /Applications
#sanguo -> /Users/kimi/work/123guo/sanguo

#web -> /Library/WebServer/Documents

 实现原理如下
sudo vim /etc/profile : 编辑/etc/profile文件并在尾部添加以下内容后强制保存 wq!
# mark
export MARKPATH=$HOME/.marks
#设置你的默认书签,可以直接输入g跳转
export MARKDEFAULT=sanguo


function g {
    local m=$1
    if [ "$m" = "" ]; then m=$MARKDEFAULT; fi
    cd -P "$MARKPATH/$m" 2>/dev/null || echo "No such mark: $m"
}


function mark {
    mkdir -p "$MARKPATH"
    local m=$1
    if [ "$m" = "" ]; then m=$MARKDEFAULT; fi
    rm -f "$MARKPATH/$m"
    ln -s "$(pwd)" "$MARKPATH/$m"
}


function unmark {
    local m=$1
    if [ "$m" = "" ]; then m=$MARKDEFAULT; fi
    rm -i "$MARKPATH/$m"
}


function gs {
    ls -l "$MARKPATH" | grep ^l | cut -d ' ' -f 13-
}


_completemarks() {
    local curw=${COMP_WORDS[COMP_CWORD]}
    local wordlist=$(ls -l "$MARKPATH" | grep ^l | cut -d ' ' -f 13)
    COMPREPLY=($(compgen -W '${wordlist[@]}' -- "$curw"))
    return 0
}


complete -F _completemarks g unmark





0 0
原创粉丝点击