基础指令
每一个命令都可能会有很多的操作选项,不同的操作选项对应一个命令的不同分支功能
ls 查看目录内容(也就是查看一下一个文件夹下有啥文件)
目录:在Linux下我们把文件夹叫做目录Linux是一个多用户的操作系统,可以有多个用户在同时在系统上进行不同的操作,互相工作可能会有所干扰,可能会误删文件,因此Linux给每个用户都会创建一个自己的操作目录称为家目录。
Linux都是在终端进行命令行操作,且操作基本上是文件操作,因此Linux默认一个用户上来就处于在自己的家目录中。
操作选项
-l选项 查看详细信息
我还可以 ls -i text.txt查看我对应文件的详细信息
-a选项 查看隐藏文件(文件名称以 . 开头的文件)
很明显我们看到了隐藏文件(开头有 . )
pwd 打印当前的工作路径
说白了就是当前自己的所在位置
路径显示:多层次文件夹之间以 / 作为间隔
/home/dev 也就是说我们现在出来根目录下的home目录中的dev目录下
路径中的第一个字符 / 是根目录的意思我们可以用刚刚到 ls 命令看看根目录有啥
既然谈到目录那我们看一下在windows 跟 Linux下他们的有什么不同
这里先介绍两个分区
swap分区: 交换分区当物理内存不够的时候,做为交换内存使用的,讲物理内存中某些不常使用的数据保存到交换分区中腾出内存给新的程序使用。
filesystem分区: 文件系统分区用于实现文件储存(文件系统分区可以有很多个)
windows
windows对磁盘进行分区划分,然后给每个分区挂上目录结构,这个目录结构中的文件数据都存储在对应的磁盘区域中。
Linux
Linux下磁盘也可以有很多的分区,但是目录结构只能有一个但是可以给指定的目录挂载分区,也就是给他分配一块磁盘空间
在Linux这种ext文件系统职工,知道有一个分区挂载在根目录上,也就是知道给根目录分配一块空间因为Linux下的目录结构只有一个,最底层就是根目录了(是不是在哪块见过这个,看看安卓手机的文件结构,是不是很像,其实安卓是基于Linux开发的)那么只要给根目录分配了空间,Linux下的所有文件都有地方存储。
路径的表示分类:
绝对路径:以根目录为起始的路径(目录结构只有一个,当一个文件的位置从根目录开始表示说明这个路径就是唯一的)
相对路径:以当前所在的目录为起始的路径,也就是对于当前所在位置的路径表示(一个位置的位置会跟随所在目录的不同,进而路径表示也不同)
还有两个特殊的目录 . ..
.:表示当前目录自身 ls 和 ls . 没区别
..: 表示当前目录的父目录(也就是上一层级目录)
mkdir 创建目录,有一个操作对象是目录的名称。
操作选项
-v 选项 每次创建都显示详细信息
-p 选项 在深度的目录创建中进行多层级的目录创建,那一层不存在直接创建
那我们执行这个命令行会有什么结果呢
mkdir a/b/c 就是在a/b这个目录下创建c目录,但是我们用了 -p 选项就不一样了 那就是在a目录下创建b目录在创建c目录。
rmdir 删除一个空目录
操作选项
-v 选项 每次删除都显示详细信息
-p 选项 跟mkdir很像,如果是一个多层次目录我直接rmdir就不行了就要用到 -p 选项。
rm 删除一个文件或目录(默认只能删除普通文件,不能删除目录)
操作选项
-r 递归删除目录中的所有文件后,删除目录。
-i 增加删除信息
我们可以跟 -r 选项组合使用 rmdir -ri 目录名称就可以很明显的看到递归删除。
-f 忽略提示信息,直接删除(慎用!)
尤其这个慎用 rm - f ./* 这条命令行 *这个通配符这条语句相当于把你根目录下面的所有目录都删除了还没有提示信息!
cp 拷贝一个文件或目录到指定位置(有两个操作对象,一个是拷贝到文件,一个是目标位置)
操作选项
-r 递归复制目录及其子目录内的所有内容
-v 显示详细的进行步骤
mv 移动指令,将一个文件从一个位置移动到另一个位置(有两个操作对象一个是要移动的对象,一个是目标位置)
操作选项
-f 覆盖前不询问
-i 覆盖前询问
cd 改变工作路径
~ 当前用户家目录的一中表示,cd ~可以快速进入家目录。
touch 若文件不存在则创建,若存在则刷新文件属性
cat 打印文件内容到终端显示
这里我事先对hello.c文件进行了写入
如果你cat 后面不跟操作对象他就会捕捉你键盘输入的进行打印输出到终端显示用ctrl c终止操作
more 分页显示文件内容
ctrl + f / ctrl + b 进行上下翻页 回车按行向下滚动 q退出
less 分页显示文件内容,并且可以进行内容匹配查找
ctrl + f / ctrl + b 进行上下翻页,↑↓或者jk进行上下滚动 q退出
/string 向下查找string字符串 ?string向上查找string字符串
head 显示文件前n行内容,默认是10行
也就是 显示文件内容前两行
tail 显示文件末尾n行内容,默认是10行
也就是 显示文件内容后两行
操作选项
-NUM 指定每屏显示多少行,摁回车会显示一次对应的行数。
-nNUM 对应显示文件末尾n行内容
-f 一直刷新文件末尾内容ctrl+c结束操作
echo 打印数据到终端显示
重定向:
功能:改变数据流向,把原本要打印到终端的内容,不在打印,而是写入指定文件
输出重定向的分类
>> :追加重定向,echo hello world! >> text.txt,把echo的结果不在输出到屏幕终端,而是把结果追加写入到text.txt中
> : 清空重定向 ,echo bye bye! >text.txt 是吧echo的结果不在输出到终端屏幕而是吧text.txt清空在写入echo的结果
输入重定向:
cat < text.txt cat原本要从键盘标准输入读取数据在进行打印,但是输入重定向后从text.txt获取内容打印
管道符:|
功能:连接两个命令,将前面的命令的结果不再打印,而是交给后面的命令进行处理
举个例子有刚刚到hello.c我想吧他那条基础语句printf();打印到终端上那该如何操作呢?
这时候就可以用到管道符了
head -n3 | tail -n1这句命令就是我先看文件前三行把这个结果交给tail命令,在查看这个结果的最后一行,也就是我们想要的printf();语句!
文件解压缩相关指令
dd if = /dev/ zero of=./hello.txt bs=10M count=1
创建一个10M大小的文件
bs是输入输出块的大小
count=n,是处理n块数据后就不在处理了
/dev/zero, 是一个输入设备,你可以用它啦初始化文件
/dev/null, 外号叫无底洞,你可往里面扔任何数据,他都可以吃掉,而且不会撑着
因为定义一块是10M我创建的是一块所以大小就是10M
用这个命令创建一个文件来进行操作
zip/unzip格式的解压缩:
zip hello.zip hello.txt
unzip hello.zip
gzip/gunzip格式的解压缩:
gzip hello.txt
gunzip hello.txt.gz
bzip2/bunzip2格式的解压缩:
bzip2 hello.txt
bunzip2 hello.txt.bz2
linux下的常见打包指令:tar
tar 打包指令
操作选项
-c 打包
-x 解包
-z 打包 / 解包同时使用gzip进行解压缩
-v 打包 / 解包同时显示详细信息
-f 用于指定压缩包的名称
打包:tar -czvf (你想要的名字).tar.gz (你要打包的文件)
解包:tar -xzvf (你的包名字).tar.gz
匹配查找指令
grep 文件内容匹配指令,从一个文件内容包含有指定字符串的行
操作选项
-i 忽略大小写,进行匹配
-R 递归所有目录文件进行匹配操作匹配对应的字符
find 文件查找指令
find ./ -name “int” 在当前目录下 查找名为int的文件
也可以在两边加上通配符*模糊搜索
常见操作
reboot 重启
tab 自动补齐文件名
man 命令名称 查看命令手册
shutdown -h now 立即关机
ifconfig 查看网卡信息
ctrl + c 中断当前操作
命令 -- help 查看其他操作选项