开发linux常用指令操作

1. 开发linux常用指令操作

1.文档操作常用指令

命令功能描述
ls列出目录
cd切换目录
pwd显示目前的目录
mkdir创建一个新的目录
rmdir删除一个空的目录
cp复制文件或目录
rm移除文件或目录
mv移动文件与目录或修改文件与目录的名称

自动补全

  • 在敲出 文件/ 目录 / 命令 的前几个字母之后, 按下 tab
  • 如果还存在其他 文件 / 目录 / 命令, 再按一下tab键, 系统会提示可能存在的命令

1. ls (列出目录)

  1. ls命令相当于我们在Windows系统中打开磁盘、或者打开文件夹看到的目录以及文件的明细

    在Linux系统当中, ls 命令算是比较常用的命令

    使用者权限:所有使用者都可使用。

  2. 语法如下:

    ls [选项]  目录名称
    
  3. 选项与参数:

    参数参数功能
    -a全部的文件,连同隐藏档( 开头为 . 的文件) 一起列出来(常用)
    -d仅列出目录本身,而不是列出目录内的文件数据(常用)
    -l长数据串列出,包含文件的属性与权限等等数据;(常用)
    目录名查看目录的文件和文件夹
  4. 代码实例

    ls -la ~
    

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UDHSiYyx-1665291240490)(/Users/edy/Library/Application Support/typora-user-images/image-20221001155110553.png)]

    ls -l
    

​ [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9KPVPLby-1665291240491)(https://pick2.oss-cn-beijing.aliyuncs.com/NoteImage/NoteImage/笔记图片/202201020051782.png)]

2. pwd(显示当前目录)

  1. pwd 是 Print Working Directory 的缩写,也就是显示目前所在当前目录的命令。

    使用者权限:所有使用者都可使用。

  2. 查看当前所在目录

    pwd
    

3.cd (切换目录)

  1. cd是Change Directory的缩写,这是用来变换工作目录的命令

    使用者权限:所有使用者都可使用。

  2. 语法如下:

     cd [相对路径/绝对路径]
    

    绝对路径:(在编写shell脚本建议使用绝对路径)

    路径的写法,由根目录 / 写起,例如: /usr/share/doc 这个目录。

    相对路径:

    路径的写法,不是由 / 写起,例如由 /usr/share/doc 要到 /usr/share/man 底下时,可以写成: cd …/man 这就是相对路径的写法啦!

  3. 代码实例

    当前工作目录是 /usr, 使用相对路径 切换到 /usr/tmp 目录下

    cd ./tmp    # 相对路径
    cd /urs/tmp # 绝对路径
    
  4. 特殊的cd命令

    cd .. # 返回上一级目录
    cd    # 返回当前用户的home目录
    cd /  # 返回根目录
    

4. mkdir(创建目录)

  1. mkdir命令用于建立名称为 dirName 之子目录

    使用权限:于目前目录有适当权限的所有使用者

  2. 语法

    mkdir [-p] dirName
    
  3. 参数说明:

    -p 确保目录名称存在,不存在的就建一个

  4. 代码实例

    mkdir test # 创建单个目录
    mkdir test/test # 创建多级目录
    

5. cp(文件复制)

  1. cp命令主要用于复制文件或目录。

    使用权限:于目前目录有适当权限的所有使用者

  2. 语法

    方式一

    cp [options] source dest
    

    方式二

    cp [options] source... directory
    
  3. 参数说明:

    参数参数功能
    -a此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容。其作用等于dpR参数组合。
    -d复制时保留链接。这里所说的链接相当于Windows系统中的快捷方式
    -f覆盖已经存在的目标文件而不给出提示。
    -i与-f选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答"y"时目标文件将被覆盖。
    -p除复制文件的内容外,还把修改时间和访问权限也复制到新文件中。
    -r/R若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件。
    -l不复制文件,只是生成链接文件。
  4. 代码实例

    cp -r aaa/*  ccc  # 将aaa 文件下的所有文件级文件夹复制到当前目录ccc 下
    
  5. 注意事项

    用户使用该指令复制目录时,必须使用参数"-r"或者"-R"。

    如果不加参数"-r"或者"-R",只复制文件,而略过目录

6. rm (删除目录)

  1. rm命令用于删除一个文件或者目录。

    使用权限:于目前目录有适当权限的所有使用者

  2. 语法

    rm [options] name...
    
  3. 参数:

    参数参数功能
    -i删除前逐一询问确认。
    -f即使原档案属性设为唯读,亦直接删除,无需逐一确认。
    -r将目录及以下之档案亦逐一删除。
  4. 代码实例

    如果我们要删除文件可以直接使用rm命令,若删除目录则必须配合选项"-r"

    rm -rf test # 强制删除 test子目录及其文件夹
    
  5. 注意

    文件一旦通过rm命令删除,则无法恢复,所以必须格外小心地使用该命令

    如果删除文件(比如.sh 、.txt)

    直接使用rm name.txt

7. mv(移动文件)

  1. mv 命令用来为文件或目录改名、或将文件或目录移入其它位置

    使用权限:于目前目录有适当权限的所有使用者

  2. 语法

    mv [options] source dest
    mv [options] source... directory
    
  3. 参数说明:

    • -i: 若指定目录已有同名文件,则先询问是否覆盖旧文件;
    • -f: 在 mv 操作要覆盖某已有的目标文件时不给任何指示;

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ahSgN9kK-1665291240492)(https://pick2.oss-cn-beijing.aliyuncs.com/NoteImage/NoteImage/笔记图片/202201020051798.png)]

8.scp(上传及下载文件)

  1. scp是 secure copy的缩写, scp是linux系统下基于ssh登陆进行安全的远程文件拷贝命令。linux的scp命令可以在linux服务器之间复制文件和目录

  2. 语法

    scp [参数] [原路径] [目标路径]
    
  3. 参数说明

    -C 允许压缩。(将-C标志传递给ssh,从而打开压缩功能)

    -p 保留原文件的修改时间,访问时间和访问权限。

    -q 不显示传输进度条。

    -r 递归复制整个目录。

  4. 使用实例

    从本地复制到远程

    scp -r /root/lk root@43.224.34.73:/home/lk/cpfile # 在本地服务器上将/root/lk目录下所有的文件传输到服务器43.224.34.73的/home/lk/cpfile目录下,
    

    从远程复制到本地

    scp -r root@43.224.34.73:/home/lk /root # 在本地服务器上操作,将服务器43.224.34.73上/home/lk/目录下所有的文件全部复制到本地的/root目录下
    

9. touch (创建文件/ 一般使用vi进行创建并编辑)

  1. touch命令用于创建文件、修改文件或者目录的时间属性,包括存取时间和更改时间。若文件不存在,系统会建立一个新的文件。

    使用权限:于目前目录有适当权限的所有使用者

  2. 语法

    touch [-acfm][-d<日期时间>][-r<参考文件或目录>] [-t<日期时间>][--help][--version][文件或目录…]
    
  3. 参数说明

    • -a 改变档案的读取时间记录。
    • -m 改变档案的修改时间记录。
    • -c 假如目的档案不存在,不会建立新的档案。与 --no-create 的效果一样。
    • -f 不使用,是为了与其他 unix 系统的相容性而保留。
    • -r 使用参考档的时间记录,与 --file 的效果一样。
    • -d 设定时间与日期,可以使用各种不同的格式。
    • -t 设定档案的时间记录,格式与 date 指令相同。
    • –no-create 不会建立新档案。
    • –help 列出指令格式。
    • –version 列出版本讯息。

10. Linux 文件基本属性

  1. Linux系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限。为了保护系统的安全性,Linux系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定。

  2. 在Linux中我们可以使用ll或者ls –l命令来显示一个文件的属性以及文件所属的用户和组,如:

    ls -l
    

    image-20221001214809744

  3. 实例中,bin文件的第一个属性用"d"表示。"d"在Linux中代表该文件是一个目录文件。

    在Linux中第一个字符代表这个文件是目录、文件或链接文件等等。

    • 当为[ d ]则是目录
    • 当为[ - ]则是文件
    • 若是[ l ]则表示为链接文档(link file)
    • 若是[ b ]则表示为装置文件里面的可供储存的接口设备(可随机存取装置)
    • 若是[ c ]则表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)
  4. 接下来的字符中,以三个为一组,且均为『rwx』 的三个参数的组合。其中,[ r ]代表可读(read)、[ w ]代表可写(write)、[ x ]代表可执行(execute)。 要注意的是,这三个权限的位置不会改变,如果没有权限,就会出现减号[ - ]而已。

    每个文件的属性由左边第一部分的10个字符来确定(如下图)

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GpHS5avl-1665291240493)(https://pick2.oss-cn-beijing.aliyuncs.com/NoteImage/NoteImage/笔记图片/202201020051803.png)]

    从左至右用0-9这些数字来表示。

    ​ 第0位确定文件类型,第1-3位确定属主(该文件的所有者)拥有该文件的权限。

    ​ 第4-6位确定属组(所有者的同组用户)拥有该文件的权限,第7-9位确定其他用户拥有该文件的权限。

  5. 总结

    其中,第1、4、7位表示读权限,如果用"r"字符表示,则有读权限,如果用"-"字符表示,则没有读权限;

    第2、5、8位表示写权限,如果用"w"字符表示,则有写权限,如果用"-"字符表示没有写权限;

    第3、6、9位表示可执行权限,如果用"x"字符表示,则有执行权限,如果用"-"字符表示,则没有执行权限。

11 chmod权限命令

  1. Linux文件属性有两种设置方法,一种是数字,一种是符号

    Linux的文件调用权限分为三级 : 文件属主、属组、其他。利用 chmod 可以控制文件如何被他人所调用。

    使用权限 : 所有使用者

  2. 语法

    chmod [-cfvR] [--help] [--version] mode file...
    
  3. 参数说明

    mode : 权限设定字串,格式如下

    [ugoa...][[+-=][rwxX]...][,...]
    
  4. 解释:

    u 表示该档案的拥有者,g 表示与该档案的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是。

    +表示增加权限、- 表示取消权限、= 表示唯一设定权限。
    r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该档案是个子目录或者该档案已经被设定过为可执行。

  5. 数字权限

    Linux文件的基本权限就有九个,分别是owner/group/others三种身份各有自己的read/write/execute权限。

    先复习一下刚刚上面提到的数据:文件的权限字符为:『-rwxrwxrwx』, 这九个权限是三个三个一组(owner/group/others就是所说的三个一组 )的,我们也可以使用数字来代表各个权限,各权限的分数对照表如下

    各权限的数字对照表:[r]:4;[w]:2;[x]:1;[-]:0

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-i7uCfjCr-1665291240494)(https://pick2.oss-cn-beijing.aliyuncs.com/NoteImage/NoteImage/笔记图片/202201020051808.png)]

    每种身份(owner/group/others)各自的三个权限(r/w/x)分数是需要累加的,例如当权限为: [-rwxrwx—] 分数则是:

    • owner = rwx = 4+2+1 = 7
    • group = rwx = 4+2+1 = 7
    • others= — = 0+0+0 = 0

    所以等一下我们设定权限的变更时,该文件的权限数字就是770啦,变更权限的指令chmod的语法是这样的

    chmod [-R] xyz 文件或目录
    

    选项与参数:

    • xyz : 就是刚刚提到的数字类型的权限属性,为 rwx 属性数值的相加。
    • -R : 进行递归(recursive)的持续变更,亦即连同次目录下的所有文件都会变更

    上面的 可以表示如下

    chmod  -R 770  档案或目录
    

2.文件查看(查看日志文件)

序号命令对应英文作用
01cat 文件名concatenate查看小文件内容
02less -N 文件名less分频 显示大文件内容
03tail -n 文件名查看文件的最后部分
04grep 关键字 文件名grep根据关键词, 搜索文本文件内容
05vi/vim 文件名编辑日志文件,结合vi编辑器命令模式可以实现查看效果

1. cat命令

  1. cat 是一个文本文件查看和连接工具。查看一个文件的内容,用cat比较简单,就是cat 后面直接接文件名,如cat txtFiles.txt

    使用cat命令类似于我们在Windows中查看小型(太大的时候打开会卡死)的文件

    使用者权限:当前文件的权限用户

  2. 语法格式

    cat [-AbeEnstTuv] [--help] [--version] fileName
    
  3. 代码实例

    查看文件名为devbuild.sh的内容

    cat devbuild.sh
    

    image-20221002003045067

    查看文件名为devbuild.sh的内容(加入行号)

    cat -n devbuild.sh
    

2. grep命令

  1. grep 指令用于查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样式,预设 grep 指令会把含有范本样式的那一列显示出来。若不指定任何文件名称,或是所给予的文件名为 -,则 grep 指令会从标准输入设备读取数据

    grep命令在使用的时候类似于我们的程序中的查询,或者在txt文档中通过ctr+f查找

    使用者权限:当前文件的权限用户

  2. grep 命令用于查找文件里符合条件的字符串,语法如下:

    grep [-abcEFGhHilLnqrsvVwxy][-A<显示列数>][-B<显示列数>][-C<显示列数>][-d<进行动作>][-e<范本样式>][-f<范本文件>][--help][范本样式][文件或目录...]
    
  3. 参数说明

    主要选项[option]说明及示例:

    1. -c : 只输出匹配行的计数
    2. -i : 不区分大小写
    3. -l : 查询多文件时只输出包含匹配字符的文件名
    4. -n : 显示匹配行及行号
    5. -s : 不显示不存在或无匹配文本的错误信息
    6. -v : 显示不包含匹配文本的所有行
    7. -o : 只显示匹配字符串的部分

    pattern正则表达式主要参数[即元字符]说明和示例

    1. ^ : 匹配正则表达式的以“某字符串”开头的行
    2. $ : 匹配正则表达式的以“某字符串”结尾的行
    3. [ ] : 单个字符,如[A] 即A 符合要求
    4. [^ ] : 显示不包括括号中字符串的所有行
    5. [ - ] : 范围匹配,如[A-C],即A、B、C都符合要求;如[a,b],即只有a和b符合要求
    6. . :单个字符,匹配任意一个字符
    7. *** :匹配“*”前面的字符,匹配0个或无数个**
    8. \ :用来屏蔽一个元字符的特殊含义,使其作为单纯的一个字符

3. tail命令

  1. linux tail命令用途是按照要求将指定的文件的最后部分输出到标准设备,一般是终端,通俗来讲,就是把某个档案文件的最后几行显示到终端上,如果该档案有更新,tail会自动刷新,确保你看到最新的档案内容

    使用者权限:当前文件的权限用户

  2. 语法

    tail [ -f ] [ -c Number | -n Number | -m Number| -b Number | -k Number ] [ File ]
    
  3. 参数说明:

    -f 该参数用于监视File文件增长。
    -n Number 从 Number 行位置读取指定文件。

    注意:

    上述命令中,都涉及到number,如果不指定,默认显示10行
    Number前面可使用正负号,表示该偏移从顶部还是从尾部开始计算。

  4. 代码实例

    1. 查看文件的 末尾十行 / 后五行 / 从五行开始到末尾

      末尾十行

      tail log
      

      后五行

      tail -n -5 log
      

      从五行开始到末尾

      tail -n +5 log
      

4. less命令

  1. less 与 more 类似,但使用 less 可以随意浏览文件,而且 less 在查看之前不会加载整个文件。显示方面,显示内容方式不是输出到窗口,而是类似vi打开的文件一样,退出按q。

    使用者权限:当前文件的权限用户

  2. 语法

    less [参数]  文件 
    
  3. 参数说明

    -g 只标志最后搜索的关键词

    -e 当文件显示结束后,自动离开

    -i 忽略搜索时的大小写

    -N 显示每行的行号

    -Q 不使用警告音

    -s 显示连续空行为一行

    -S 行过长时间将超出部分舍弃

    -x <数字> 将“tab”键显示为规定的数字空格

  4. 按键操作

    / 字符串:向下搜索“字符串”的功能
    ? 字符串:向上搜索“字符串”的功能
    n:重复前一个搜索(与 / 或 ? 有关)
    N:反向重复前一个搜索(与 / 或 ? 有关)
    b 向后翻一页
    d 向后翻半页
    h 显示帮助界面
    Q 退出less 命令
    u 向前滚动半页
    y 向前滚动一行
    空格键 滚动一行
    回车键 滚动一页

  5. 代码示例

    1. 查看文件内容

      less test1.txt
      
    2. ps查看进程信息并通过less分页显示

      ps -ef | less
      
    3. 查看命令历史使用记录并通过less分页显示

      history | less
      
    4. 浏览多个文件

       less test1.txt test2.txt
      
  6. 附加备注

    全屏导航

    • ctrl + F - 向前移动一屏
    • ctrl + B - 向后移动一屏
    • ctrl + D - 向前移动半屏
    • ctrl + U - 向后移动半屏

    单行导航

    • j - 下一行
    • k - 上一行

    其它导航

    • G - 移动到最后一行
    • g - 移动到第一行
    • q / ZZ - 退出 less 命令

3. 系统管理

1 date (日期管理)

  1. 当前日期如果通过date进行设置,在系统重启后不会保存date的设置,常用的只是通过date命令查看日期

    date 可以用来显示或设定系统的日期与时间

    使用者权限:所有用户

  2. 语法如下:

    date [参数选项]

  3. 参数

    -d<字符串>:显示字符串所指的日期与时间。字符串前后必须加上双引号;
    -s<字符串>:根据字符串来设置日期与时间。字符串前后必须加上双引号;
    -u:显示GMT;
    –help:在线帮助;
    –version:显示版本信息

  4. 设置时间

    用 -s选项可以设置系统时间,如下:

    date -s "2019-12-11 16:15:00"
    
  5. 显示时间

    date

    (1)UTC

    协调世界时,又称世界统一时间、世界标准时间、国际协调时间。由于英文(CUT)和法文(TUC)的缩写不同,作为妥协,简称UTC

    (2)GMT

    格林尼治 平太阳时间,是指格林尼治所在地的标准时间,也是表示地球自转速率的一种形式

    (3)CST

    北京时间 (中国国家标准时间)
    北京时间是中国采用国际时区东八时区的区时作为标准时间

    (4)东八区

    东八区(UTC/GMT+08:00)是比世界协调时间(UTC)/格林尼治时间(GMT)快8小时的时区,理论上的位置是位于东经112.5度至127.5度之间,是东盟标准的其中一个候选时区。当格林尼治标准时间为0:00时,东八区的标准时间为08:00

2 logname (显示用户)

  1. logname命令用于显示用户名称。

    执行logname指令,它会显示目前用户的名称

  2. 语法为如下:

    logname [--help][--version]
    

    显示登录账号的信息

  3. 显示登录账号的信息

    logname
    

3 sudo(root 权限执行)

  1. 比如我们使用普通用户操作用户或者操作用户组、以及修改网卡配置文件的时候,需要切换到root用户才操作,此时我们可以使用sudo命令提高普通用户的操作权限,以达到操作目的

    sudo:控制用户对系统命令的使用权限,root允许的操作。

    通过sudo可以提高普通用户的操作权限

    使用者权限:普通用户

  2. 语法如下:

    sudo -v [-AknS] [-g group] [-h host] [-p prompt] [-u user]
    
  3. 参数说明

    -V 显示版本编号

    -h 会显示版本编号及指令的使用方式说明

    -l 显示出自己(执行 sudo 的使用者)的权限

    -v 因为 sudo 在第一次执行时或是在 N 分钟内没有执行(N 预设为五)会问密码,这个参数是重新做一次确认,如果超过 N 分钟,也会问密码

    -k 将会强迫使用者在下一次执行 sudo 时问密码(不论有没有超过 N 分钟)

    -b 将要执行的指令放在背景执行

  4. sudo命令使用

    sudo ls
    
  5. 指定root用户执行指令

    sudo -u root ls -l
    

4.top命令(显示进程信息)

  1. 在企业级开发中,开发人员(运维人员也会经常使用)常常为了查看服务器上运行的程序占用的CPU情况以及占用内存情况,目的就是检测我们的程序是否在正常范围内运行

    top命令用于实时显示 process 的动态。

    使用权限:所有使用者。

  2. 显示进程信息

    top
    

    image-20221001142557170

  3. 各进程(任务)的状态监控属性解释说明:

    PID — 进程id(可以结合kill id 结束该进程)

    USER — 进程所有者

    PR — 进程优先级

    NI — nice值。负值表示高优先级,正值表示低优先级
    VIRT — 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
    RES — 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
    SHR — 共享内存大小,单位kb
    S — 进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程
    %CPU — 上次更新到现在的CPU时间占用百分比
    %MEM — 进程使用的物理内存百分比
    TIME+ — 进程使用的CPU时间总计,单位1/100秒
    COMMAND — 进程名称(命令名/命令行)

    显示完整命令,与top命令不同的就是command属性像是进行了命令补全

    top -c
    

    执行效果如下

    image-20221001143237805

    显示指定的进程信息,以下显示进程号为6972的进程信息,CPU、内存占用率等

     top -p 1922
    
  4. top总结

    top命令的用法很多

    但是常用的就是top(不带参数),有的时候,在进程比较多的时候,我们常常记住进程的pid,然后通过top -p pid进行查看

    也就是说,top+ top -p是经常被用到的

5.kill命令(结束进程)

  1. Linux kill命令用于删除执行中的程序或工作(可强制中断)

    使用者权限:所有用户

  2. 语法如下:

    kill [-s <信息名称或编号>][程序] 或 kill [-l <信息编号>]
    
  3. 参数说明

    -l <信息编号>  若不加<信息编号>选项,则-l参数会列出全部的信息名称。

    -s <信息名称或编号>  指定要送出的信息。

    [程序]  [程序]可以是程序的PID或是PGID,也可以是工作编号。

  4. 使用实例

    杀死一个进程

    kill 1922
    

    强制杀死进程

    kill -KILL 1922
    

    彻底杀死进程

    kill -9 1922
    

    杀死指定用户所有进程

    1. 方法一 过滤出用户进程

      kill -9 $(ps -ef | grep junsunny) 
      
    2. 方法二,直接杀死

      kill -u junsunny
      
  5. 注意

    上面列举了很多kill进程的命令

    但是我们我们常用的就是kill -9命令,我们常常找到进程的pid

    然后通过kill -9进行杀死进程

6.reboot (重启命令)

  1. reboot命令用于用来重新启动计算机

    使用者权限:管理员、普通(需要验证)用户

  2. 语法如下:

    reboot [-n] [-w] [-d] [-f] [-i]
    
  3. 参数

    -n : 在重开机前不做将记忆体资料写回硬盘的动作

    -w : 并不会真的重开机,只是把记录写到 /var/log/wtmp 档案里

    -d : 不把记录写到 /var/log/wtmp 档案里(-n 这个参数包含了 -d)

    -f : 强迫重开机,不呼叫 shutdown 这个指令

    -i : 在重开机之前先把所有网络相关的装置先停止

  4. 代码实例

    开始重新启动

    reboot
    

    image-20221001153235293

  5. 注意事项

    我们使用的是云服务器,所以在重启时mac电脑的终端会退出,在给主机配置shell主题时会用到

7. clear命令(清屏)

  1. clear命令用于清除屏幕

    使用者权限:所有使用者都可使用。

  2. 语法

    clear
    

    Mac 快捷键 contorl + l

8.exit(退出shell)

  1. exit命令用于退出目前的shell

    执行exit可使shell以指定的状态值退出。若不设置状态值参数,则shell以预设值退出。状态值0代表执行成功,其他值代表执行失败。exit也可用在script,离开正在执行的script,回到shell。

  2. 语法

    exit
    

4.linux常用插件安装

1. 主题

  1. 很多同学学习linux会觉得枯燥无味,没有window的傻瓜式操作,没有mac的ui炫酷,其实不然,linux中也有很多炫酷的玩法,只是我们的功力不够玩不动,ubuntu中有很多改造主题和终端的教程,可以多去linux社区学习https://www.linuxidc.com/theme/

  2. 安装zsh

    sudo yum install zsh
    
  3. 查看系统有哪些shell,出现zsh安装成功,系统默认是没有安装zsh的。

    cat /etc/shells
    

    image-20221008001446945

    切换shell,不需要使用sudo权限,如果用sudo执行这条命令,结果是设置root用户的shell为zsh了,而不是当前用户,切换完成后重启终端。

    chsh -s /bin/zsh
    

    查看当其shell是否为zsh,切换成功将会看到输出 /bin/zsh

    echo $SHELL
    
  4. 安装完zsh后安装zsh主题oh my zsh

    wget https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh -O - | sh
    

    终端出现oh my zsh的图案表示安装成功

    img

    也可以手动去github下载安装

    git clone git@github.com:ohmyzsh/ohmyzsh.git ~/.oh-my-zsh # 克隆主题
    cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc # 将.zshrc移动到root目录下
    

    安装完成后重启终端,然后就是这个b样,这个是默认的主题

    reboot
    

    img

    注意:

    ​ 如果没出出现这个还是默认提示,请查看自己root目录下的.zshrc中文件,按照下面步骤操作就行

    vi .zshrc # 创建.zshrc文件 如果存在这个文件先执行 rm -rf .zshrc
    

    将下面内容拷贝到指定目录里面

    # If you come from bash you might have to change your $PATH.
    # export PATH=$HOME/bin:/usr/local/bin:$PATH
    
    # Path to your oh-my-zsh installation.
    export ZSH="$HOME/.oh-my-zsh"
    # load a random theme each time oh-my-zsh is loaded, in which case,
    # to know which specific one was loaded, run: echo $RANDOM_THEME
    # See https://github.com/ohmyzsh/ohmyzsh/wiki/Themes
    ZSH_THEME="robbyrussell" # 设置主题背景
    
    # Set list of themes to pick from when loading at random
    # Setting this variable when ZSH_THEME=random will cause zsh to load
    # a theme from this variable instead of looking in $ZSH/themes/
    # If set to an empty array, this variable will have no effect.
    # ZSH_THEME_RANDOM_CANDIDATES=( "robbyrussell" "agnoster" )
    
    # Uncomment the following line to use case-sensitive completion.
    # CASE_SENSITIVE="true"
    
    # Uncomment the following line to use hyphen-insensitive completion.
    # Case-sensitive completion must be off. _ and - will be interchangeable.
    # HYPHEN_INSENSITIVE="true"
    
    # Uncomment one of the following lines to change the auto-update behavior
    # zstyle ':omz:update' mode disabled  # disable automatic updates
    # zstyle ':omz:update' mode auto      # update automatically without asking
    # zstyle ':omz:update' mode reminder  # just remind me to update when it's time
    
    # Uncomment the following line to change how often to auto-update (in days).
    # zstyle ':omz:update' frequency 13
    
    # Uncomment the following line if pasting URLs and other text is messed up.
    # DISABLE_MAGIC_FUNCTIONS="true"
    
    # Uncomment the following line to disable colors in ls.
    # DISABLE_LS_COLORS="true"
    
    # Uncomment the following line to disable auto-setting terminal title.
    # DISABLE_AUTO_TITLE="true"
    
    # Uncomment the following line to enable command auto-correction.
    # ENABLE_CORRECTION="true"
    
    # Uncomment the following line to display red dots whilst waiting for completion.
    # You can also set it to another string to have that shown instead of the default red dots.
    # e.g. COMPLETION_WAITING_DOTS="%F{yellow}waiting...%f"
    # Caution: this setting can cause issues with multiline prompts in zsh < 5.7.1 (see #5765)
    # COMPLETION_WAITING_DOTS="true"
    
    # Uncomment the following line if you want to disable marking untracked files
    # under VCS as dirty. This makes repository status check for large repositories
    # much, much faster.
    # DISABLE_UNTRACKED_FILES_DIRTY="true"
    
    # Uncomment the following line if you want to change the command execution time
    # stamp shown in the history command output.
    # You can set one of the optional three formats:
    # "mm/dd/yyyy"|"dd.mm.yyyy"|"yyyy-mm-dd"
    # or set a custom format using the strftime function format specifications,
    # see 'man strftime' for details.
    # HIST_STAMPS="mm/dd/yyyy"
    
    # Would you like to use another custom folder than $ZSH/custom?
    # ZSH_CUSTOM=/path/to/new-custom-folder
    
    # Which plugins would you like to load?
    # Standard plugins can be found in $ZSH/plugins/
    # Custom plugins may be added to $ZSH_CUSTOM/plugins/
    # Example format: plugins=(rails git textmate ruby lighthouse)
    # Add wisely, as too many plugins slow down shell startup.
    # 添加插件的地方
    plugins=(git)
    
    source $ZSH/oh-my-zsh.sh
    
    # User configuration
    
    # export MANPATH="/usr/local/man:$MANPATH"
    
    # You may need to manually set your language environment
    # export LANG=en_US.UTF-8
    
    # Preferred editor for local and remote sessions
    # if [[ -n $SSH_CONNECTION ]]; then
    #   export EDITOR='vim'
    # else
    #   export EDITOR='mvim'
    # fi
    
    # Compilation flags
    # export ARCHFLAGS="-arch x86_64"
    
    # Set personal aliases, overriding those provided by oh-my-zsh libs,
    # plugins, and themes. Aliases can be placed here, though oh-my-zsh
    # users are encouraged to define aliases within the ZSH_CUSTOM folder.
    # For a full list of active aliases, run `alias`.
    #
    # Example aliases
    # alias zshconfig="mate ~/.zshrc"
    # alias ohmyzsh="mate ~/.oh-my-zsh"
    # 我设置的一些快捷指令 
    # alias vi='vim'
    # alias ..='cd ..'
    # alias ~='cd ~'
    
  5. 修改自己喜欢的主题

    默认的主题是robbyrussell

    查看更多的主题配色

    https://github.com/ohmyzsh/ohmyzsh/wiki/Themes
    

    oh my zsh 提供了几十种主题,相关文件在~/.oh-my-zsh/themes目录下,可以随意设置自己喜欢的主题,我选择的主题是agnoster

    image-20221008102155342

    修改上面的文件信息agnoster

    这个主题配色会存在问题,因为缺失字体,需要下载对应的字体包

    Additional setup:

    • Install one of the patched fonts from Vim-Powerline or patch your own for the special characters.
    • Optionally set DEFAULT_USER to your regular username followed by prompt_context(){} in ~/.zshrc to hide the “user@hostname” info when you’re logged in as yourself on your local machine.

    也可以执行依次下面代码

    # 1.clone git 上的字体项目
    git clone git@github.com:powerline/fonts.git --depth=1 # ssh clone 代码
    # 2.进入拷贝的目录
    cd fonts
    # 3.执行安装脚本
    ./install.sh
    # 删除文件
    cd ..
    rm -rf fonts
    

    安装完之后可能出现这样的情况

    image-20221008103725191

    在item2中进行如下配置

    Preferences —> Profiles --> Text

    image-20221008104309922

    安装完并配置之后是这样的

    image-20221008101856495

  6. 添加zsh常用插件

    zsh-syntax-highlighting 主要是shell 语法高亮

    效果如下

    img

    ***zsh-autosuggestions***自动补全插件,输入命令后会自动提示相关命令,使用方向键可以实现自动补全。

    效果如下

    image-20221008104748813

    git clone git@github.com:zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
    

    安装步揍

    # shell 语法高亮
    git clone git@gitcode.net:mirrors/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting 
    # 自动补全插件
    git git@gitcode.net:mirrors/zsh-users/zsh-autosuggestions.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestion
    # 配置zsh插件设置
    plugins=(git docker z zsh-syntax-highlighting zsh-autosuggestions) 
    # 重启zsh
    zsh
    
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小白迷上java

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值