zsh、vim、Bash Shell使用教程

zsh简介

  • 官网:Zsh
  • Zsh 属于 Shell 的一种,和 Bash 一样,但比 Bash 更好用,Zsh 完全兼容 Bash,拥有极其丰富的插件,其强大的自动补全参数、文件名以及自定义功能,可以大大提高我们使用 Linux 的效率。
  • 查看 Linux 支持哪些 shell

    cat /etc/shells

查看 Linux 当前使用 shell

echo $SHELL

Bash简介

bash(GNU Bourne-Again Shell)是最常用的一种shell,是当前大多数Linux发行版的默认Shell。

Shell简介

shell是一个命令语言解释器,是用户和Linux内核之间的运行在终端中的文本互动接口程序。

Shell相当于是一个翻译,把我们在计算机上的操作或我们的命令,翻译为计算机可识别的二进制命令,传递给内核,以便调用计算机硬件执行相关的操作;同时,计算机执行完命令后,再通过Shell翻译成自然语言,呈现在我们面前;

当用户成功登入系统后shell就启动了,并始终作为你与系统内核的交互手段直至你退出系统;

其他的shell还有:sh、bash、zsh、ksh、rsh、csh等。

shell命令可以分为以下三类:

  • 内建函数(built-in function):shell自带的功能
  • 可执行文件(executable file):保存在shell之外的脚本,提供了额外的功能。
  • 别名(alias):给某个命令的简称

vim 简介

  • 官网:welcome home : vim online
  • Vim是从 vi 发展出来的一个文本编辑器。代码补全、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。

Vim其实是vi的功能增强版,vim = vi + IMproved。.vimrc文件为Vim的配置文件,默认在home目录下,相关配置可见文件描述;

zsh 与 vim 基本配置

1.安装zsh和vim,安装后对zsh和vim进行配置使用;如下复制安装好的目录到home根目录

2.执行配置文件替换

./LINUX_TOOL/install.sh

脚本配置如下:

# 为原来文件备份
mv $HOME/.vim						$HOME/.vim_backup
mv $HOME/.vimrc						$HOME/.vimrc_backup
mv $HOME/.oh-my-zsh					$HOME/.oh-my-zsh_backup
mv $HOME/.zshrc						$HOME/.zshrc_backup
mv $HOME/.tmux.conf					$HOME/.tmux.conf_backup
# 在$HOME下创建快捷方式
tool_path=$(cd "$(dirname "$0")"; pwd)
ln -s $tool_path/vim/.vim					$HOME/
ln -s $tool_path/vim/.vimrc					$HOME/
ln -s $tool_path/zsh/.oh-my-zsh				$HOME/
ln -s $tool_path/zsh/.zshrc					$HOME/
ln -s $tool_path/zsh/.tmux					$HOME/
ln -s $tool_path/zsh/.tmux/.tmux.conf		$HOME/
# 在$HOME下创建tmux工作区间保存目录
rm -rf	$HOME/.tmux_workspace_save
mkdir 	$HOME/.tmux_workspace_save
# 在$HOME下创建undo历史保存目录
rm -rf	$HOME/.undo_history
mkdir 	$HOME/.undo_history
#自动安装zshell autojump插件
python $HOME/.oh-my-zsh/custom/plugins/autojump/install.py

 3. Zsh主题应用(根据个人喜好)

source ~/.zshrc 

zsh使用介绍

主题切换

不同的主题可以自行切换。甚至可以将 ZSH_THEME 的值写为 random 。这样每次打开都会是一款随机主题,总有一个适合你。

//显示当前主题名
echo $ZSH_THEME

自动补全

    虽然 Bash 下,tab 是一个好用的命令补全键,但 oh-my-zsh 提供了更加强大的命令补全工具,很多时候,只需要输入一条命令,然后按 tab,oh-my-zsh 就可以自动给你补全该条命令其他的参数。

也可以使用 alias 命令设置别名(.zshrc中加入)。
示例:

alias vi="vim"
alias s="source ~/.zshrc"

目录穿越

我们经常会遇到这样一个场景:先进入一个很深的目录,然后又换到另一个目录下的,如果要返回之前的某个目录,通常我们会使用 cd - 返回最近一次目录,或者使用 history 去查找更早之前的目录,不过 oh-my-zsh 给我们提供了强大的 d 命令,有了它,可以简化以上步骤。
    d 命令会列出我们最近进入的目录历史,并且会给这些目录加上序号,只需要输入对应目录的序号,即可重新进入该目录,如下图所示,d 命令列出了我最近进入的几个目录,其中序号为 2 的目录是我的 LINUX_TOOL目录,直接输入 2,立马跳回到 LINUX_TOOL 所在目录。

 也可以使用 hash -d 设置路径别名,进入相应路径只需要 cd ~xxx

注意:

修改.zshrc配置文件后,需要重新加载( source ~/.zshrc )或重新启动才会生效

Bash Shell使用介绍

基本命令

cd命令:

用于切换当前工作目录。

cd /home/user1将当前工作目录切换到/home/user1。
cd ../user2:切换到当前目录的上一级目录并进入user2。
 cd ./代表当前目录
ls命令:用于列出指定目录中的文件和子目录。ls /home/user1将列出/home/user1目录下的所有文件和子目录。
   
 ls -l:以详细列表的方式显示目录内容。
 ls -a:显示全部文件,包括隐藏文件。
 ls -h:以人类可读的格式显示文件大小。
cp命令:用于复制文件或目录。cp file1 file2将文件file1复制为file2。
cp -r dir1 dir2将目录dir1及其内容复制到dir2。
mv命令:用于移动或重命名文件或目录。mv file1 file2将文件file1移动到file2。
mv file1 dir1将文件file1移动到目录dir1中。
 rm命令:用于删除文件或目录。rm file1将删除文件file1。
rm -r dir1将删除目录dir1及其内容。
rm -f dir2:强制删除文件,不进行确认。
rm file1?前缀一个字符的被删除
rm file1*删除匹配的
rm -r dir?
rm -rf* 删除目录下所有文件
 mkdir命令:用于创建目录。mkdir dir1将创建一个名为dir1的目录。
touch命令:用于创建空文件或更改文件的时间戳。touch file1将创建一个名为file1的空文件。
touch -t 202012310000.00 file1将更改文件file1的时间戳为2020年12月31日00:00。
cat命令:用于查看或连接文件。cat file1将查看文件file1的内容。
cat file1 file2 > file3将文件file1和file2的内容连接起来,并将结果保存到file3。
less命令:用于查看文件内容,并提供翻页浏览功能。less file1将以交互方式查看文件file1的内容。
echo命令:用于向终端输出文本。echo “Hello World!”将输出Hello World!到终端。
pwd:显示当前工作目录的路径。echo $HOME主目录pwd:显示当前工作目录的路径。echo $HOME主目录
chmod:chmod命令用于更改文件或目录的权限。它可以接受一个参数,指定要更改权限的文件或目录名。可以使用不同的权限标记来指定要更改的权限。
 chmod 777 file_name:将文件的权限设置为rwxrwxrwx(读r 写w 执行x)。
chown:修改文件所有者。chown owner_name file_name:将文件的所有者修改为owner_name。
 du:查看文件或目录的磁盘使用情况。du -h file_name:以人类可读的方式显示文件大小。

history 命令

clear 清屏

history命令用于显示最近执行过的命令历史记录。它不需要参数,并且会打印出所有先前执行过的命令。
tar 归档命令tar -czvf xxx.gz dir4 dir5 file*  压缩
tar -zxvf xxx.gz 解压缩
解压缩到指定目录:tar -zxvf xxx.gz -C /root
ifconfig 查看IPifconfig eth0 192.168.1.123修改IP
ping www,baidu.com

系统用户相关命令

  • su - root 普通超级
  • su - xxx  超级普通
  • useradd XXX  增加用户
  • passwd    密码
  • who         查看用户
  • userdel xxx 注销才能删除
  • ps - aux 显示打开的进程,相当于任务管理器
  • uptime 显示系统运行时间
  • shutdown -r now 重启系统
  • shutdown -h now 关机

批量处理命令

1. grep命令:用于在文件中查找指定模式的字符串。
   示例:grep “pattern” file1将在文件file1中查找包含指定模式的字符串。
         grep “pattern” file.txt

2. sed命令:用于根据指定规则对文件进行文本替换。
   示例:sed ‘s/pattern/replace/g’ file1将文件file1中的pattern字符串替换为replace字符串。

3. awk命令:用于以指定规则对文件进行流式处理。
   示例:awk ‘{print $1}’ file1将输出文件file1中每行的第一个字段。
 
4. find:根据特定条件查找文件。
   find /path/to/dir -name “file_name”:在指定目录中查找名为”file_name”的文件。
   
find / -name file1根目录查找
find ./ -name file1\?;
find ./ -name file1\*;
find ./ -name \*file\*中间相同
find ./ -name file1\*;
find ./ -name \*file后缀相同

管道和重定向

1. 管道:通过管道符(|)将一个命令的输出作为另一个命令的输入。
   示例:command1 | command2将command1的输出作为command2的输入。

2. 重定向:用于将命令的输入或输出重定向到文件。
   示例:command > file1将命令的输出重定向到文件file1。
         command < file1将命令的输入重定向为文件file1。

条件判断和循环

1. 条件判断:通过if语句进行条件判断。   
示例:

if [ condition ];
    then command1
elif [ condition ];
then
    command2
else
command3
fi


2. 循环:通过for和while语句进行循环操作。   
示例:

for var in list;
do command1
$var done
while [ condition ];
do command1
done

脚本编写

1. 创建脚本:用文本编辑器创建一个扩展名为.sh的文件。
示例:vi script.sh
2. 添加执行权限:使用chmod命令为脚本文件添加执行权限。   
示例:chmod +x script.sh
3. 编写脚本内容:在脚本文件中编写要执行的命令和逻辑。   
示例:

#!/bin/bash
echo "Hello World!"

4. 运行脚本:使用./命令运行脚本文件。
示例:./script.sh将执行脚本内容并输出Hello World!到终端。

vim使用介绍

vim工作模式

1 . 命令模式(command Mode):
    用户刚刚启动vi/vim,便进入了命令模式。此状态下敲击键盘动作会被Vim识别为命令,而非输入字符。比如我们此时按下 i ,并不会输入一个字符, i 被当作了一个命令。
    以下是常用的几个命令:

命令说明
i切换到输入模式,以输入字符
x删除当前光标所在处的字符
:切换到底线命令模式,以在最底一行输入命令

    命令模式只有一些最基本的命令,因此仍要依靠底线命令模式输入更多命令。

2 . 输入模式(Insert Mode)
    在命令模式下按下 i 就进入了输入模式。在输入模式中可进行文本的编辑。按ESC回到命令模式。

3 . 底线命令模式(Last Line Mode)
    在命令模式下按下 : (英文冒号)就进入了底线命令模式。底线命令模式可以输入单个或多个字符的命令,可用的命令非常多。在底线命令模式中,常用命令如下,按ESC键可随时退出底线命令模式。

命令说明
:q退出
:w保存
:wq保存退出
:q!强制退出,不保存修改的内容

vim基本操作

编辑操作

(1)基本使用如下

(2)其它操作说明

  •  使用鼠标滚动复制:

:set mouse=a   打开鼠标功能

:set mouse-=a 关闭鼠标功能

:set nonu     如果要复制多行而不使用行号禁用数字:

:set nu        则可以在复制完成后重新启用它们

  • 全部复制:按esc键后,先按gg,然后ggyG;

  • 单行复制:yy; 复制到单词尾yw;  复制到行尾y$; 复制到行首y^

  • 撤销:u   ;恢复撤销:ctrl+r   ;跳转后执行回退:ctrl+o;前进ctrl+i

  • 按V,按上下左右箭头,选中块进行复制删除

  • 直接按delete:从左删除到右的一个一个字符

  • 不用输入模式:shift+d   从右到左一个一个字符删除;

  • 全部删除:按esc键后,先按gg(到达顶部),然后dG

  • 单行删除:dd;  删除到单词尾dw;  删除到行尾d$; 删除到行首d^

  •  mm  为//注释

  • :set paste                #进入全格式粘贴模式,shift+insert全格式粘贴
    :set nopaste              #取消全格式粘贴模式

移动光标

(1)基本使用如下

(2)其它操作说明 

  • 光标所在的窗口切换

光标在左侧树形目录:ctrl+w+h

光标在右侧窗口显示:ctrl+w+l

光标左右切换           :ctrl+w+w

树显示左右切换       :ctrl+w+r

查找和搜索

(1)基本使用如下

(2)其它操作说明 

  • grep介绍,如果你想在当前目录下 查找"hello,world!"字符串,可以这样:  
grep -rn "hello,world!" *
  •  全局搜索文件的字符串:cscope find t xxx
  • ctrl+f    按ctrl+j 和ctrl+k上下选择文件
  • 查找函数:|+f+s      |+f+t       |+f+c

替换

(1)基本使用如下

(2)其它操作说明

  •  vim 中可用 :s 命令来替换字符串,具体如下:

:s/str1/str2/       替换当前行第一个 str1 为 str2
:s/str1/str2/g     替换当前行中所有 str1 为 str2


:m,ns/str1/str2/    替换第 n 行开始到最后一行中每一行的第一个 str1 为 str2
:m,ns/str1/str2/g  替换第 n 行开始到最后一行中所有的 str1 为 str2
(注:m和n 为数字,若m为 .,表示为当前行开始;若n为$,则表示到最后一行结束)

如果使用 # 作为分隔符,则中间出现的 / 不会作为分隔符,比如:
:s#str1/#str2/#    替换当前行第一个 str1/ 为 str2/
:%s+/oradata/apras/+/user01/apras1+ (使用+ 来 替换 / ): /oradata/apras/替换成/user01/apras1/

:%s/str1/str2/(等同于 :g/str1/s//str2/) 替换每一行的第一个 str1 为 str2
:%s/str1/str2/g(等同于 :g/str1/s//str2/g 和 :1,$ s/str1/str2/g ) 替换文中所有 str1 为 str2

从替换命令可以看到,g 放在命令末尾,表示对搜索字符串的每次出现进行替换;不加 g,表示只对搜索

窗口操作

(1)基本使用如下

(2)其它操作说明 

  • 上下分窗口:sp;左右分窗口:vsp;关闭:close
  • .窗口左边显示函数名:tl:关闭再tl

可视操作

(1)基本使用如下

(2)其它操作说明 

跳转声明

(1)基本使用如下

(2)其它操作说明 

  • 打开头文件:光标放置头文件出,按|+F+F
  • 跳转到文件行首:gg;跳转到行末shift+g

挂起操作

(1)基本使用如下

(2)其它操作说明 

鼠标操作

(1)基本使用如下

(2)其它操作说明 

编译

(1)基本使用如下

1.编译apps:make
2.清理apps:make clean
3.编译全部libg:make libs
4.清理全部libg:make clean libs
5.编译单独lib:make lib target
6.清理单独1ib:make clean lib target
7.GDB 调试   :make debug
8.组合编译命令:make clean_libs && make clean && make libs && make -j

(2)其它操作说明 

环境设置

(1)基本使用如下

(2)其它操作说明 

目录与文件操作

  • 打开的文件切换:按1,2左右切换;或者按空格进入命令窗口:bn 下一个文件;bp上一个文件;ls列出打开的文件
  • 打开目录:o   ;跳转当前根目录:p

注意事项

(1)基本使用如下

(2)其它操作说明 

常用插件

函数跳转插件:ctags

vim树形目录插件:NERDTree

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值