Linux基础知识

一、嵌入式为什么学C语言

C语言可以操作内存

二、虚拟机

【1】Vmware和Ubuntu的区别

Vmware:虚拟机---->在一个操作系统上搭建出另一个操作系统

wins—>linux

ubuntu:Linux的一个发行版本 ----->可以直接使用的,是操作系统和软件及桌面应用结合的。

【2】Linux操作系统

Linux免费的,开源的,避免了版权问题,可以裁剪,Linux是由unix演变而来的。

linus是Linux之父

(GNU is not unix)

GNU:GNU计划是计划打造一个和unix一样好用,但是不收费的操作系统。

GNU现在使用的仍然是Linux操作系统,gcc编译器也是GNU的产品

GPL协议:要求在GNU开发产品的基础上进行二次开发的产品,必须开放源码。

windows收费的,并且不开源。

macos----->Unix,收费的

三、熟悉Linux操作系统

【1】Linux的文件系统结构

wins下文件系统:依托于盘符,使用\引出路径

Linux下文件系统:倒插树结构,万物皆文件

Linux下文件,都是从根目录出发的并且以/作为路径。

Linux基础知识_第1张图片

【2】终端相关的操作

i)打开终端

  1. 鼠标点击

  2. ctrl+alt+t ----->如果安装termaintor打开的就是黑色的终端,没有安装打开的是系统默认的终端

黑色的终端可以分屏

  1. a.

  2. ctrl+shift+e ---->左右分屏

  3. b.

  4. ctrl+shift+o ----->上下分屏

  5. 鼠标右击桌面,再打开终端

ii)关闭终端

  1. 鼠标点击右上角

  2. ctrl+d关闭终端 ----->如果有多个终端,关闭鼠标所在的终端

  3. 输入exit关闭终端 ---->退出终端的本质是退出当前用户

iii)调整字体

  1. 放大字体:ctrl+shift+= ---->+需要按shift

  2. 缩小字体:ctrl±

【3】命令行提示符

ubuntu:用户名

@:分隔符

ubuntu:计算机名/主机名

~:在命令行提示符的第四个位置,表示的是当前路径----->当前工作路径,操作哪一个目录下的内容
----->表示 当前用户的家目录

$:普通用户权限

#:超级用户的权限

【4】切换用户

su 用户名

su 默认切换到超级用户,root

exit退出当前用户返回上一级用户,如果没有上一级用户直接退出当前终端。

【5】passwd

修改用户的密码

sudo passwd root ---->因为需要修改超级用户的密码所以需要加sudo

Linux基础知识_第2张图片

四、文件相关的操作

指令的格式

指令 参数 操作数

  1. 上面是指令的标准格式

  2. 指令和参数以及操作数之间,都以空格作为分隔

  3. 由于shell解析器在不断的更新,有一些指令也支持:指令 操作数 参数

【1】ls

ls 路径/文件名

自动探测

自动换行

1、ls 路径,显示路径下的所有文件
2、ls 文件名,把文件名回显到终端

ls的参数

自动探测

自动换行

ls -a,查看路径下的所有文件,包括隐藏文件
ls -l,显示路径下文件所有信息
ls -h,带单位的显示文件的信息,通常和-l一起使用,给文件的大小带单位显示
ll <===> ls -al

-rw-rw-r-- 1 ubuntu ubuntu 93 六月 27 10:08 test.c

文件的类型

七种文件的类型:bcd-lsp

自动探测

自动换行

b:块设备文件
c:字符设备文件
d:目录文件
-:普通文件
l:link软链接文件
s:套接字文件
p:管道文件

rw-rw-r-- 用户对文件的权限,前三个字母表示所属用户的权限,中间三个字母所属组用户的权限,最后三个字母其他用户的权限

1 硬链接文件的个数

ubuntu 所属用户----->默认是创建文件的用户

ubuntu 组用户

93 文件的大小

六月 27 10:08 文件的时间戳,文件最后被修改的时间

test.c 文件名

【2】文件的权限

rwx ----->文件权限在文件详细信息中的位置是固定的,不会修改的,如果缺少了哪个权限,该权限的位置就是-

自动探测

自动换行

r:read可读      八进制数字表示:  r  4
w:可写                          w  2
x:可执行                        x  1
-:无权限

【3】修改文件的权限---->chmod

i)使用字母表示法修改文件权限

chmod 用户+/-/=权限 文件名

用户的字母表示

所属用户:u 其他用户:o

所属组用户:g 所有用户:a

touch 1 ----->修改文件1的用户权限,把所属用户的可写权限取消,给所属组用户添加可执行权限,给其他用户添加可写权限。

Linux基础知识_第3张图片

ii)八进制表示法修改文件权限

chmod 八进制数 文件名

接着上一道练习,myfile的权限:775、、、

给其他用户取消可执行权限:chmod 774 myfile,chmod 0774 myfile ----->0为八进制数的前导符

文件权限的八进制表示法,默认八进制数**“靠右原则”**,如果只有一个八进制数给其他用户使用

【4】创建文件 touch

touch 文件名 ---->创建文件

自动探测

自动换行

1、文件不存在,创建文件
2、文件存在,更改文件的时间戳

【5】rm删除文件

自动探测

自动换行

rm 文件名   ----->删除文件

【6】mkdir ---->创建目录

mkdir 目录名 ----->创建的目录在当前路径下

使用mkdir创建多级路径:mkdir 100/1/2/3 -p

Linux基础知识_第4张图片

创建100/dir1/dir2/dir3

【7】rmdir ---->删除目录

rmdir 目录名(路径) ------>删除指定路径的目录

删除非空目录: rm -r 路径 ---->删除指定路径的目录

练习:

1、在家目录下创建目录mydir,在mydir中创建dir1/dir2/dir3,在dir3中创建文件file,

并一步删除目录mydir

mkdir mydir

mkdir mydir/dir1/dir2/dir3 -p

touch mydir/dir1/dir2/dir3/file

rm -r mydir

【8】cd ---->切换路径

cd 指定路径 ----->切换到指定路径下

cd 默认切换到当前用户的家目录

使用cd时的注意事项:

  1. 如果使用cd切换路径后,还进行其他的操作,要及时使用pwd做路径检查

自动探测

自动换行

.  当前路径
..  上一级路径
 
绝对路径和相对路径
 
绝对路径:从根目录出发的路径
相对路径:相对于当前路径出发的路径
 
~:相对路径,相对于当前用户而言的
/:根目录,绝对路径

【9】pwd

pwd用于显示当前的绝对路径

【10】cp

cp 源文件的路径 目标路径

自动探测

自动换行

1、如果目标路径和源路径都是文件,就是把源文件拷贝一份命名为目标文件的过程
如果目标文件存在,覆盖目标文件;如果目标文件不存在,创建目标文件
2、如果目标路径是一个目录,就是把源文件拷贝到目标路径中
如果目标路径中存在和源文件同名文件,覆盖目标文件;如果目标路径中不存在和源文件同名文件,创建目标文件
3、如果目标路径和源路径都是目录,需要加上-r参数,实现目录的拷贝,把源目录拷贝到目标目录中

【11】mv —>move

移动文件/剪切文件

mv 源路径 目标路径

自动探测

自动换行

1、mv源路径和目标路径都是目录时,把源目录剪切到目标目录中,源目录不存在了
2、源路径和目标路径都是文件时,如果目标文件存在,是使用源文件覆盖目标文件的过程
如果目标文件不存在,相当于给源文件重命名
3、源路径是文件,目标路径是目录,如果目标路径中存在和源文件同名文件,就是覆盖
如果目标路径中不存在和源文件同名文件,就是把源文件移动到目标路径下并重命名

【12】cat

查看文件的内容

cat 文件名 ----->cat的操作数一定是文件名

【13】echo

echo 字符串 ------>在终端回显字符串

如果echo后面跟文件名,打印文件名到终端。

自动探测

自动换行

echo  "ooo\n"  ---->输出结果 ooo\n
echo默认不解析转义字符
echo -e "ooo\n"  ---->输出结果是ooo+空行
-e参数让echo解析转义字符

【14】重定向符

自动探测

自动换行

>>追加    >重定向
cat 1.c > 4.c
1、如果4.c存在并且有内容,把1.c中的内容放到4.c中并覆盖掉4.c原有的内容
cat 1.c > 4.c,如果4.c存在但是没有内容,把1.c中的内容放到4.c中
2、cat 1.c > 4.c,如果4.c不存在,创建文件4.c,把1.c中的内容放到4.c中
echo ooo > 1.c
1、如果1.c存在,把ooo字符串放到1.c中覆盖原有内容
2、如果1.c不存在,先创建一个1.c,把ooo放到1.c中
 
cat 1.c >> 4.c
1、如果4.c存在,把1.c的内容追加到4.c后面
2、如果4.c不存在,创建4.c文件,把1.c中的内容追加到新文件中
echo ooo >> 4.c
1、如果4.c存在,把ooo追加到4.c的后面
2、如果4.c不存在,创建一个4.c,把ooo追加到新文件中

【15】whoami

直接在终端输入whoami,查看当前用户

【16】hostname

直接在终端输入hostname,查看当前计算机名

【17】wc (word count)

自动探测

自动换行

wc 文件名  ---->回显文件的行数、单词数和字符个数
wc -l 文件名  ---->回显文件的行数
wc -w 文件名  ---->回显文件的单词个数
wc -c 文件名  ---->回显文件字符的个数

【18】压缩文件的指令 ----->压缩和解压缩后****源文件都不存在

自动探测

自动换行

压缩工具
xz   gz   bz2
xz 要压缩的文件  ----->默认生成一个.xz后缀的文件
gzip 要压缩的文件  ----->默认生成一个.gz后缀的文件
bzip2 要压缩的文件  ----->默认生成一个.bz2后缀的文件

【19】解压缩指令

在Linux下,压缩和解压缩必须使用同样的工具

自动探测

自动换行

unxz 要解压缩的文件
gunzip 要解压缩的文件
bunzip2 要解压缩的文件

压缩效率:xz > bz2 > gz

压缩时间:xz > bz2 > gz

xz适用于文件归档,长期保存

gz适用于临时的文件传输

【20】tab键的使用

tab可以实现指令/参数的自动补全

1、对于可以根据输入的内容,直接找到唯一匹配的字符串时,按一下tab键

2、对于已经输入的内容,对应多个可能的字符串时,按两下tab键

3、 通过共享文件夹,传到Linux中一个较大的文件,查看不同压缩软件的压缩效率,用手机上的秒表,看压缩时间。

五、vim编辑器

使用vim编辑器的原因

  1. 熟悉没有图形化界面的场景

  2. 可以脱离鼠标

  3. vim编辑器有代码高亮

  4. vim编辑器可以显示行号

【1】进入vim编辑器

vi/vim 文件名 ----->进入vim编辑器编辑文件

【2】插入行模式

从命令行模式进入插入行模式

i、I、o、O、a、A

字母 插入位置 注释
i 在光标所在的前一位进行插入 普通的文本输入
I 在光标所在行的行首插入 给一整行代码添加注释
o 在光标所在下一行进行插入 添加头文件
O 在光标所在的上一行进行插入
a 在光标所在的后一个位置插入
A 在光标所在行的行尾插入 给写好的某行代码添加注释

【3】命令行模式

进入vim时,默认就是命令行模式

从插入行模式返回命令行模式,按一下esc

命令行模式可以进行行间跳转、拷贝粘贴剪切和查找

i)行间跳转

自动探测

自动换行

gg: 跳转到文件的首行
G: 跳转到文件的尾行
ngg:跳转到文件的第n行
nG:跳转到文件的第n行
0:跳转到光标所在行的行首
$:跳转到光标所在行的行尾

ii)复制粘贴和剪切

在vim编辑器中,如果使用类似于wins下的复制粘贴:

  1. 按住shift键选中要复制的内容

  2. 按ctrl+shift+c复制

  3. 按ctrl+shift+v粘贴

自动探测

自动换行

nyy:从光标所在行开始复制n行
p:在光标所在的下一行粘贴
ndd:从光标所在行开始剪切n行(剪切只要不粘贴就是删除)
u:撤销
ctrl+r:反撤销

iii)查找单词

/word : 查找指定的单词  ---->查找成功的单词会有高亮显示
查找结束后按回车键,就可以通过n/N进行向下和向上查找单词

iv)格式化

gg=G:格式化整个文件
nG=mG:格式化[n,m]行

【4】底行模式

在命令行模式下,按空格/shift+;

从底行模式回到命令行模式,按esc

按一下esc会延迟一会儿回到命令行

按两下esc立刻回到命令行模式

i)保存退出

w:保存
q:退出
wq:保存并退出
!:强制执行

ii)取消高亮/行号显示

set nu:显示行号
set nonu:取消行号
noh:取消高亮  ---->查找单词留下来的高亮

iii)替换单词

%s/old/new/g:全文替换,把old替换成new
%s/old/new/gc:全文替换,把old替换成new,并且每一次循环是否替换

iv)分屏打开多个文件

1、如果已经使用vim打开了一个文件,在底行模式下,输入vsp 文件名
2、如果想直接使用vim打开多个文件,vim 跟多个文件名 -O ---->左右打开
vim 跟多个文件名 -o ---->上下打开

v)在不退出vim的前提下执行终端指令

在底行模式下输入!命令  (输入结束再回车)

ctrl+v ----->可视块模式(刚进入时,使用键盘左右选中只能选中单个字符,上下可以按照已选中的内容整行操作)

ctrl+V ---->可视行模式

直接鼠标选中内容

复制、粘贴、剪切和格式化

复制:选中想要复制的内容,按一下y
粘贴:把已复制的内容粘贴,p
剪切:选中想要剪切的内容,按一下d
格式化:选中想要格式化的部分,按一下=

你可能感兴趣的:(linux)