mirror of
https://github.com/LCTT/TranslateProject.git
synced 2025-01-04 22:00:34 +08:00
ad9cffd8ed
sources/tech/20191107 Tuning your bash or zsh shell on Fedora Workstation and Silverblue.md
261 lines
7.3 KiB
Markdown
261 lines
7.3 KiB
Markdown
[#]: collector: (lujun9972)
|
||
[#]: translator: ( )
|
||
[#]: reviewer: ( )
|
||
[#]: publisher: ( )
|
||
[#]: url: ( )
|
||
[#]: subject: (Tuning your bash or zsh shell on Fedora Workstation and Silverblue)
|
||
[#]: via: (https://fedoramagazine.org/tuning-your-bash-or-zsh-shell-in-workstation-and-silverblue/)
|
||
[#]: author: (George Luiz Maluf https://fedoramagazine.org/author/georgelmaluf/)
|
||
|
||
Tuning your bash or zsh shell on Fedora Workstation and Silverblue
|
||
======
|
||
|
||
![][1]
|
||
|
||
This article shows you how to set up some powerful tools in your command line interpreter (CLI) shell on Fedora. If you use _bash_ (the default) or _zsh_, Fedora lets you easily setup these tools.
|
||
|
||
### Requirements
|
||
|
||
Some installed packages are required. On Workstation, run the following command:
|
||
|
||
```
|
||
sudo dnf install git wget curl ruby ruby-devel zsh util-linux-user redhat-rpm-config gcc gcc-c++ make
|
||
```
|
||
|
||
On Silverblue run:
|
||
|
||
```
|
||
sudo rpm-ostree install git wget curl ruby ruby-devel zsh util-linux-user redhat-rpm-config gcc gcc-c++ make
|
||
```
|
||
|
||
**Note**: On Silverblue you need to restart before proceeding.
|
||
|
||
### Fonts
|
||
|
||
You can give your terminal a new look by installing new fonts. Why not fonts that display characters and icons together?
|
||
|
||
##### Nerd-Fonts
|
||
|
||
Open a new terminal and type the following commands:
|
||
|
||
```
|
||
git clone https://github.com/ryanoasis/nerd-fonts ~/.nerd-fonts
|
||
cd .nerd-fonts
|
||
sudo ./install.sh
|
||
```
|
||
|
||
##### Awesome-Fonts
|
||
|
||
On Workstation, install using the following command:
|
||
|
||
```
|
||
sudo dnf fontawesome-fonts
|
||
```
|
||
|
||
On Silverblue, type:
|
||
|
||
```
|
||
sudo rpm-ostree install fontawesome-fonts
|
||
```
|
||
|
||
### Powerline
|
||
|
||
Powerline is a statusline plugin for vim, and provides statuslines and prompts for several other applications, including bash, zsh, tmus, i3, Awesome, IPython and Qtile.
|
||
|
||
Fedora Magazine previously posted an [article about powerline][2] that includes instructions on how to install it in the vim editor. You can also find more information on the official [documentation site][3].
|
||
|
||
#### Installation
|
||
|
||
To install powerline utility on Fedora Workstation, open a new terminal and run:
|
||
|
||
```
|
||
sudo dnf install powerline vim-powerline tmux-powerline powerline-fonts
|
||
```
|
||
|
||
On Silverblue, the command changes to:
|
||
|
||
```
|
||
sudo rpm-ostree install powerline vim-powerline tmux-powerline powerline-fonts
|
||
```
|
||
|
||
**Note**: On Silverblue, before proceeding you need restart.
|
||
|
||
#### Activating powerline
|
||
|
||
To make the powerline active by default, place the code below at the end of your _~/.bashrc_ file
|
||
|
||
```
|
||
if [ -f `which powerline-daemon` ]; then
|
||
powerline-daemon -q
|
||
POWERLINE_BASH_CONTINUATION=1
|
||
POWERLINE_BASH_SELECT=1
|
||
. /usr/share/powerline/bash/powerline.sh
|
||
fi
|
||
```
|
||
|
||
Finally, close the terminal and open a new one. It will look like this:
|
||
|
||
![][4]
|
||
|
||
### Oh-My-Zsh
|
||
|
||
[Oh-My-Zsh][5] is a framework for managing your Zsh configuration. It comes bundled with helpful functions, plugins, and themes. To learn how set Zsh as your default shell this [article][6].
|
||
|
||
#### Installation
|
||
|
||
Type this in the terminal:
|
||
|
||
```
|
||
sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
|
||
```
|
||
|
||
Alternatively, you can type this:
|
||
|
||
```
|
||
sh -c "$(wget https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)"
|
||
```
|
||
|
||
At the end, you see the terminal like this:
|
||
|
||
![][7]
|
||
|
||
Congratulations, Oh-my-zsh is installed.
|
||
|
||
#### Themes
|
||
|
||
Once installed, you can select your theme. I prefer to use the Powerlevel10k. One advantage is that it is 100 times faster than powerlevel9k theme. To install run this line:
|
||
|
||
```
|
||
git clone https://github.com/romkatv/powerlevel10k.git ~/.oh-my-zsh/themes/powerlevel10k
|
||
```
|
||
|
||
And set ZSH_THEME in your _~/.zshrc_ file
|
||
|
||
```
|
||
ZSH_THEME=powerlevel10k/powerlevel10k
|
||
```
|
||
|
||
Close the terminal. When you open the terminal again, the Powerlevel10k configuration wizard will ask you a few questions to configure your prompt properly.
|
||
|
||
![][8]
|
||
|
||
After finish Powerline10k configuration wizard, your prompt will look like this:
|
||
|
||
![][9]
|
||
|
||
If you don’t like it. You can run the powerline10k wizard any time with the command _p10k configure_.
|
||
|
||
#### Enable plug-ins
|
||
|
||
Plug-ins are stored in _.oh-my-zsh/plugins_ folder. You can visit this site for more information. To activate a plug-in, you need edit your _~/.zshrc_ file. Install plug-ins means that you are going create a series of aliases or shortcuts that execute a specific function.
|
||
|
||
For example, to enable the firewalld and git plugins, first edit ~/.zshrc:
|
||
|
||
```
|
||
plugins=(firewalld git)
|
||
```
|
||
|
||
**Note**: use a blank space to separate the plug-ins names list.
|
||
|
||
Then reload the configuration
|
||
|
||
```
|
||
source ~/.zshrc
|
||
```
|
||
|
||
To see the created aliases, use the command:
|
||
|
||
```
|
||
alias | grep firewall
|
||
```
|
||
|
||
![][10]
|
||
|
||
#### Additional configuration
|
||
|
||
I suggest the install syntax-highlighting and syntax-autosuggestions plug-ins.
|
||
|
||
```
|
||
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
|
||
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
|
||
```
|
||
|
||
Add them to your plug-ins list in your file _~/.zshrc_
|
||
|
||
```
|
||
plugins=( [plugins...] zsh-syntax-highlighting zsh-autosuggestions)
|
||
```
|
||
|
||
Reload the configuration
|
||
|
||
```
|
||
source ~/.zshrc
|
||
```
|
||
|
||
See the results:
|
||
|
||
![][11]
|
||
|
||
### Colored folders and icons
|
||
|
||
Colorls is a Ruby gem that beautifies the terminal’s ls command, with colors and font-awesome icons. You can visit the official [site][12] for more information.
|
||
|
||
Because it’s a ruby gem, just follow this simple step:
|
||
|
||
```
|
||
sudo gem install colorls
|
||
```
|
||
|
||
To keep up to date, just do:
|
||
|
||
```
|
||
sudo gem update colorls
|
||
```
|
||
|
||
To prevent type colorls everytime you can make aliases in your _~/.bashrc_ or _~/.zshrc_.
|
||
|
||
```
|
||
alias ll='colorls -lA --sd --gs --group-directories-first'
|
||
alias ls='colorls --group-directories-first'
|
||
```
|
||
|
||
Also, you can enable tab completion for colorls flags, just entering following line at end of your shell configuration:
|
||
|
||
```
|
||
source $(dirname ($gem which colorls))/tab_complete.sh
|
||
```
|
||
|
||
Reload it and see what it happens:
|
||
|
||
![][13]
|
||
|
||
![][14]
|
||
|
||
--------------------------------------------------------------------------------
|
||
|
||
via: https://fedoramagazine.org/tuning-your-bash-or-zsh-shell-in-workstation-and-silverblue/
|
||
|
||
作者:[George Luiz Maluf][a]
|
||
选题:[lujun9972][b]
|
||
译者:[译者ID](https://github.com/译者ID)
|
||
校对:[校对者ID](https://github.com/校对者ID)
|
||
|
||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||
|
||
[a]: https://fedoramagazine.org/author/georgelmaluf/
|
||
[b]: https://github.com/lujun9972
|
||
[1]: https://fedoramagazine.org/wp-content/uploads/2019/10/tuning-shell-816x345.jpg
|
||
[2]: https://fedoramagazine.org/add-power-terminal-powerline/
|
||
[3]: https://powerline.readthedocs.io/en/latest/
|
||
[4]: https://fedoramagazine.org/wp-content/uploads/2019/10/terminal_bash_powerline.png
|
||
[5]: https://ohmyz.sh
|
||
[6]: https://fedoramagazine.org/set-zsh-fedora-system/
|
||
[7]: https://fedoramagazine.org/wp-content/uploads/2019/10/oh-my-zsh.png
|
||
[8]: https://fedoramagazine.org/wp-content/uploads/2019/10/powerlevel10k_config_wizard.png
|
||
[9]: https://fedoramagazine.org/wp-content/uploads/2019/10/powerlevel10k.png
|
||
[10]: https://fedoramagazine.org/wp-content/uploads/2019/10/aliases_plugin.png
|
||
[11]: https://fedoramagazine.org/wp-content/uploads/2019/10/sintax.png
|
||
[12]: https://github.com/athityakumar/colorls
|
||
[13]: https://fedoramagazine.org/wp-content/uploads/2019/10/ls-1024x495.png
|
||
[14]: https://fedoramagazine.org/wp-content/uploads/2019/10/ll-1024x495.png
|