LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Linux - Newbie (https://www.linuxquestions.org/questions/linux-newbie-8/)
-   -   create a "bookmark" for navigating filesystem from the linux command line (https://www.linuxquestions.org/questions/linux-newbie-8/create-a-bookmark-for-navigating-filesystem-from-the-linux-command-line-755895/)

jlillywh 09-17-2009 08:22 AM

create a "bookmark" for navigating filesystem from the linux command line
 
I think I need to use the ln -s command for this but not sure. Could someone give me a good example of a way to make it so I don't have to keep re-typing

cd ~Dropbox/programming/ruby/function_library/pond_design

once per hour?

I would really like to just type

cd pond_design or something else shorter

What is the best way to do this kind of thing, in general?

GrapefruiTgirl 09-17-2009 08:28 AM

Code:

alias pond="cd ~Dropbox/programming/ruby/function_library/pond_design"
If the above works, you now just type pond to go to that directory.

You can add this to your .bash_profile or similar file, so it will remain in effect after reboot or whatever.

Sasha

onebuck 09-17-2009 08:42 AM

Hi,

I would like to add to what Sasha posted is that you could setup a .bashrc & .bash_profile for your user;

Code:

sample .bash_profile;

~$ cat .bash_profile
# .bash_profile      <<< Begin of File
#08-30-06 12:21
#
# Source .bashrc
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi                    <<< End Of File (EOF)

Code:

sample .bashrc;
:~$ cat .bashrc

#.bashrc          <<<< begin of file
#08-30-06 12:20

# Add bin to path

export PATH="$PATH:/sbin:/usr/sbin:$HOME/bin"

#export PATH="$PATH:$HOME/bin"

# Dynamic resizing
shopt -s checkwinsize

# Custom prompt
#PS1='\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '

#08-29-06 11:40

if [ `id -un` = root ]; then
  PS1='\[\033[1;31m\]\h:\w\$\[\033[0m\] '
 else
  PS1='\[\033[1;32m\]\h:\w\$\[\033[0m\] '
fi

#
# Add color
eval `dircolors -b`

# User defined aliases
alias cls='clear'
alias clls='clear; ls'
alias ll='ls -l'
alias lsa='ls -A'
alias lsg='ls | grep'
alias lsp='ls -1 /var/log/packages/ > package-list'
alias na='nano'
alias web='links -g -download-dir ~/ www.google.com'
alias pond="cd ~Dropbox/programming/ruby/function_library/pond_design"

#08-29-06 11:50

#To clean up and cover your tracks once you log off
#Depending on your version of BASH, you might have to use
# the other form of this command
  trap "rm -f ~$LOGNAME/.bash_history" 0

#The older KSH-style form
#  trap 0 rm -f ~$LOGNAME/.bash_history <<< End Of File (EOF)

The .bashrc is very useful!

jlillywh 09-17-2009 12:56 PM

create new .bash_aliases
 
That is a great idea. Thank you. However, I'm having a hard time understanding everything you are doing with the .bashrc and .bash_profile.

Is there a way to simply create a .bash_aliases and put them in there?

I did this:

# User defined aliases
alias pond="cd ~/Dropbox/programming/ruby/function_library/pond_design"

and saved that in .bash_aliases but when I type pond the bash command is not recognized. Can you explain what I have to do so that it is recognized?

Thank you!

onebuck 09-17-2009 01:17 PM

Hi,

Quote:

Originally Posted by jlillywh (Post 3687283)
That is a great idea. Thank you. However, I'm having a hard time understanding everything you are doing with the .bashrc and .bash_profile.

Is there a way to simply create a .bash_aliases and put them in there?

I did this:

# User defined aliases
alias pond="cd ~/Dropbox/programming/ruby/function_library/pond_design"

and saved that in .bash_aliases but when I type pond the bash command is not recognized. Can you explain what I have to do so that it is recognized?

Thank you!

If you copy each of the text samples to their own file then you can use them. The first sample is a '.bash_profile' where I test for the existance of '.bashrc' then execute if there. The second sample is '.bashrc' that you would have your commands that you wish available. The first part test for 'root' if so then the colorized prompt is set red with the prompt information. Otherwise it is set to green for a normal user for prompt. Then the alias is setup. At the close is just for cleanup.

So if you save each sample to the required files for '.bashrc' and '.bash_profile' you would have things set for the next time you enter the console. There after for each time you enter your console you would have things setup this way until you change or remove the files.

i92guboj 09-17-2009 01:45 PM

~/.bashrc and ~/.bash_profile are two bash initialization files, ~/.bash_aliases is not, and bash has no means to know that. Bash can't open every single file in your home directory to see what's inside of it.

Bash will source ~/.bashrc when it's launched in a non-login interactive mode, for example, when you use an xterm or a similar terminal emulator. ~/.bash_profile will be read automatically when you use bash as a login shell, for example when you login in command line instead of a graphical login manager.

Hence, all the bash related stuff goes either into ~/.bashrc, ~/.bash_profile, or both. Or, if you want to set it globally, into /etc/profile. However, I don't understand what the difficulty is. It isn't any more complicated to create a file called ~/.bashrc than it is to create one named ~/.bash_aliases...

slakmagik 09-17-2009 02:34 PM

Well, if you want a separate file for aliases, it's also simple enough to source that interactively or from ~/.bashrc. Just type '. ~/.bash_aliases' or add it to your ~/.bashrc.

You might also look into popd/pushd, cdable_vars, and CDPATH.

CDPATH="whatever_you_like:~Dropbox/programming/ruby/function_library/"
cd pond_design

i92guboj 09-17-2009 02:52 PM

Yes, there are thousands of ways to make it more complicated.

jlillywh 09-17-2009 03:23 PM

onebuck, thank you. I simply copied your scripts - created .bashrc and .bash_profile. It works like a charm.

onebuck 09-18-2009 06:05 AM

Hi,

I'm glad it worked for you. 'KISS' is always the best!

BTW, as the OP you can mark the thread as [SOLVED] via the Thread Tools. Courtesy to others.


All times are GMT -5. The time now is 06:51 AM.