1. 开发linux常用指令操作
1.文档操作常用指令
命令 | 功能描述 |
---|---|
ls | 列出目录 |
cd | 切换目录 |
pwd | 显示目前的目录 |
mkdir | 创建一个新的目录 |
rmdir | 删除一个空的目录 |
cp | 复制文件或目录 |
rm | 移除文件或目录 |
mv | 移动文件与目录或修改文件与目录的名称 |
自动补全
- 在敲出 文件/ 目录 / 命令 的前几个字母之后, 按下
tab
键 - 如果还存在其他 文件 / 目录 / 命令, 再按一下tab键, 系统会提示可能存在的命令
1. ls (列出目录)
-
ls命令相当于我们在Windows系统中打开磁盘、或者打开文件夹看到的目录以及文件的明细
在Linux系统当中, ls 命令算是比较常用的命令
使用者权限:所有使用者都可使用。
-
语法如下:
ls [选项] 目录名称
-
选项与参数:
参数 参数功能 -a 全部的文件,连同隐藏档( 开头为 . 的文件) 一起列出来(常用) -d 仅列出目录本身,而不是列出目录内的文件数据(常用) -l 长数据串列出,包含文件的属性与权限等等数据;(常用) 目录名 查看目录的文件和文件夹 -
代码实例
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(显示当前目录)
-
pwd 是 Print Working Directory 的缩写,也就是显示目前所在当前目录的命令。
使用者权限:所有使用者都可使用。
-
查看当前所在目录
pwd
3.cd (切换目录)
-
cd是Change Directory的缩写,这是用来变换工作目录的命令
使用者权限:所有使用者都可使用。
-
语法如下:
cd [相对路径/绝对路径]
绝对路径:(在编写shell脚本建议使用绝对路径)
路径的写法,由根目录 / 写起,例如: /usr/share/doc 这个目录。
相对路径:
路径的写法,不是由 / 写起,例如由 /usr/share/doc 要到 /usr/share/man 底下时,可以写成: cd …/man 这就是相对路径的写法啦!
-
代码实例
当前工作目录是 /usr, 使用相对路径 切换到 /usr/tmp 目录下
cd ./tmp # 相对路径 cd /urs/tmp # 绝对路径
-
特殊的cd命令
cd .. # 返回上一级目录 cd # 返回当前用户的home目录 cd / # 返回根目录
4. mkdir(创建目录)
-
mkdir命令用于建立名称为 dirName 之子目录
使用权限:于目前目录有适当权限的所有使用者
-
语法
mkdir [-p] dirName
-
参数说明:
-p 确保目录名称存在,不存在的就建一个
-
代码实例
mkdir test # 创建单个目录 mkdir test/test # 创建多级目录
5. cp(文件复制)
-
cp命令主要用于复制文件或目录。
使用权限:于目前目录有适当权限的所有使用者
-
语法
方式一
cp [options] source dest
方式二
cp [options] source... directory
-
参数说明:
参数 参数功能 -a 此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容。其作用等于dpR参数组合。 -d 复制时保留链接。这里所说的链接相当于Windows系统中的快捷方式 -f 覆盖已经存在的目标文件而不给出提示。 -i 与-f选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答"y"时目标文件将被覆盖。 -p 除复制文件的内容外,还把修改时间和访问权限也复制到新文件中。 -r/R 若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件。 -l 不复制文件,只是生成链接文件。 -
代码实例
cp -r aaa/* ccc # 将aaa 文件下的所有文件级文件夹复制到当前目录ccc 下
-
注意事项
用户使用该指令复制目录时,必须使用参数"-r"或者"-R"。
如果不加参数"-r"或者"-R",只复制文件,而略过目录
6. rm (删除目录)
-
rm命令用于删除一个文件或者目录。
使用权限:于目前目录有适当权限的所有使用者
-
语法
rm [options] name...
-
参数:
参数 参数功能 -i 删除前逐一询问确认。 -f 即使原档案属性设为唯读,亦直接删除,无需逐一确认。 -r 将目录及以下之档案亦逐一删除。 -
代码实例
如果我们要删除文件可以直接使用rm命令,若删除目录则必须配合选项"-r"
rm -rf test # 强制删除 test子目录及其文件夹
-
注意
文件一旦通过rm命令删除,则无法恢复,所以必须格外小心地使用该命令
如果删除文件(比如.sh 、.txt)
直接使用rm name.txt
7. mv(移动文件)
-
mv 命令用来为文件或目录改名、或将文件或目录移入其它位置
使用权限:于目前目录有适当权限的所有使用者
-
语法
mv [options] source dest mv [options] source... directory
-
参数说明:
- -i: 若指定目录已有同名文件,则先询问是否覆盖旧文件;
- -f: 在 mv 操作要覆盖某已有的目标文件时不给任何指示;
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ahSgN9kK-1665291240492)(https://pick2.oss-cn-beijing.aliyuncs.com/NoteImage/NoteImage/笔记图片/202201020051798.png)]
8.scp(上传及下载文件)
-
scp是 secure copy的缩写, scp是linux系统下基于ssh登陆进行安全的远程文件拷贝命令。linux的scp命令可以在linux服务器之间复制文件和目录
-
语法
scp [参数] [原路径] [目标路径]
-
参数说明
-C 允许压缩。(将-C标志传递给ssh,从而打开压缩功能)
-p 保留原文件的修改时间,访问时间和访问权限。
-q 不显示传输进度条。
-r 递归复制整个目录。
-
使用实例
从本地复制到远程
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进行创建并编辑)
-
touch命令用于创建文件、修改文件或者目录的时间属性,包括存取时间和更改时间。若文件不存在,系统会建立一个新的文件。
使用权限:于目前目录有适当权限的所有使用者
-
语法
touch [-acfm][-d<日期时间>][-r<参考文件或目录>] [-t<日期时间>][--help][--version][文件或目录…]
-
参数说明:
- -a 改变档案的读取时间记录。
- -m 改变档案的修改时间记录。
- -c 假如目的档案不存在,不会建立新的档案。与 --no-create 的效果一样。
- -f 不使用,是为了与其他 unix 系统的相容性而保留。
- -r 使用参考档的时间记录,与 --file 的效果一样。
- -d 设定时间与日期,可以使用各种不同的格式。
- -t 设定档案的时间记录,格式与 date 指令相同。
- –no-create 不会建立新档案。
- –help 列出指令格式。
- –version 列出版本讯息。
10. Linux 文件基本属性
-
Linux系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限。为了保护系统的安全性,Linux系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定。
-
在Linux中我们可以使用ll或者ls –l命令来显示一个文件的属性以及文件所属的用户和组,如:
ls -l
-
实例中,bin文件的第一个属性用"d"表示。"d"在Linux中代表该文件是一个目录文件。
在Linux中第一个字符代表这个文件是目录、文件或链接文件等等。
- 当为[ d ]则是目录
- 当为[ - ]则是文件
- 若是[ l ]则表示为链接文档(link file)
- 若是[ b ]则表示为装置文件里面的可供储存的接口设备(可随机存取装置)
- 若是[ c ]则表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)
-
接下来的字符中,以三个为一组,且均为『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位确定其他用户拥有该文件的权限。
-
总结
其中,第1、4、7位表示读权限,如果用"r"字符表示,则有读权限,如果用"-"字符表示,则没有读权限;
第2、5、8位表示写权限,如果用"w"字符表示,则有写权限,如果用"-"字符表示没有写权限;
第3、6、9位表示可执行权限,如果用"x"字符表示,则有执行权限,如果用"-"字符表示,则没有执行权限。
11 chmod权限命令
-
Linux文件属性有两种设置方法,一种是数字,一种是符号
Linux的文件调用权限分为三级 : 文件属主、属组、其他。利用 chmod 可以控制文件如何被他人所调用。
使用权限 : 所有使用者
-
语法
chmod [-cfvR] [--help] [--version] mode file...
-
参数说明
mode : 权限设定字串,格式如下
[ugoa...][[+-=][rwxX]...][,...]
-
解释:
u 表示该档案的拥有者,g 表示与该档案的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是。
+表示增加权限、- 表示取消权限、= 表示唯一设定权限。
r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该档案是个子目录或者该档案已经被设定过为可执行。 -
数字权限
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.文件查看(查看日志文件)
序号 | 命令 | 对应英文 | 作用 |
---|---|---|---|
01 | cat 文件名 | concatenate | 查看小文件内容 |
02 | less -N 文件名 | less | 分频 显示大文件内容 |
03 | tail -n 文件名 | 查看文件的最后部分 | |
04 | grep 关键字 文件名 | grep | 根据关键词, 搜索文本文件内容 |
05 | vi/vim 文件名 | 编辑日志文件,结合vi编辑器命令模式可以实现查看效果 |
1. cat命令
-
cat 是一个文本文件查看和连接工具。查看一个文件的内容,用cat比较简单,就是cat 后面直接接文件名,如cat txtFiles.txt
使用cat命令类似于我们在Windows中查看小型(太大的时候打开会卡死)的文件
使用者权限:当前文件的权限用户
-
语法格式
cat [-AbeEnstTuv] [--help] [--version] fileName
-
代码实例
查看文件名为devbuild.sh的内容
cat devbuild.sh
查看文件名为devbuild.sh的内容(加入行号)
cat -n devbuild.sh
2. grep命令
-
grep 指令用于查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样式,预设 grep 指令会把含有范本样式的那一列显示出来。若不指定任何文件名称,或是所给予的文件名为 -,则 grep 指令会从标准输入设备读取数据
grep命令在使用的时候类似于我们的程序中的查询,或者在txt文档中通过ctr+f查找
使用者权限:当前文件的权限用户
-
grep 命令用于查找文件里符合条件的字符串,语法如下:
grep [-abcEFGhHilLnqrsvVwxy][-A<显示列数>][-B<显示列数>][-C<显示列数>][-d<进行动作>][-e<范本样式>][-f<范本文件>][--help][范本样式][文件或目录...]
-
参数说明
主要选项[option]说明及示例:
- -c : 只输出匹配行的计数
- -i : 不区分大小写
- -l : 查询多文件时只输出包含匹配字符的文件名
- -n : 显示匹配行及行号
- -s : 不显示不存在或无匹配文本的错误信息
- -v : 显示不包含匹配文本的所有行
- -o : 只显示匹配字符串的部分
pattern正则表达式主要参数[即元字符]说明和示例
- ^ : 匹配正则表达式的以“某字符串”开头的行
- $ : 匹配正则表达式的以“某字符串”结尾的行
- [ ] : 单个字符,如[A] 即A 符合要求
- [^ ] : 显示不包括括号中字符串的所有行
- [ - ] : 范围匹配,如[A-C],即A、B、C都符合要求;如[a,b],即只有a和b符合要求
- . :单个字符,匹配任意一个字符
- *** :匹配“*”前面的字符,匹配0个或无数个**
- \ :用来屏蔽一个元字符的特殊含义,使其作为单纯的一个字符
3. tail命令
-
linux tail命令用途是按照要求将指定的文件的最后部分输出到标准设备,一般是终端,通俗来讲,就是把某个档案文件的最后几行显示到终端上,如果该档案有更新,tail会自动刷新,确保你看到最新的档案内容
使用者权限:当前文件的权限用户
-
语法
tail [ -f ] [ -c Number | -n Number | -m Number| -b Number | -k Number ] [ File ]
-
参数说明:
-f 该参数用于监视File文件增长。
-n Number 从 Number 行位置读取指定文件。注意:
上述命令中,都涉及到number,如果不指定,默认显示10行。
Number前面可使用正负号,表示该偏移从顶部还是从尾部开始计算。 -
代码实例
-
查看文件的 末尾十行 / 后五行 / 从五行开始到末尾
末尾十行
tail log
后五行
tail -n -5 log
从五行开始到末尾
tail -n +5 log
-
4. less命令
-
less 与 more 类似,但使用 less 可以随意浏览文件,而且 less 在查看之前不会加载整个文件。显示方面,显示内容方式不是输出到窗口,而是类似vi打开的文件一样,退出按q。
使用者权限:当前文件的权限用户
-
语法
less [参数] 文件
-
参数说明
-g 只标志最后搜索的关键词
-e 当文件显示结束后,自动离开
-i 忽略搜索时的大小写
-N 显示每行的行号
-Q 不使用警告音
-s 显示连续空行为一行
-S 行过长时间将超出部分舍弃
-x <数字> 将“tab”键显示为规定的数字空格
-
按键操作
/ 字符串:向下搜索“字符串”的功能
? 字符串:向上搜索“字符串”的功能
n:重复前一个搜索(与 / 或 ? 有关)
N:反向重复前一个搜索(与 / 或 ? 有关)
b 向后翻一页
d 向后翻半页
h 显示帮助界面
Q 退出less 命令
u 向前滚动半页
y 向前滚动一行
空格键 滚动一行
回车键 滚动一页 -
代码示例
-
查看文件内容
less test1.txt
-
ps查看进程信息并通过less分页显示
ps -ef | less
-
查看命令历史使用记录并通过less分页显示
history | less
-
浏览多个文件
less test1.txt test2.txt
-
-
附加备注
全屏导航
- ctrl + F - 向前移动一屏
- ctrl + B - 向后移动一屏
- ctrl + D - 向前移动半屏
- ctrl + U - 向后移动半屏
单行导航
- j - 下一行
- k - 上一行
其它导航
- G - 移动到最后一行
- g - 移动到第一行
- q / ZZ - 退出 less 命令
3. 系统管理
1 date (日期管理)
-
当前日期如果通过date进行设置,在系统重启后不会保存date的设置,常用的只是通过date命令查看日期
date 可以用来显示或设定系统的日期与时间
使用者权限:所有用户
-
语法如下:
date [参数选项]
-
参数
-d<字符串>:显示字符串所指的日期与时间。字符串前后必须加上双引号;
-s<字符串>:根据字符串来设置日期与时间。字符串前后必须加上双引号;
-u:显示GMT;
–help:在线帮助;
–version:显示版本信息 -
设置时间
用 -s选项可以设置系统时间,如下:
date -s "2019-12-11 16:15:00"
-
显示时间
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 (显示用户)
-
logname命令用于显示用户名称。
执行logname指令,它会显示目前用户的名称
-
语法为如下:
logname [--help][--version]
显示登录账号的信息
-
显示登录账号的信息
logname
3 sudo(root 权限执行)
-
比如我们使用普通用户操作用户或者操作用户组、以及修改网卡配置文件的时候,需要切换到root用户才操作,此时我们可以使用sudo命令提高普通用户的操作权限,以达到操作目的
sudo:控制用户对系统命令的使用权限,root允许的操作。
通过sudo可以提高普通用户的操作权限
使用者权限:普通用户
-
语法如下:
sudo -v [-AknS] [-g group] [-h host] [-p prompt] [-u user]
-
参数说明:
-V 显示版本编号
-h 会显示版本编号及指令的使用方式说明
-l 显示出自己(执行 sudo 的使用者)的权限
-v 因为 sudo 在第一次执行时或是在 N 分钟内没有执行(N 预设为五)会问密码,这个参数是重新做一次确认,如果超过 N 分钟,也会问密码
-k 将会强迫使用者在下一次执行 sudo 时问密码(不论有没有超过 N 分钟)
-b 将要执行的指令放在背景执行
-
sudo命令使用
sudo ls
-
指定root用户执行指令
sudo -u root ls -l
4.top命令(显示进程信息)
-
在企业级开发中,开发人员(运维人员也会经常使用)常常为了查看服务器上运行的程序占用的CPU情况以及占用内存情况,目的就是检测我们的程序是否在正常范围内运行
top命令用于实时显示 process 的动态。
使用权限:所有使用者。
-
显示进程信息
top
-
各进程(任务)的状态监控属性解释说明:
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
执行效果如下
显示指定的进程信息,以下显示进程号为6972的进程信息,CPU、内存占用率等
top -p 1922
-
top总结
top命令的用法很多
但是常用的就是top(不带参数),有的时候,在进程比较多的时候,我们常常记住进程的pid,然后通过top -p pid进行查看
也就是说,top+ top -p是经常被用到的
5.kill命令(结束进程)
-
Linux kill命令用于删除执行中的程序或工作(可强制中断)
使用者权限:所有用户
-
语法如下:
kill [-s <信息名称或编号>][程序] 或 kill [-l <信息编号>]
-
参数说明:
-l <信息编号> 若不加<信息编号>选项,则-l参数会列出全部的信息名称。
-s <信息名称或编号> 指定要送出的信息。
[程序] [程序]可以是程序的PID或是PGID,也可以是工作编号。
-
使用实例
杀死一个进程
kill 1922
强制杀死进程
kill -KILL 1922
彻底杀死进程
kill -9 1922
杀死指定用户所有进程
-
方法一 过滤出用户进程
kill -9 $(ps -ef | grep junsunny)
-
方法二,直接杀死
kill -u junsunny
-
-
注意
上面列举了很多kill进程的命令
但是我们我们常用的就是kill -9命令,我们常常找到进程的pid
然后通过kill -9进行杀死进程
6.reboot (重启命令)
-
reboot命令用于用来重新启动计算机
使用者权限:管理员、普通(需要验证)用户
-
语法如下:
reboot [-n] [-w] [-d] [-f] [-i]
-
参数:
-n : 在重开机前不做将记忆体资料写回硬盘的动作
-w : 并不会真的重开机,只是把记录写到 /var/log/wtmp 档案里
-d : 不把记录写到 /var/log/wtmp 档案里(-n 这个参数包含了 -d)
-f : 强迫重开机,不呼叫 shutdown 这个指令
-i : 在重开机之前先把所有网络相关的装置先停止
-
代码实例
开始重新启动
reboot
-
注意事项
我们使用的是云服务器,所以在重启时mac电脑的终端会退出,在给主机配置shell主题时会用到
7. clear命令(清屏)
-
clear命令用于清除屏幕
使用者权限:所有使用者都可使用。
-
语法
clear
Mac 快捷键 contorl + l
8.exit(退出shell)
-
exit命令用于退出目前的shell
执行exit可使shell以指定的状态值退出。若不设置状态值参数,则shell以预设值退出。状态值0代表执行成功,其他值代表执行失败。exit也可用在script,离开正在执行的script,回到shell。
-
语法
exit
4.linux常用插件安装
1. 主题
-
很多同学学习linux会觉得枯燥无味,没有window的傻瓜式操作,没有mac的ui炫酷,其实不然,linux中也有很多炫酷的玩法,只是我们的功力不够玩不动,ubuntu中有很多改造主题和终端的教程,可以多去linux社区学习https://www.linuxidc.com/theme/
-
安装zsh
sudo yum install zsh
-
查看系统有哪些shell,出现zsh安装成功,系统默认是没有安装zsh的。
cat /etc/shells
切换shell,不需要使用sudo权限,如果用sudo执行这条命令,结果是设置root用户的shell为zsh了,而不是当前用户,切换完成后重启终端。
chsh -s /bin/zsh
查看当其shell是否为zsh,切换成功将会看到输出 /bin/zsh
echo $SHELL
-
安装完zsh后安装zsh主题oh my zsh
wget https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh -O - | sh
终端出现oh my zsh的图案表示安装成功
也可以手动去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
注意:
如果没出出现这个还是默认提示,请查看自己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 ~'
-
修改自己喜欢的主题
默认的主题是robbyrussell
查看更多的主题配色
https://github.com/ohmyzsh/ohmyzsh/wiki/Themes
oh my zsh 提供了几十种主题,相关文件在~/.oh-my-zsh/themes目录下,可以随意设置自己喜欢的主题,我选择的主题是agnoster
修改上面的文件信息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
安装完之后可能出现这样的情况
在item2中进行如下配置
Preferences —> Profiles --> Text
安装完并配置之后是这样的
-
添加zsh常用插件
zsh-syntax-highlighting 主要是shell 语法高亮
效果如下
***zsh-autosuggestions***自动补全插件,输入命令后会自动提示相关命令,使用方向键
→
可以实现自动补全。效果如下
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