基础指令:
总共分为四大类:
目录相关指令,普通文件指令,匹配查找指令,权限相关指令
使用规则:指令名称+空格+[操作选项]+[操作对象]
指令名称:命令名字
eg:ls 查看文件夹内容
操作选项:某个指令的子项功能
eg:ls -l 查看当前文件夹的内容的详细信息
操作对象:要操作的对象
eg: ls -l workspace 查看当前指定文件夹workspace内部的内容
1.目录相关指令:
(1)ls 浏览目录(浏览文件夹)
默认查看当前所在文件夹的内容,打开一个终端,默认就处于一个文件夹(家目录)当中
linux是多用户操作系统(一个系统同时可以登录多个用户进行操作)每个用户都有一个自己的家目录
-l:查看详细信息(哪些信息?)
-a:查看所有文件包括隐藏文件(文件名称以 . 符号开头的文件)
eg: ls -a -l workspace ls -al workspace
(2)pwd 显示当前所在文件夹的路径
/hom/lgh(/是根目录,所有文件的最终父目录)
linux下的目录结构
在计算机中文件的储存实际上都是在磁盘(硬盘)上
swap分区:作为交换分区,内存不够用的时候用
filesystem分区:文件系统分区,用于文件的储存管理,一个硬盘可以有多个文件系统分区
windows:为磁盘分区,就是一个大文件夹,文件夹中的文件所占空间都是来源于该分区,有多少分区就有多少个盘符。
linux不同:目录结构与磁盘分区多少无关,linux下的目录结构唯一(但是可以给某个指定目录单独挂载分区,至少有一个分区挂载在根目录上),实现是将指定的分区挂载到某目录上,其实就是给某个文件夹单独分配空间,这个文件夹的子文件所占空间来源于这个分区。
绝对路径:一个路径的表示,以根目录作为起始(唯一路径)
相对路径:一个路径的表示,以当前所在目录作为起始(会随着所在目录变化而变化)
!!!两个特殊目录:
. 用于表示目录自身
.. 用于表示目录的上一层目录(一个目录的父目录)
eg: /home/lgh ./ ../lgh
(3)mkdir 创建一个目录
mkdir ./test/aaa 在当前目录下的test目录下创建一个aaa目录
-p 多层级创建目录,哪一层不存在就创建哪一层直到最底部
eg: mkdir -p ./test/bbb
(4)rmdir 删除目录(只能删除空目录)
(5)rm 删除文件或目录
-r 删除目录
eg: rm -r ./dirname
(6)cp 复制一个目录或文件到指定位置(两个操作对象,源对象和目标位置)
-r 复制目录包括目录中的所有子项
eg: cp -r lgh/ czy/
(7)mv 剪切(两个操作对象,源对象和目标位置)
eg: mv lgh/ czy/
(8)cd 改变当前目录(进入指定目录)
eg: cd lgh/
cd ~ 快速返回当前用户的家目录
2.普通文件相关指令:
(1)touch
文件不存在则创建一个新文件
文件存在则是用于刷新文件的时间属性(常用)
(后缀名只是便于我们识别,并不具备功能)
(2)cat 打印文件内容到终端
(3)more 分页显示文件内容
下一页:回车
上一页:空格或者Ctrl+f
上一页:Ctrl+b
退出显示:q
(4)less 分页显示文件内容
Ctrl+f/b: 上下翻页;上下箭头或者j/k按行滚动;
/string: 向下查找指定字符串;
?string: 向上查找指定字符串;
q: 退出
(5)head 打印文件的前n行内容,默认是10行
-n num 打印指定的行数
eg: head -n 1 lgh
(6)tail 打印文件的末尾n行内容,默认是10行
-n num 打印指定的行数
eg: tail -n 1 lgh
-f 动态刷新文件的末尾内容(命令运行之后不会退出,而是一直等待文件末尾有新数据则刷新显示)
(7)echo"leihoua">>test.txt 向指定文件末尾追加写入数据
echo"leihoua" 打印指定的字符串(将数据写入到标准输出文件)
标准输入文件--键盘, 标准输出文件--显示器, 标准错误文件--显示器
>>test.txt
标准输出重定向,让标准输出不再指向显示器而是指向指定的文件,追加到文件的末尾
>test.txt
标准输出重定向,清空文件原有内容,写入重定向的数据
<< 输入重定向(不常用)
(8)管道符
连接两个命令,将前面两个命令的输出结果,交给后面的命令进行处理
eg: 打印passwd文件第三行内容
head -n 3 /etc/passwd | tail -n 1
(9)压缩解压缩指令
zip/unzip: zip格式的压缩解压缩
gzip/gunzip: gzip格式的压缩解压缩
bzip2/bunzip2:bzip2格式的压缩解压缩
(10)tar 打包工具
-c 打包
-x 解包
-z 打包或解包的同时以gzip格式进行压缩解压缩
-j 打包或解包的同时以bzip2格式进行压缩解压缩
-v 打包或解包的同时,显示详细的信息
-f 用于指定压缩包名称
eg: tar -czvf **.tar.gz file1 file2 ... / tar -xzvf **.tar.gz
3.匹配查找指令:
(1)在指定目录查找文件:find
find ./
-name 按照文件名称查找 find ./ -name "*hello*"
-type 按照文件类型查找 find ./ -type d [f.d.p.l.c.b]
-size 按照文件大小查找 find ./ -size +10M
-[amc]time:以24小时为单位 find ./ -mtime -1
-[amc]min: 以分钟为单位
-exec 针对找到的文件进行指定的操作
find ./ -name "*test*" -exec rm -rf {} \;
(2)在指定文件匹配内容: grep
-i 忽略大小写
-v 匹配不包含指定字符串的行
-R 递归针对指定目录下的文件逐个进行匹配
-R选项的操作对象不是文件是目录
eg: grep -ivR "main" ./
grep -i "main" ./a.txt
快捷操作:
Ctrl+c: 中断当前操作
Ctrl+d: 标准输入截止/完毕
Tab键: 命令、文件名自动补全
↑键: 查找历史操作命令
Shell:
shell实际上也是一个软件,功能是捕捉用户的输入,通过输入信息理解用户想要干什么,然后执行对应功能的程序;
系统内核用户不能直接访问,因为直接访问不安全,内核向外提供访问接口,便于系统的操作,将常用的功能直接写好程序,
比如:浏览目录-ls—shell指令
shell种类:bash dash …
4.权限:权利的限制
linux系统是一个多用户操作系统,
用户的权限:
在linux中系统将用户分为两类:
管理员—root; 普通用户
切换用户:su root
用户提权:sudo
文件的权限:
用户对文件所能进行的操作的权利控制
用户的分类:文件所有者,文件所属组,其他用户
操作的分类:是否可读-r,是否可写-w,是否可执行-x
浏览,创建或删除,进入
命令操作:
umask: 设置系统默认的文件创建权限掩码
-影响的就是文件的默认创建权限
查看:umask / umask -S
设置:umask 033
chmod: 修改已存在文件的权限
chmod [ugoa][+/-][rwx] file
chmod 777 b.c
chmod o+x a.c / chmod 777 a.c
沾滞位:
一个特殊的权限位-针对其他用户的权限位
限制其他用户在一个目录中可以创建文件
但是只能删除自己的,不能删除别人的文件
chmod +t dir