You forgot the pwd after each ‘cd’.
ls*
Ls doesn’t tell them where they are, just what files exist in their current location.
Yup,
But I want to know if the file I’m looking for is in this directory or I have to cd… once more
That’s when locate piped to grep is your best friend.
alias ..='cd ..' #: up one directory alias ...='cd ../..' #: up two directories
The first two options (
autocd
andcdspell
) have been a lifesaver in fixing my frustrations with the defaultbash
settings (and even lets me stick with bash, instead of feeling I should move to zsh or any other shell.I can just type a foldername, tabcomplete it and press enter to go there. It’s great.
# == shopts == # https://www.gnu.org/software/bash/manual/html_node/The-Shopt-Builtin.html shopt -s autocd # cd into folder without cd, so 'dotfiles' will cd into the folder shopt -s cdspell # attempt spelling correcting on folders shopt -s direxpand # expand a partial dir name shopt -s checkjobs # stop shell from exit when there's jobs running shopt -s dirspell # attempt spelling correcting on folders shopt -s expand_aliases # aliases are expanded shopt -s histappend # append to the history file, don't overwrite it shopt -s histreedit # lets your re-edit old executed command shopt -s histverify # I'm confused. shopt -s hostcomplete # performs completion when a word contains an '@' shopt -s cmdhist # save multiple-line command in single history entry shopt -u lithist # multi-lines are saved with embedded newlines rather than semicolons; explictly unset shopt -s checkwinsize # update LINES and COLUMNS to fit output
$ cd .. $ ls $ cd .. $ ls
“hmm yes… everything seems to be in order”
cd .. pwd ls ls -a tree -d git status -bs cd .. ...
I ain’t reading allat
Then you invite chaos to sit in your lap, friend
I need a shell/plugin/tool/whatever that always shows me the content of the current dir in a little popup or something.
Anything I do in the shell is like cd this, ls, cd there, ls *, I feel like a have the navigational awareness of a amnesiac goldfish
A window, you say!?
You probably want rangerfm or vifm. They use miller columns for to show you your surrounding context.
Put this in bashrc or whatever flavour of shells’s bashrc you use:
function cs () { cd “$@” && ls }
I didnt remember the function sintax of bash so I just copied it from SO.
cs () { cd $1; ls ${@:2} }
You (probably) only want to pass the first argument to
cd
, this’ll send the rest tols
.Did that years ago, just called it cds. I also have an “up” command which is an alias to “cds …”. Oh, and I have a “setup server_name” they copy all my aliases to a server and create an alias that allow me to “ssh -A server_name” using only server_name.
Alternatively, you could use a TUI file manager. Once you get the navigation down you can manage things pretty quickly. Especially with ones that have options for dual directory layouts, like Midnight Commander or vifm.
It is called windows 2000 explorer and it’s great for file operations :) In Linux i have yet to find a really good replacement ;(
Try Dolphin. Press F4 to open the terminal view. It stays in dync with the gui so if you use cd in the terminal, the contents of the new folder will be shown.
That sounds really cool but I spent so much time making things look pretty …
What’s a GUI?
that, or you have to make ABSOLUTELY SURE that you haven’t accidentally pressed a button on your keyboard that has inevitably resulted in the total destruction of the directory contents
pwd
seems more appropriate thanls
Doesn’t let you rifle through things approvingly as you go. "Yes this is the correct directory because it has the three files I was looking at earlier–
You know what let’s do a ls -al just to be super sure it’s the right modification
fair point
Sometimes I throw off the linux admin reading my log by throwing in a pwd before going to the next one. Know it’s not gonna be in that directory you know?
alias cd..='cd ..' alias cd...='cd ../..' alias cd....='cd ../../.. alias cd.....='cd ../../../..'
Then forget all that and just use
cd ~
orcd /
No need for
~
- justcd
works as well.
In your rc: alias ..='cd ..' alias ...='cd ../..' alias ....='cd ../../..' Usage: 1/2/3 $ ... 1 $
That’s pretty neat
Or just use zsh
Yeah, let’s use whole different shell, because you can’t add some few aliases to your
.bashrc
.That’s not why I use a whole different shell. It just happens to be a perk of the one I use.
This is the way.
.....
for zsh usersExcuse me what? I’ve been multi cd’ing for years like a chump?
Easiest solution, use fish instead of bash! Default fish keybindings will allow you to just type . . or name a directory similar to how you could do with Zoxide.
Also, wait until you find about pushd and popd ;)
Really buried the lede there:
pushd
andpopd
are what I use instead ofcd
most times!
cd ..
⭡ ⏎
⭡ ⏎
⭡ ⏎
Oh, shit.
square
for i in { 1…4 }; do cd …; done
i use fish shell with https://github.com/nickeb96/puffer-fish
basically when i type
it expands to
../..
and adds another/..
for every additional dot i typeits similar to what the zsh users in the comment section are doing
I was about to post something similar. With fish you can do your own functions, right? So, you can pass any dots as arguments to a function called
cd
, so, for every extra dot after..
, you append a/..
at the end.yeah, but its less visual
cd .....
is harder to understand thancd ../../../..
also the extension work with any commend, not just
cd
deleted by creator
cd .. && ls !! !! !! !!
What’s so surprising?? What did you see in that dir??
Double-bang repeats the previous command. Great if you forget
sudo
.$ rm -rf <folder> permission denied $ sudo !!
Haha yeah I was just being silly
cd .. !! !! !!
cd … ls cd … ls cd … ls cd … ls
Depending on where you are, maybe just “cd”.
Smh when are you going to upgrade to dvd
Try zoxide
Installing zoxide led me to installing fzf, which has improved my terminal experience by about 35%, I already installed it in all the machines I’m managing
Got any more tools? :)
I can recommend featureful terminal emulator Kitty. I’d been using tmux and screen for over a decade, but now just get that functionality baked into the terminal. The only time I use tmux now is for remote sessions.
I am tmuxed all the time, the idea of integrating it into the terminal is interesting. I’ll need to think about it, thanks for the suggestion :)
eza is pretty cool, too. I replacement for ls which has built in tree view, dir size summary, and git status.
I don’t think there’s anything too unusual but here’s my nix packages
{ pkgs }: with pkgs; [ # General packages for development copier # Project scaffolding and templating fastlane jujutsu just # Project specific command runner mise # Tool version manager ngrok # Public tunnel ngrok.com sqlite pre-commit trufflehog # Scan for secrets in code repositories # Encryption and security tools age age-plugin-yubikey gnupg libfido2 # Container tools and SDKs colima podman podman-compose # Media-related packages dejavu_fonts ffmpeg hack-font noto-fonts noto-fonts-emoji meslo-lgs-nf yt-dlp # Text and terminal utilities bat btop # resource monitor #chezmoi # manage dotfiles; to try coreutils # GNU system tools curl delta exiftool f3 # flash drive verification tool fd # alternate find command fzf htop iftop jq # command line JSON tool # openssh ripgrep s3cmd shellcheck # static analysis for shell scripts tree tmux unison unrar unzip wget zip zoxide # fish specific fishPlugins.foreign-env fishPlugins.forgit fishPlugins.fzf-fish fishPlugins.tide fishPlugins.z # Python packages python3 virtualenv ]
Check out Atuin. Its another must have for me. When you push up arrow, it shows your command history in a very pleasing list. You can even generate account keys to migrate your history between PCs, but I’ve never bothered with it. You can also search past commands on the history menu.
You don’t need an account for it. That’s only for the migration keys.
Are you sure it’s not 33.3, repeating, of course? Just making sure.
Yeah, these two are fucking awesome. I recently installed zoxide and OMG, i dont know how ive lived without it.
Other awesome tools: Eza - prettier ls Yazi - vim-like file manager
zoxide, btop and lazygit are a must for me in any computer.
Yup. I usually have zoxide installed. It’s grand.