Notepad/enter/Coding Tips (Classical)/Terminal Tips/1. Terminals/Shells/Bash.md

57 lines
2.0 KiB
Markdown
Raw Permalink Blame History

This file contains invisible Unicode characters!

This file contains invisible Unicode characters that may be processed differently from what appears below. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to reveal hidden characters.

# Bash
Bash is a classic and should always be understood. After all, it was the first shell that you used so there's a bit of nostalgia surrounding it.
- `touch` creates the file named `zk_sync` and `chmod +x` makes the file an executable file, but we still need to say what shell will execute this file, and what exactly are the commands to be executed.
- [ bash command](https://discussions.apple.com/thread/252176464) for Big Sur if you ever decide to upgrade
- the oh-my-zsh version of bash is now regularly maintained through a git repo called [Bash-It](https://github.com/Bash-it/bash-it)
- check the file size of something in your directory by ```wc -c /Users/shwethajayaraj/qisket/file```
- you can further turn it into a bash variable by doing:
- ```myfilesize=$(wc -c "/etc/passwd" | awk '{print $1}')
printf "%d\n" $myfilesize
echo "$myfilesize"```
### Shell Scripting Tips:
- Safe shell scripting practices --> Make sure to use " " !
- example : `cat /Applications/Android Studio.app/Contents` will give you an error
- but `cat "/Applications/Android Studio.app/Contents"` will work!
- Export paths as an Env variable
- example: `export AS_HOME="/Applications/Android Studio.app/Contents"`
- Dealing with Path with Spaces in it:
- use either back slashes or quotation marks not both
- example:
```shell
export PATH=/Applications/Sublime\ Text\ 2.app/Contents/SharedSupport/bin/subl:$PATH
```
or
```shell
export PATH="/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl:$PATH"
```
Not both.
Try out the script and see if `the file or directory not found` error comes up.
---
### More Tips:
- a useful [bash history terminal command tweak ](https://danten.io/bash-history-searching-with-inputrc/)
You can just use `exec` to replace your current shell with a new shell:
Switch to `bash`:
```
exec bash
```
Switch to `zsh`:
```
exec zsh
```
This won't affect new terminal windows or anything, but it's convenient.