(1)如果不会装虚拟机和Ubuntu,建议跟着韦东山老师的课程来安装,绝大多数事情他都帮你做好了。跟着视频的来即可。 韦东山老师视频链接。
(2)跟着视频做可能还是会有很多不懂的,比如什么是Shell ,为什么要这么操作。在韦东山老师的视频里面,你常常能够看到他一顿操作猛如虎,自己一看啥也不懂。先不用管,按照他的来操作,之后熟悉了再回来学习也不迟。
(3)对于新手而言,入门Linux,装好虚拟机和Ubuntu后,第一件事就是学习Linux的操作指令。因为Linux操作指令非常多,而且很多并不是经常使用的,所以对于新手而言不必过多了解。
(4)这里,我介绍Linux的指令会尽可能的配合Windows来进行介绍,方便第一次接触Linux的同学们学习。
(5)邀请加入 嵌入式社区,您可以在上面发布问题,博客链接,公众号分享,行业消息,招聘信息等。
指令结构说明
(1)当我们在 Ubuntu 中打开终端后,我们能够看到如下提示符
出现这个提示符表示可以进行操作了,但是可能有人会疑惑,这是什么意思?
1,首先@之前的是表示当前登录的用户名,如果你是按照韦东山老师的视频安装的,应该都是book用户。但是如果是按照别的教学视频来的,可能名字不一样,没太大关系。
2,后面这个主机名也是不需要过多关注,按照不同教学视频安装的Ubuntu可能名字不同。可以自己修改,修改方法自己网上查找即可。
3,冒号‘:’后面这个表示自己当前所在目录(你可以理解为所在的文件夹,这个后面会讲)。
4,一般都是普通用户,如果你喜欢删库跑路就需要设置为root管理员了。root权限最大,但也很危险,容易出现不可逆转的问题,比如删库跑路。
(2)Linux 命令一般由三部分组成:command 命令; options 选项;parameter 参数;
1,[ ]中括号表示 该部分可选,可有可无,需要根据命令的实际需要而添加;
2,命令、选项、参数之间是以空格来隔开的, 一个或多个空格都视为1个空格。
3,完成linux命令输入后,按下enter键,即可执行该命令。
4, Linux的操作指令是分大小写的!
(3)
1,关于上述的空格和回车键执行命令可能都很好理解,关于[ ]可有可无有些人可能依旧不太懂。我举个例子,因为Linux指令非常多,很容易记不住,除了百度还有什么办法吗?我们可以直接在终端中输入:‘指令’+‘--help’。来查看指令的用法。
2,首先,我们查看pwd这一个指令的用法,终端显示pwd: pwd [-LP]。表明可以只需要输入一个pwd就可以执行指令了。
3,注意, 在[]里面,他们是用的大写字母L和P,所以当我使用小写的l时候,他发出了报错。
常用指令
目录/文件操作命令
pwd
(1)pwd:显示当前所在的目录
(2)只需要了解直接使用pwd这一个指令即可,上面解释后面加L或者P,不需要了解是啥。
(3)在Linux中查看自己当前目录需要通过pwd指令,而Windows只需要看一下上面这个窗口即可知道自己路径。
ls
(1)普通用法及文件颜色说明
1,ls:显示当前目录下的文件。
2,在Linux中使用ls查看当前目录下的文件时候,会有疑惑。怎么有些文件是蓝色,有些是白色,而有一些是绿色呢?这有什么区别吗?
3, 常见的是绿色,红色,蓝色和白色。
颜色 | 含义 | 颜色 | 含义 |
绿色 | 可执行文件 | 红色 | 压缩文件或者包文件 |
蓝色 | 目录(文件夹) | 白色 | 普通,如文本文件,配置文件,源码文件等 |
浅蓝色 | 链接文件,主要是使用ln命令建立的文件 | 红色闪烁 | 表示链接的文件有问题 |
黄色 | 设备文件 | 灰色文件 | 其它文件 |
(2)-a 显示隐藏文件
1,ls -a -a:显示所有的文件(包括隐藏文件)
2,ubuntu 里面以“.”开头的全部是隐藏文件。
3,'.' 表示的是当前目录 ;'..' 表示的是上一级目录
(3)-l 显示文件详细信息
1,ls -l -l: 显示文件的详细信息,比如说文件的形态、权限、所有者、大小信息等。
2,在Windows中可以直接查看文件的形态,修改时间和大小等信息。
(4)详细信息中的意思
第一个参数含义
第一个参数表示文件类型。只要了解d和-即可。
d | 目录文件 | b | 块设备文件 |
- | 普通文件 | c | 字符设备文件 |
p | 管理文件 | s | 套接字文件 |
I | 链接文件 |
文件权限及其查看用户组别
r | 读权限 | x | 可执行权限 |
w | 写权限 | - | 没有权限 |
后面九个参数是三个三个一起的。 第一组三个rwx表示文件拥有者所有的权限,第二组表示同组其他用户,其他用户权限。但是,这个时候有人可能就会有疑惑了,文件的拥有者是谁呢?我怎么知道这两个用户是否为同一组的呢?
其他参数含义
剩下的不需要多说了,这个链接数不需要过多纠结。新手知道这个表示链接数即可。
(5)-a和-l可以分开使用,也可以合并使用。
cd
(1)普通用法
cd:切换路径。
格式: cd 路径;
(2)cd ./
cd ./ :从当前目录开始(相对路径),进入当前目录的一个子目录
(3)cd ~
cd ~ : 进入家目录
(4)cd .. :返回到上一级路径。比如我现在在Desktop目录下的abc目录,那么我输入cd ..,就会返回Desktop目录。
(5)cd -
cd - : 切回到上一次的路径。这个Windows里面按退格键 Backspace,返回上次浏览的目录。因为不太好演示,想了解Windows中切换的,自己尝试一次就明白了。
mkdir
(1)普通用法
mkdir:新建目录(目录也称为文件夹)
格式: mkdir 文件名;
(2)注意事项
1, Linux是区分大小写的,所以目录A和目录a 是不同的。
2,当相同名字的目录存在时,无法创建目录。
(3)-p 建立多级目录
这个时候有人会觉得,如果我想一次性建一个多级目录(目录b中有目录c,目录c中有目录d)怎么做呢?
格式: mkdir -p 文件名/文件名/文件名;
touch
touch: 新建文件。如果该文件名已有,那么就只是改变这个文件的修改时间
格式: touch 文件名字;
mv
(1)用法
mv :修改文件/目录名和移动文件。
格式: mv 源文件 要修改后的名字; mv 源文件 移动到的路径
(2)源文件必须在当前目录
需要注意,mv移动的源文件必须是当前目录下的。
(3)区分改名还是移动路径
通过上面这两张图,我们会发现,mv的移动文件和修改文件名字的操作似乎是一样的,如何区分呢?其实很简单,如果 要修改后的名字或者移动到的路径这一部分如果是路径(./B这种),那么就是移动,否则为改名。
cp
(1)复制文件到当前目录
cp:复制文件/目录(需要注意,复制目录需要加上-r)
格式: cp 文件 文件; cp -r 目录 目录;
(2)复制文件到其他目录
格式: cp -r 目录 路径; cp 文件 路径;
cat
(1)普通用法
cat:将文件内容显示到终端中
格式: cat 文件名;
(2)-b 显示文本行号
可能有一些人想看看文本的行编号,可以假如-b这条命令。
格式: cat -b 文件名;
rmdir
rmdir:删除目录(该目录下不能有文件,比较鸡肋一般用rm代替)
rm
rm:删除文件/目录
格式: rm 文件; rm -rf 目录;(这里需要注意,r表示递归删除,f表示强制删除。删除目录不需要-f,随便你加不加。 )
屏幕操作指令
clear
clear:刷新屏幕,但是会保留历史记录
rest
reset :重新初始化屏幕,历史记录也会被清除
权限指令
阅读这一部分之前,我们可能需要回到ls指令的(4)部分回顾一下详细信息的意思。
sudo
sudo:以系统管理者的身份 临时执行指令。在指令前面加上sudo,所执行的指令就好像是 root 亲自执行。因为root权限比较大,所以建议不要切换为root用户,需要的时候再使用sudo临时使用sudo。
格式: sudo 其他需要执行的指令;
su
su:切换为用户。
格式: su 用户名;
groups
(1)查看当前用户所在组
(2)查看指定用户用户组
要查看用户的用户组,通过切换用户的方式多少有点麻烦。我们可以直接查看指定用户的用户组。
格式: groups 用户名;
chmod
含义
chmod:改变文件权限
格式: chmod 设置权限 文件名;
权限设置部分解析
(1)首先,ls指令的 详细信息中的意思这一部分得知,有三种用户(拥有者,与拥有者同组,其他用户)。于是当我们在设置权限的时候分为了三个部分,也就组成了一个三位数。
(2)首先我们看名字为CSDN的这个文件,用户权限为rwx rwx r-x,把他拆解为三部分,‘-’部分填入数字0,非‘-’部分填入数字1。那么 rwx rwx r-x=111 111 101,三个部分分别转化为十进制就是775( , )。
示例
注意:root用户在root组,book用户在book组。所以我将更改权限为665(110 110 101)进行实验。
快捷用法
有时候,我们可能会想要用户的的某一个权限消失,又感觉通过换算的方式太麻烦,怎么办呢?
格式: chmod 指令 文件名;
-R递归修改权限
有时候我们想把整个目录下的所有文件更改为同一种权限,那么我们可以用-R。( 注意此处是大写R)
格式: chmod -R 要设置的权限数值 文件名;
chgrp
chgrp:改变文件所属用户组
格式: chgrp 用户组 文件名;
chown
chown:改变文件所有者
格式: chown 用户名:组名 文件/目录;
需要注意的是,低权限用户无法将文件提升到高于自己权限的用户。
查找/搜索命令
Linux系统不像windows那些图形化比较直观,有时候我们需要找一个文件会很麻烦,于是我们可以用过以下这两个指令来进行查找我们所需要的文件。 需要注意,如果文件比较多,会查找比较慢,不想查找了可以按Ctrl+c退出查找。
find
常规用法
find -name 文件:可以查找当前目录下的文件名字
指定目录查找
find 指定目录 -name 文件:指定目录下搜索文件
find 指定目录 -name "*指定字母*":在指定目录下( 如果指定目录这里不写,就是当前目录下所有文件都进行查找),找到指定文件。 *是通配符号,所以只要有指定字母的文件都能够找到。
grep
常规用法
grep "指定内容" 指定查找的文件:可在该目录所有文件中,查找指定内容在哪个文件中。不过需要注意,子目录中的文件不会进行查找。 指定查找的文件部分是‘*’,那么表示将该目录下的所有文件进行一次查找。
-r查找当前目录下所有目录的文件
从上面我们可以知道,如果常规写法,不能够查找子目录的文件内容。所以,当我们想查找当前目录下的所有文件内容,需要加上-r。
格式: grep "指定内容" * -r;
-n显示内容在文件的第几行
有时候,我们可能会想知道查找的内容在文件的第几行。这样方便我们快速查看到内容,加入-n即可实现。
格式: grep "指定内容" * -n;
-w整词查找
如果我们查找某一行都是指定字母就可以使用-w。 需要注意,查找中文的时候可能会出现异样,无法实现真正的整词查找,所以尽量能够英文就英文。
格式: grep "指定内容" * -n;
压缩解压指令
1,可以只掌握tar命令,因为gzip和bzip2的作用tar命令都可以实现, 而且前两者只可以处理文件,不可以处理目录。
2,在执行压缩命令的时候,我们需要一个较大的文件。因为,如果是一个比较小的文件进行压缩命令之后,文件大小反而可能变大,一般建议大于2MB再压缩。
//建立一个大文件
dd if=/dev/zero of=test bs=1024 count=1024
gzip
压缩文件
gzip -k 文件名: 压缩/解压文件,保留之前的文件,不删除之前的文件。最后得到一个.gz的文件
gzip 文件名:不会保留之前的文件
解压文件
gzip -dk 文件名:解压文件。如果有相同文件名的文件,将会提示覆盖。
bzip2
bzip2压缩率比gzip更高,所以最终产生的文件所占空间也小一些
压缩文件和解压文件
bzip2 -k 文件名:压缩/解压文件,保留之前的文件。最后得到一个.bz2的文件
bzip2 文件名:压缩文件,但是不保留之前的文件
bzip2 -dk 文件名:解压文件,同时保留原来的文件。
tar
-c | 创建一个新的打包文件 |
-x | 对打包文件进行解压缩 |
-z | gzip 格式进行压缩或者解压,与这个参数常结合的有 c 和 x 这个参数,如果与 c 结合,他 就是压缩,如果与 x 结合 ,他就是解压缩。后缀 tar .gz |
-j | 以 bzip2 的格式进行压缩或者解压。如果与 c 结合,就是压缩,如果与 x 结合就是解压缩, 后缀 tar .bz2 |
-f | 表示要操作的文件,一般放在所有参数最后面 |
-C | 将压缩文件解压到指定路径 |
格式: tar 指令 文件;