奇发28网

首页 > 数据库 > 数据库开发技术 > Fish Shell 的使用特性和优势

Fish Shell 的使用特性和优势

数据库开发技术 作者:Linksla 时间:2023-11-20 09:38:46 0 删除 编辑

引言

来源:央视 网址:http://www.cibkglfj.cn/a/www.qhtzw123.com/

播报:

              原油市场方面,投资者等待本周的多项美国月度通胀数据与国际能源署的月度市场报告,国际油价周一窄幅波动,小幅下跌。  此外,东方优选(北京)科技有限公司、北京新东方迅程网络科技有限公司等也新增旅游相关业务。除了表情,对话气泡、图片也会带来更多的变化,加入更多的动画。

            广东中科精纳新材料技术有限公司(简称:中科精纳)是一家专注于新材料研发、生产、销售于一体的高科技型企业.公司产品涵盖无机防腐涂料、功能性涂料、耐高温材料、隔热保温材料、超疏水涂料等多种功能性新材料。三六零(,下称360)消息称,7月4日,天津GPT产业发展计划启动大会暨360科创园开园活动将正式启动。

            【岗位职责】1.负责1688店铺的售前/售中/售后等业务跟进等工作;2.熟悉公司产品,及时针对询价客户进行报价,及时并且有效的响应店铺询盘,促进成交;3.定期回访客户,跟踪客户反馈,建立客户档案,促成二次下单转化;4.通过网络渠道,自主开发客户,推广公司产品,达成业绩目标;5.对邀约上门的客户进行接待跟进,并完成部门主管安排的其他事务.【职位要求】1.大专以上学历,市场营销、电子商务等专业优先考虑;2.丰富的1688(国内)平台运营经验优先考虑;3.打字速度快,熟练运用office办公软件;4.具备良好的营销技巧,有较强的销售意识和服务意识;5.团队意识强,积极主动,擅长沟通,责任心强,有较强的谈判能力和创新能力。其研发团队可谓人才济济,来自清华、伯克利、早稻田等国内外知名高校,1/4具有博士学位,1/3具有海外留学经历。

              目前升级公测版本用户招募现在开启,如果你持有FindX6Pro、FindX6、一加11、Reno9Pro其中任何一款机型,都可以报名参与。  使用AI技术实现数据中心及相关产业的节能优化也是重要的实践方向。

          重点推荐:市场回暖,旅游业回血几何? 这一数字几乎是Mate50系列的4倍。系广东省人力资源管理协会副会长单位,广州市人力资源服务协会副会长单位。

          市场回暖,旅游业回血几何?

          当提到命令行界面(CLI)时, 我们通常会想到一种强大而高效的方式来与计算机进行交互。在众多的 Shell 中最常用的就数 Bash 和 zsh 了,除此之外还有一颗闪耀的明星 Fish Shell,它以其现代化的设计和强大的特性而备受赞誉,成为许多开发人员和系统管理员钟爱的选择,正如官网宣传的 Finally, a command line shell for the 90s,  翻译过来就是 Fish Shell 是一个为 90 后准备的 Shell,它主要特性如下:

          • 安装时就默认集成了很多需要的功能,无法进行大量配置

          • 命令行语法高亮,错误会显示红色

          • 智能提示

          • 可视化配置: 可以使用 Web 网页的进行终端配置

          在这篇文章中,我们将简单介绍下 Fish Shell 的各种特性和优势,并带您了解如何开始使用和定制这个强大的 Shell。无论您是一名新手还是有经验的用户,都将发现 Fish Shell 为命令行界面带来的愉悦和效率提升。准备好探索 Fish Shell 的奇妙世界了吗? 让我们一起开始这个令人兴奋的旅程!

          一、安装

          在开始前我们需要先安装下 fish,因为我这边是 Mac 系统,下面 ???? 也将只介绍 Mac 下安装方式,更多系统对应安装方法可参考官方文档。

          brew install fish

          上图中框出的部分是 fish 的安装路径, 这里最好简单记下, 后面需要用到

          二、切换

          2.1 手动切换

          默认情况下命令行终端使用的 Shell 是 Bash 或者 zsh, 这里我们需要通过 fish 命令切换到 Fish Shell

          fish

          这里如果需要退出 Fish Shell 可执行 exit 命令进行退出

          exit

          2.2 设置为默认 Shell

          如果您希望使用 Fish Shell 作为默认的 shell,可使用以下命令:
          在开始之前我们需要先确认下 fish 的安装路径,在安装 fish 时输出日志中会给出对应的安装地址。

          下面我们需要在 /etc/shells 中追加 fish 的 脚本 路径,否则在切换默认 Shell 时会报 non-standard shell 错误,脚本路径为: {fish 安装路径}/bin/fish

          sudo vim /etc/shells

          下面我们通过 chsh -s 来切换默认 Shell

          chsh -s /opt/homebrew/Cellar/fish/3.6.1/bin/fish

          切换完后, 我们重新开一个终端将默认使用 Fish Shell

          如果需要切换回去, 只需需要执行 chsh -s /bin/zsh 或 chsh -s /bin/bash 即可

          chsh -s /bin/zsh

          最后补充: 由于 Fish Shell 的语法与 Bash 有很大差异,对 Bash 脚本可能会出现不兼容,因此建议不要将 Fish Shell 设为默认 Shell,而是每次手动启动它。

          三、好用特性介绍

          3.1 命令行语法高亮

          Fish Shell 在我们输入命令时就会对语法进行高亮, 这里最重要的要数 潜在错误 的检测, 也就是在输入命令且未执行前,就可以提前对输入的内容进行检测, 并对检测结果进行高亮,相关高亮逻辑有:

          1、有效命令默认高亮为蓝色

          2、无效命令默认高亮为红色

          3、对于有效路径会有下划线提示

          4、不匹配的括号或者逗号

          3.2 自动补全建议

          Fish Shell 自带 命令补全建议 功能, 当我们输入命令后, 我们将在光标后看到以柔和的灰色显示的推荐内容,这些内容可能是 Fish Shell 推导出来的, 也有可能是历史使用过的命令

          如果要采纳建议, 可以按下  ->

          如果只采纳一部分, 可以按下  Alt + ->

          3.3 Tab 选项

          如果我们需要想查看给定命令是否还有其他可能性, 那么在输入几个字母后, 只需按一下 Tab 键即可

          1、如下是输入完 git 直接按 Tab 的结果,它直接列出了所有可能命令以及描述

          2、这里是输入 git 以及空格后按下 Tab 的结果, 它将给出 git 的所有可能命令以及描述

          3、当然除了补全命令, 它还可以补全参数, 如下是输入  -  后按下 Tab 的结果,它将给出 git commit 的所有可能参数以及描述

          3.4 基于 Web 的配置器

          Fish Shell 相对于其他 Shell 有一个比较有意思的功能, 就是可以通过浏览器来配置或查看 Shell 的主题、提示、功能函数、常量、历史记录、快捷键

          1、首先我们需要通过 fish 进入 Fish Shell, 然后再执行 fish_config 命令,这时将自动打开一个配置页面:

          fishfish_config

          2、第一部主题颜色配置,官方默认提供了多套主题提供选择,当然如果您都不喜欢还可以自己定制主题颜色:

          3、第二部分则是设置命令行前面的提示符,同样的官方默认给了很多种选择, 特别的是配置页面没有提供自定义 提示符 的一个入口,如果需要自定义则需要自己修改配置文件,编写函数:


          4、第三部分则是列出了所有的功能函数, 可以理解是所有可用命令的实现源码, 这里则不允许进行修改:

          5、第四部分则是列出了所有的常量,这里也不允许进行修改:

          6、第五部分则是记录了所有用过的命令,这里可对历史记录进行一个删除:

          7、第六部分则是快捷键的一个绑定,这里也是不允许进行修改:

          3.5 独自的自定义配置文件

          Fish Shell 为用户提供了一个独立的配置文件(~/.config/fish/config.fish), 我们可以在这个文件里面写入各种自定义函数、别名、常量…,在每次启动 Fish Shell 后,该文件将被自动加载进来,这里我们可以通过 cat 来查看该配置文件

            
            
            $ cat ~/.config/fish/config.fish
            
            
            
            if status is-interactive  # Commands to run in interactive sessions can go here end

            下面我们尝试在该配置文件中, 添加几个 git 相关的 别名,来进行一个简单测试

            vim ~/.config/fish/config.fish
              
              + 
              alias g 
              "git"
              
              + 
              alias gst 
              "git status"
              
              + 
              alias grs 
              "git reset --soft"
              
              + 
              alias grh 
              "git reset --hard"
              
              + 
              alias gb 
              "git branch"
              
              + 
              alias gba 
              "git branch -a"
              
              + 
              alias gl 
              "git pull"
              
              
              
              if status is-interactive   # Commands to run in interactive sessions can go here end

              重新打开 Fish Shell 尝试使用 别名 gl 来拉取代码,如下图发现可以正常使用 别名 则说明我们配置是生效的

              3.6 易懂的语法

              Fish Shell 的语法更偏向于高语言, 语法相对来说学起来比较快, 阅读起来也很清晰, 下面是几种常见语法的写法, 更多语法可查阅官网。

              1、if 语句

              if grep fish /etc/shells  echo Found fishelse if grep bash /etc/shells  echo Found bashelse  echo Got nothingend

              2、switch 语句

              switch (uname)  case Linux    echo Hi Tux!  case Darwin    echo Hi Hexley!  case FreeBSD NetBSD DragonFly    echo Hi Beastie!  case '*'    echo Hi, stranger!end

              3、while 循环

              while true  echo "Loop forever"end

              4、for 循环

              for file in *.txt  cp $file $file.bakend

              5、函数

                
                
                # 定义 ll 函数(命令)
                
                
                function ll
                
                  ls -lhG 
                $argv
                
                
                end
                
                
                
                # 重新定义 ls 命令 # 函数体内的 ls 之前, 要加上 command, 否则会因为无限循环而报错 function ls  command ls -hG $argv end

                四、自定「提示符」

                上文提到, 在 Web 配置页面我们可以配置我们的 提示符, 但是那边只能使用官方提供的几套默认样式, 下面我们将介绍如何进行定制一个个性化的提示符!!

                方法: 在配置文件 ~/.config/fish/config.fish 中,新增一个 fish_prompt 函数用于定义提示符

                1、这里我们可以使用 vscode 打开配置文件, mac 访达默认情况下是不展示隐藏文件的,这里我们可以通过 com + shift + . 来查看隐藏文件, 然后将配置文件直接拖到 vscode 中进行打开

                2、默认情况下,vscode 是不支持 fish 语法高亮的,这里我们可以安装一个 fish 插件,这样就可以支持语法高亮、格式化了


                3、下面我们开始定制 提示符,这里我直接给出完整代码,具体讲解可以看注释

                关键语法说明:

                2>/dev/null 作用是, 命令悄摸摸运行不输出任何日志
                set 用于设置变量, -g 表示全局变量, -f 表示函数内部变量, 更多内容可查阅 官方文档

                  
                  
                  # 是否是 git 仓库, 来自 oh-my-fish: 
                  
                  function git_is_repo -d "检测当前目录是否是 git 仓库"
                  
                    test -d .git
                  
                    or 
                  begin
                  
                      
                  set -l info (command git rev-
                  parse 
                  --git-dir --is-bare-repository 2>/dev/null)
                  
                      
                  and 
                  test $info[
                  2] = 
                  false
                  
                    
                  end
                  
                  
                  end
                  
                  
                  
                  # 获取分支名, 来自 oh-my-fish: function git_branch_name -d "获取当前分支名"  git_is_repo; and begin    command git symbolic- ref --short HEAD 2> /dev/null;       or command git show- ref --head -s --abbrev | head -n1 2> /dev/null   end end
                  # 终端提示符显示 function fish_prompt -d "终端提示符"
                    # 1. 时间   set -f __prompt_data (set_color -o 46C74B) "["( date "+%H时%M分%S秒")(set_color -o 46C74B) "]"
                    # 2. 路径   set -f __prompt_pwd " "(set_color 00FF00)(prompt_pwd --full-length-dirs=10)
                    # 3. 获取 git 信息   if git_is_repo     # 分支状态图标配置, 更多参考:     set -g __fish_git_prompt_char_stagedstate "●"   # 存在暂存文件, 图标     set -g __fish_git_prompt_char_dirtystate "?"   # 存在未追踪文件, 图标     set -g __fish_git_prompt_char_cleanstate "?"   # 项目干净图标
                      # 调用 __fish_git_prompt 读取 git 相关信息, 参考    __fish_git_prompt 2 >/dev/ null;
                      # 提交状态     set -f __informative_status (set_color -o bryellow)(__fish_git_prompt_informative_status)     # 分支信息     set -f __branch (set_color brred)(git_branch_name)
                      set -f __prompt_git_info (set_color FF4BFF) " ("(git_branch_name) ": "(set_color red)$__informative_status(set_color FF4BFF) ")"   else     set -f __prompt_git_info ""   end
                   echo (set_color 00BA00) "┬─"$__prompt_data$__prompt_pwd$__prompt_git_info(set_color normal)  echo (set_color 00BA00) "╰─>"(set_color FF635C) "\$ " end
                  if status is-interactive   # Commands to run in interactive sessions can go here end

                  4、最终效果如下

                  补充:如果想要加上用户名可直接使用常量 $USER

                  五、修改欢迎语

                  如下图,每次我们切换到 Fish Shell 都会有欢迎语输出

                  如果对于这个 欢迎语 不喜欢想要修改, 可以通过在配置文件 ~/.config/fish/config.fish 定义一个 fish_greeting 函数来进行修改

                  function fish_greeting  echo Hello friend!  echo The time is (set_color yellow; date +%T; set_color normal) and this machine is called $hostnameend

                  作者:墨渊君
                  链接:


                  来自 “ ITPUB博客 ” ,链接:http://www.cibkglfj.cn/70013542/viewspace-2996070/,如需转载,请注明出处,否则将追究法律责任。

                  下一篇: Redis变慢怎么办
                  请登录后发表评论 登录
                  全部评论

                  注册时间:2022-02-09

                  • 博文量
                    323
                  • 访问量
                    162599
                  分享:

                  收藏

                  --

                  --

                  无障碍浏览