基础指令:
目录相关指令,普通文件指令,匹配查找指令,权限相关指令
指令使用规则:
指令名称 [操作选项] [操作对象]
指令名称:命令的名字,例如:ls 查看文件夹内容
操作选项:用于指定完成某个指令的子项功能,例如:ls -l 查看当前文件夹的内容详细信息
操作对象:指定要操作的对象,例如:ls -l workspace/ (“/”可有可无,表示这是一个文件夹) 查看指定文件夹workspace内部的内容
一:目录相关指令:
ls:
浏览目录(目录即文件夹)--展示一个文件夹内部的文件信息 ,默认查看当前所在文件夹内容,打开一个终端,默认就会处于一个文件夹(家目录)当中。
linux是一个多用户操作系统(一个系统可以登录多个用户进行操作,比如我,张三,李四同时登录操作这一个操作系统),每个用户都有一个自己的家目录。
操作选项:
-l : 查看详细信息
-a : 查看所有文件包括隐藏文件(文件名称以.开头 )
查看test文件夹下所有文件的详细信息包括隐藏文件,还可以写成 ls -al test
pwd:
显示当前所在文件夹的路径
linux 下的目录结构:在计算机中文件的存储实际上都是在磁盘(硬盘)上
swap分区:作为交换分区,当内存不够用的时候用该分区
filesystem分区:文件系统分区,用于进行文件的存储管理,一个硬盘可以有多个文件系统分区
windows下会为 每个磁盘分区分配一个盘符,即一个大的文件夹,这个文件夹中的文件所占的存储空间就是这个分区,分区数等于盘符数。有多个目录结构
linux下不同,目录结构与磁盘分区没关系,linux下的目录结构是唯一的,实现是将指定的分区挂载到某个目录上,即给某个文件夹单独分配空间,这个文件夹下的子文件所占空间来源于这个所在的分区。linux下的目录结构是唯一的,是一种树形结构,/就是根目录,是所有文件的最终父目录。
绝对路径:一个路径的表示,以根目录作为起始叫做绝对路径(唯一路径)
相对路径:一个路径的表示,以当前所在目录作为起始叫做相对路径(随着所在目录不同而不同)
两个特殊目录:
. 用于表示目录自身(./可以省略)
当前目录dev下面的install
.. 用于表示一个目录的上一层目录(一个目录的父目录)
..就是回到了当前目录dev的父目录home然后取home下的dev中的install和上面一样
mkdir:
创建一个目录 格式:mkdir 路径+名字
只有名字,默认创建在当前目录下的,即省略了./
也可以用路径以及名称创建:
不能在家目录里面创建文件,没有权限:
在指定的路径目录下创建,不一定在当前目录下创建:
- 在刚刚新建的tmp里面创建了aaa这个文件
-p : 多层级创建目录哪一层不存在就创建哪一层直到最底部
来源:
- 因为没有tmp1这个目录所以无法创建
解决办法:用-p选项可以自动创建tmp1继而创建bbb
rmdir:
删除目录(只能删除空目录)
rm:
-r : 递归删除一个目录下的所有文件后删除这个目录
-ri : 显示提示信息
cp:
复制一个目录或文件到指定位置(有两个操作对象,一个是源对象,一个是目标位置)
-r : 复制目录,包括目录中的所有子项
mv :
剪切,即移动一个文件或目录到指定位置(两个操作对象,源对象和目标位置)
不能把一个文件或者目录移动到当前目录下,因为会重名:
把一个文件或者目录剪切到当前目录下的一个不存在的目录下,即给源目录名起别名:
- 当前目录下没有aaa,但要把tmp1移动到当前目录下的aaa,则aaa就是tmp1,里面也存有原来tmp1中的内容tmp
如果是cp到一个不存在的目录下,也是起别名:
cp 与mv 起别名不同的在于:cp 起别名后是有原名和别名两个都在该目录下,而mv别名直接覆盖了原名。
cd :
改变当前所在目录,即进入指定的目录
cd ~ : 直接返回用户家目录
二、普通文件相关指令
touch:
文件不存在则创建一个新文件(空文件)
用来更新文件时间属性
cat :
打印文件内容到终端
默认功能是从标准输入设备读取数据并进行输出打印:
从指定文件读取数据打印出来:
more :
分页显示文件内容,回车向下一行,空格/ctr+f向下一页,ctr+b向上一页,Q退出
less :
分页显示文件内容,ctr+f/b上下翻页,上下箭头或j/k按行滚动,/string 向下查找指定字符串,
?string向上查找指定字符串,Q退出
head :
打印文件的前n行内容,默认是前10行
-n num :
指定打印的行数,例如 head -n 1 password
tail :
打印文件末尾n行内容
-n num :
指定打印的行数,例如 head -n 1 password
-f :
动态刷新文件末尾内容(命令运行之后不会退出,而是一直等待文件末尾有新数据则刷新显示)
例如:
追加新内容到文件末尾:
有新数据进行更新:
echo :
指定文件末尾追加写入数据
本质上来说echo是打印,将数据写入到标准输出文件,echo "first“ 打印字符串
【注】
- 标准输入文件--键盘,标准输出文件--显示器,标准错误文件--显示器
- >> 标准输出追加重定向,让标准输出不再指向显示器设备,而是指向指定的文件,将原本要写入显示器设备的数据不再写入显示器而是写入指定的文件。
- > 清空重定向,清空文件原有内容,写人重定向的数据
- | 管道符: 连接两个命令,将前边命令的输出结果,交给后面命令进行处理
例如:要打印test.txt第三行内容,先用head命令打印前三行内容,再选择最后一行进行打印,用管道符连接二者。
压缩解压缩指令:
zip/unzip:
x先创建一个100M的文件:
进行压缩:格式: zip 压缩文件名称 源文件名称:
删除源文件:
对压缩文件进行解压缩,又有源文件的出现:
gzip /gunzip:
格式:gzip 压缩文件名 直接将源文件删除
解压缩:
bzip2/bunzip2:
格式: bzip2 源文件 直接将源文件删除
解压缩: 格式: bunzip2 压缩文件名
tar : 打包工具:
-c : 打包
-x : 解包
-z : 打包或解包的同时以gzip格式进行压缩解压缩
-j : 打包或解包的同时以bzip2格式进行压缩解压缩
-v :打包或解包的同时,显示详细信息
-f :用于指定压缩包名称
例如: 对该打包文件进行解包、解压缩,-f 后面根具体的打包文件名称,如果有v则显示详细信息
tar -czvf **.tar.gz file1 file2 ... / tar -xzvf**.tar.gz
三、匹配查找指令:
在指定目录查找文件:find
在指定文件匹配内容:gre
find :
在指定目录查找文件 find ./
-name : 按照文件名称查找
例如:查找文件名中含有"*hello*"的文件,* 表示通配符,只要名称中含有hello 就行
-type : 按照文件类型查找
f 普通 ; d 目录 ; p : 管道 ; l 符号链接 ; c 字符设备 ; b 块设备 ;
例如:查找目录文件
当前目录下的文件:只有tmp是目录类型的文件
查找目录文件:找到当前文件和tmp两个目录
-size : 按照文件大小查找
-[amc]time : 以24小时为单位
例如: 查找一天以内的文件
-[amc]min : 以分钟为单位
-exec: 针对查找到的文件进行指定的操作:
例如: find ./ -name "*test*" -exec rm -rf {} \; 对test文件进行删除
grep :
在文件中匹配指定的字符串
例如:找有“main”的文件 ./* 表示当前目录下的所有文件,不会进入下一层目录
-i : 忽略大小写
-v : 匹配不包含指定字符串的行
-R :表示当前目录下的所有文件,会进入下一层目录,即递归,操作对象是目录不是文件
grep -ivR "main" ./
grep -i "main" ./a.txt
【快捷操作】:
ctrl+c 中断当前操作
ctrl+d 标准输入完毕或者截止
tab键 : 命令、文件名称自动补全
↑ : 查找历史操作命令
【shell】:
系统内核用户不能直接访问,因为直接访问不安全,内核向外提供访问接口,为了便于系统的操作,将常用的功能直接写好了程序,比如浏览目录的功能就直接已经写好了 ls 程序--shell 指令
四、权限相关指令
权限:权利的限制
linux系统是一个多用户的操作系统
【用户的权限】:在linux 中系统将用户分为两类:管理员--root,普通用户
【文件权限】:用户对文件所能进行的操作的权利控制
【用户的分类】:文件所有者-u,文件所属组-g,其他用户-0
【操作的分类】:是否可读-r,是否可写-w,是否可执行-x
su:
切换用户:su root
sudo:
用户提权:sudo + 指令 例如: sudo cp./a.txt/bin
目录权限: 浏览,创建、删除、进入
计算机内部存储权限用二进制、八进制数字:
rwx rwx r-x --> 111 111 101 --> 775
【命令操作】:
umask:
查看或设置系统默认的文件创建权限掩码--影响文件默认创建权限
-S:
查看默认权限:umask -S
设置权限掩码为033:
然后创建一个文件b.c,其权限应该是777 & ~033 结果为744,但实际上为644,因为普通文件没有x可执行权限:
但是umask只能修改以后要创建的文件的权限,而不能修改已经创建的文件,那这时候怎么办呢?chmod就给出来我们答案。
chmod:
修改已存在文件的权限
chmod [ugoa] [+/-] [rwx] file
例如:给b.c文件中其他用户赋予可执行权限
直接修改指定8进制数字掩码:
【沾滞位】:一个特殊的权限位-针对其他用户的权限位,限制其他用户在设置沾滞位的目录下可以创建文件,但是只能删除自己的,不能删除别人的。(针对设置了沾滞位的其他用户)