一:文件目录类(19个)
1.pwd 显示当前目录所对应的绝对路径
2.ls 列出“指定目录下”的文件
ls 【选项】 【目录/文件】
选项:-a 列出所有文件和目录,包括隐藏文件 ‘.文件名’
-l 以列表的形式显示所有信息
-h 人性化的显示文件大小(k m G)
-R 递归显示:递归列出该目录下所有文件、子目录信息
常用:ls -a 、ls -l、ls -al(相当于 ll)、ls
3.cd 切换当前路径
cd 【参数】 【要切换到的目录】
- 切换到上一个工作目录/访问当前目录的上一级目录:
- 切换到home目录/访问当前用户的主目录(家目录)
- 切换到 相对本路径上两级的路径
- 切换到root目录
- 使用绝对路径切换到root目录
- 使用相对路径到/root目录,如当前目录在 /home/tom
4.mkdir 创建目录(创建文件夹)
mkdir 【选项】 【要创建的目录或文件】
选项:-p 创建多级目录
- 在工作目录下的 runoob2 目录中,建立一个名为 test 的子目录。(分两种情况,runoob2目录存在和不存在)
- 创建一个目录 /home/dog
- 在home路径下,创建多级目录 /home/animal/tiger
5.rmdir 删除空目录
rmdir 【选项】 【要删除的空目录】
选项:-r 递归地 删除此目录及其所有子目录的文件
-f 强制删除
- 删除一个目录 /home/dog
注意:rmdir 删除的是空目录,如果目录下有内容时无法删除。
对比区分rm
6.rm 删除目录或文件(删除文件或文件夹)
rm 【选项】 【要删除目录或文件的路径】
选项:同rmdir相同
- 删除当前目录下的所有文件及目录
- 将/home/hello.txt删除
- 递归删除整个文件夹 /home/bbb
- 递归强制删除整个文件夹
注意:强制删除不提示的方法:带上 -f 参数即可
7.touch 创建空文件
touch 新文件1的路径 新文件2的路径 ....... //可以是绝对路径,也可以是相对路径
//同时创建多个文件,在touch指令后同时写多个新文件的路径
- 在 /home 目录下,创建空文件test1.txt
- 同时创建 text3.js 和 text5.js 文件
8.cp 复制目录或文件
cp 【选项】 【源文件目录】 【目的文件目录】
选项:-r 递归地复制整个目录,包括各个子目录的文件
-f 强制执行
注意:强制覆盖不提示的cp命令
1.cp指令前加上\
\cp [选项] 源目录/文件路径 目的目录/文件路径
2.cp -rf
强制 cp 指令,无视覆盖提醒,直接覆盖
- 将 /home/hello.txt 拷贝到 /home/bbb 目录下
- 递归复制整个文件夹,将 /home/bbb/ 目录拷贝到 /home/aaa/
- 强制复制不提示,将 /home/bbb/ 目录拷贝到 /home/aaa/(两种方式)
9.mv 移动/重命名文件或目录
mv 【旧文件名】 【新文件名】
注意:1.同目录下,mv为“重命名”目录或文件
2.不同目录下,mv为“移动剪切并重命名”目录或文件
- 将 /home/cat.txt 文件,重命名为 pig.txt
- 将 /home/pig.txt 文件,移动到 /root 目录下
- 将 /home/pig.txt 文件,移动到 /root 目录下改为cat.txt
10.cat 浏览查看文件的内容
cat 【选项】 【要浏览的文件路径】
选项:-n 显示文件的行号
-A 显示所有格式(回车符、tab符)
注意:cat 只能浏览文件,不能修改文件。
为浏览方便,一般会加上 管道命令 | more,实现交互式浏览
cat -n /etc/profile | more
- 查看 /etc/profile文件,并显示行号
- cat file1.txt >> file2.txt 将文件输出附加到另一个文件
- cat file1.txt > file2.txt 重定向文件内容,即将一个文件的输出复制到另一个文件(通常,您将使用cp命令来复制文件)
- cat filename | grep "keyword" -A 10 根据关键字查看后10行日志 -B 10 前10行的内容
- cat filename | grep "keyword" 根据关键字查看日志
11.more 分页显示文件的内容(交互式浏览)
more 【要查看的文件】
注意:1.它以全屏幕的方式按页显示文本文件的内容
2.more 指令中内置了若干快捷键(交互指令),可用于交互式浏览操作
可与cat指令结合使用
快捷键:1. 空格 向下翻一页
2. 回车 向下翻一行
3. q 立刻退出more界面,不在查看文件的内容
4. Ctrl+F 向下翻一页/向下滚动一屏,同 空格
5. Ctrl + B 向上翻一页/返回上一屏
6. = 输出当前行的行号
7. :f 输出文件名和当前行号
8. /XXX 搜寻字符XXX,n=下一结果,N=上一结果
9. ?XXX 同上,搜寻字符XXX,n=下一结果,N=上一结果
注意:vim快捷键同上
- 使用 more 指令查看文件 /etc/profile
12.less 分屏交互式浏览
less 【要查看的文件】
快捷键:1. 空格 向下翻一页
2. pagedown 向下翻动一页
3. pageup 向上翻动一页
4. /字串 向下搜素【字串】;n:向下查找;N:向上查找
5. ?字串 向上搜素【字串】;n:向上查找;N:向下查找
6. q 离开less这个程序
- 使用less指令查看一个大文件 /var/log/messages-20220403
more和less指令的区别:
1.“less指令”相对于“more指令”来说,可以动态加载,一点一点的读。效率高。“就是边下载边看”,且“less指令”可向前向后查看。
2.如果是“查看一个比较大的文件”,更建议用“less”。
13.echo 输出内容到控制台
echo 【要输出的内容】
- echo指令输出环境变量,如$HOME
- echo指令输出字符串 “hello world!”
注意:1.要输出的内容可以是其他指令的执行结果。
2. echo指令可配合其他指令使用
14.head 显示文件的头部内容
head 【要显示的文件】 // 默认显示文件头10行的内容
head -n 任意数字 【要显示的文件】 显示文件头xx行的内容
- 查看/etc/profile的前面5行代码
15.tail 显示文件的尾部内容(实时查看文件中的内容)
tail 【要显示的文件】 //默认显示文件尾10行的内容
tail -n 任意数字 【要显示的文件】 显示文件尾xx行的内容
注意:tail -f 【要显示的文件】
实时追踪文件的更新数据,动态显示文本最新信息。
- 查看 /etc/profile 文件的最后 5 行代码
- 实时监控 mydata.txt,查看文件有变化时,是否看到改变的内容,实时的追加hello,会显示
- 实时查看⽂件中的内容 tail -f /log/msg
16.>/>> 输出重定向:覆写和追加
> 覆写,即复制,相当于‘cp指令’ ,会覆盖源文件的内容。
>> 追加,则不会覆盖原文件内容,而只是会在“文件尾部追加”。
- 将当前工作目录下的所有文件列表(ls -al) 追加写入 AAA 文件中
- 将 文件1 的内容覆盖写入 文件2 中
- 将 /home 目录下的文件列表 覆盖写入到 /home/info.txt 文件中
// 如果info.txt文件不存在,则会自动创建info.txt文件 - 将当前日历信息,追加到 /home/maycal 文件中
# "cal"指令,显示当前日期 - cat file1.txt > file2.txt 重定向文件内容。 即将一个文件的输出复制到另一个文件。通常,使用cp命令来复制文件。
- echo “内容” >> 文件 将字符串hello追加到/home/one.txt文件里
echo “hello” >> /homr/one.txt
17.ln 创建软/硬连接
创建软链接:ln -s 【源文件路径/文件】 【目标软链接名】
注意:1.软链接,即符号链接,即windows中的快捷方式。
2.虽然软链接是快捷方式,但进入软链接后,pwd指令显示的路径为软链接所在路径。
- 在 /home 目录下创建一个软链接myroot,链接到 /root
- 删除软链接 myroot
这里要将 myroot 写成文件的格式(软链接也是一种文件,类似于windows快捷方式的文件),即不带 /)
创建硬链接:ln 【源文件路径/文件】 【目标软链接名】
软链接和硬链接的区别:
1.格式
- 软连接:ln -s src dest
- 硬链接:ln src dest
2.文件类型
- 软链接相当于快捷方式,符号连接f
- 硬链接相当于cp了一份,和普通文件没有区别
软链接后,src文件和dest文件,大小、时间、node都不一样
硬链接后,src和dest文件,大小、时间、node都一样
相当于执行了cp -p,只是node节点不一样
3.删除源文件,对链接的影响
- 软链接:删除源文件,则另外一个不存在了。
- 硬链接:删除源文件,另外一个还存在。
4.总结
- 硬链接:和普通文件无区别,inode都指向同一个文件在硬盘中的区块
- 软连接:保存了其代表的文件的绝对路径,是另外一种文件,在硬盘上有独立的区块,访问时替换自身路径
18.history 查看指令的历史记录
- 显示所有的历史命令
- 显示最近 10 条历史指令
- 执行历史编号为 5 的指令 !5
19.wc 计数指令
wc 【参数】 【文件】
选项:-l line:计算行数
-c 计算字节数
-m 计算字符数
-w 计算单词数
wc -l 文件 // 统计文件的总行数
统计目录 /opt/ 下的子目录数
原理
计算 ls -l 输出中,以“d”开头的记录条数
# ls -l 开头第一个字母表示的含义:d/l/-/c/b --> 目录/链接/文件/字符设备/块设备
ls -lh /opt/ | grep "^d" | wc - l
统计目录 /opt/ 下的子文件数
原理
计算 ls -l 输出中,以“-”开头的记录条数
ls -lh /opt/ | grep "^-" | wc- l
统计目录 /opt/ 下所有文件个数,包括各层子目录中的
原理
ls -lR 输出,会递归输出所有层级目录的文件列表
计算 ls -l 输出中,以“-”开头的记录条数
ls -lR /opt/ | grep "^-" | wc- l
统计目录 /opt/ 下所有目录个数,包括各层子目录中的
原理
ls -lR 输出,会递归输出所有层级目录的文件列表
计算 ls -l 输出中,以“d”开头的记录条数
ls -lR /opt/ | grep "^d" | wc -l
二.搜素查找类(6个)
1.find 实时查找目录下的指定文件
find 【搜素范围】 【选项】 【要搜素的文件名】
范围:1.当前目录 . 2.根目录 /
选项:1.-name 按文件名 通配符 *
2.-type 按文件类型 f 普通文件 l 符号链接 d 目录文件
3.-size 按文件daxiao +K -m G 大于K 小于m 等于G
4.-user 按文件所有者
5.-atime 按时间(天)
- 最近第7天被访问过的所有文件
- (按内容)查找 /home 目录下的 hello.txt 文件
- 从根目录开始查找所有扩展名为 .log 的文本文件
- 从当前目录开始查找所有扩展名为 .in 的文本文件
- 查找当前目录下都有.txt后缀的文件
- (按所有者)查找 /opt 目录下,用户名为 lilixxs 拥有的文件
- 查找整个 linux 系统下大于 200M 的文件(+n大于 -n小于 n等于 单位有k,M兆,G)
2.locate 根据索引快速检索文件
locate 【要搜索的文件名】
注意:在第一次运行locate指令前,需要使用updatedb指令创建locate索引数据库。
sudo updatedb
- 使用 locate 指令快速定位 text3.js
find和locate的区别
find:find是实时查找。
find指令将从指定目录下递归的遍历各个子目录,将满足条件的文件或者目录显示在终端。
如果需要更快的查询,可试试locate。
locate:locate并不是实时查找。你需要更新数据库,以获得最新的文件索引信息。
locate指令无需遍历查找文件,利用事先创建的文件和目录索引数据库实现文件快速搜索。只需要查询索引数据库,因此速度较快。
但为保证查询结果的准确度,管理员必须要定期更新 locat数据库。
3.which 查看指令所在的目录
which 【指令名】
- 查看 ls 指令所在目录
4.grep和管道符‘|’ 过滤查找,查找文件里符合条件的字符串
grep 【选项】 查找内容 被查找的文件
选项:-n 显示匹配的行号
-i 忽略大小写
-V 反向查找
- 请在hello.txt文件中,查找“yes”所在行,并且显示行号
- 在⽂件hello.txt中查找关键词codesheep
- 在⽂件hello.txt中查找以sheep开头的内容
- 选择hello.txt⽂件中所有包含数字的⾏
- 在当前目录中,查找后缀有 file 字样的文件中包含 test 字符串的文件,并打印出该字符串的行
- 反向查找,查找文件名中包含 test 的文件中不包含test 的行
5.管道符‘|’,表示 将前一个指令的处理结果输出 传递给 后面的命令处理。
6.xargs 给其他命令传参数的过滤器
xargs 能够将输入数据转化为特定命令的命令行参数,也能够从文件的输出中读取数据。
xargs 一般是和管道一起使用。
- 从根目录开始查找所有扩展名为 .log 的文本文件,并找出包含 "ERROR" 的行
- 从当前目录开始查找所有扩展名为 .in 的文本文件,并找出包含 "thermcontact" 的行
- 查找当前目录下的所有 txt 文件,并查看所有这些 txt 文件的信息
三.进程管理类(6个)
1.ps 显示当前进程信息
ps 【参数】 用于查看当前系统、当前时刻,有哪些程序正在执行,以及各个程序的执行状况
选项:a指代all——所有的进程
u指代userid——执行该进程的用户id,
x指代显示所有程序,不以终端机来区分
e:显示所有进程信息,等同于-A参数
p <PID>:显示对应PID的进程
ps -aux
按照 BSD 格式的指令,显示系统的所有进程信息
ps -ef
ps -ef 以全格式显示当前所有进程(-e 显示所有进程 -f 全格式)
ps -ef | grep 进程关键字
过滤出你需要的进程,查找指定的进程
ps -ef | grep sshd
查询 sshd 进程的详细信息,获取 sshd 的父进程 ID (PPID)
2.kill 终止进程
kill 【参数】 进程ID/进程名
1.kill 通过进程 ID (PID) 终止进程
kill [参数] PID
2.killall 通过进程名 (NAME) 终止进程
killall [参数] 进程名
3.top 动态监控进程, 动态显示cpu/内存/进程等情况
概念
实时显示系统中各个进程的资源占用状况,类似于“windows的任务管理器” 实时显示进程状态。
top与ps最大的不同之处,在于 top在执行一段时间可以更新正在运行的进程
格式
top [参数]
动态监控进程的交互操作
输入top命令后,进入到交互界面;接着输入字符命令后显示相应的进程状态
P
以CPU使用率排序,默认就是此项
M
以内存的使用率排序
N
以PID排序
q
退出 top 界面
i
使top不显示任何闲置或者僵死进程
查看系统中使用CPU、使用内存最多的进程
网络工具
1.netstat
netstat 【参数】
2.lsof 查看文件的进程信息
lsof -i 文件 //查看文件的进程信息
查看端口占用的进程状态
lsof -i:3306
列出谁在使用某个端口
列出所有的网络连接
lsof -i
列出所有tcp 网络连接信息
lsof -i tcp
3.scp 网络复制,基于SSH协议远程复制文件
格式
scp [参数] [原路径] [目标路径]
概念
scp命令可以在多台Linux系统之间复制文件或目录 ,有些类似于cp命令的功能,但复制的范围却不是本地,而是网络上另一台主机。
由于是基于SSH协议进行的复制操作,全部数据都是加密的,因此会比HTTP和FTP更加安全。
例子
1.从远处复制文件到本地目录
scp root@10.6.159.147:/opt/soft/demo.tar /opt/soft/
从10.6.159.147机器上的/opt/soft/的目录中下载demo.tar 文件到本地/opt/soft/目录中
2.从远处复制到本地
scp -r root@10.6.159.147:/opt/soft/test /opt/soft/
从10.6.159.147机器上的/opt/soft/中下载test目录到本地的/opt/soft/目录来
3.上传本地文件到远程机器指定目录
scp /opt/soft/demo.tar root@10.6.159.147:/opt/soft/scptest
复制本地opt/soft/目录下的文件demo.tar 到远程机器10.6.159.147的opt/soft/scptest目录
4.上传本地目录到远程机器指定目录
scp -r /opt/soft/test root@10.6.159.147:/opt/soft/scptest
上传本地目录 /opt/soft/test到远程机器10.6.159.147上/opt/soft/scptest的目录中
四.权限管理
1.实例
-rw-r--r--. 1 mikasa mikasa 141 6月 22 11:19 hello.txt
0-9位说明
第0位确定文件类型(d,-,l,c,b)
d是目录,相当于windows的文件夹
l是链接文件,相当于windows的快捷方式
-是普通文件 (比如 .txt .tar.gz .py .cpp)
c是字符设备文件,鼠标,键盘
b是块设备,比如硬盘
第1-3位确定所有者(该文件的所有者)拥有该文件的权限 --user
第4-6位确定所属组(同用户组的)拥有该文件的权限 --Group
第7-9位确定其他用户拥有该文件的权限 --Other
rwx权限详解
rwx作用到文件
【r】代表可读(read):可以读取、查看
【w】代表可写(write):可以修改,但是不代表可以删除该文件
删除一个文件的前提条件是对该文件所在的目录有写权限,才能删除该文件
“删除文件”要看“目录权限”
对文件的删除权限是上层目录的写权限
因为删除文件实际上是删除所在目录对该文件的引用地址,所以删除文件实际上是要对所在目录进行写操作。
【x】代表可执行(execute):可以被执行,相当于“运行文件”(例如exe文件)
rwx作用到目录
【r】代表可读(read):可以读取,ls查看目录内容
【w】代表可写(write):可以修改目录内的内容,对目录进行 创建+删除+重命名目录名
【x】代表可执行(execute):可以进入该目录,cd 目录
文件及目录权限实际案例
ls -l 显示内容
-rwxrw-r-- 1 root root 1213 Feb 2 09:39 abc
10个字符 确定 不同用户 能对文件干什么
第一个字符代表文件类型: - l d c b
其余字符每三个一组(rwx)读(r)写(w)执行(x)
第一组rwx:文件拥有者的权限是读、写和执行
第二组rw-:与文件拥有者同一组的用户的权限是读、写但不能执行
第三组r–:不与文件拥有者同组的其他用户的权限是都只能读
可用数字表示为:r=4,w=2,x=1 因此rwx=4+2+1=7
其他说明
1
若是文件:硬件连接数
若是目录:子目录数+文件数
root 用户
root 组
1213 文件大小(字节),如果是文件夹显示4096字节
Feb 2 09:39 最后修改日期
abc 文件
修改权限-chmod
1.概念
通过chmod指令,可以修改文件或者目录的权限。
2.修改方式
1.第一种方式:+ 、- 、=变更权限
1
+表示“增加权限”
-表示“取消权限”
=表示“唯一权限”
2
u:所有者(是指文件或者是目录的拥有者)
g:所有组
o:其他用户
a:所有人(u、g、o的总和)
2.第二种方式:通过数字变更权限
r=4 w=2 x=1 rwx=4+2+1
chmod u=rwx,g=rx,o=x 文件目录名
相当于chmod 751 文件目录
3.案例
1.给abc文件的所有者读写执行的权限,给所在组读执行权限, 给其他组读执行权限
chmod u=rwx,g=rx,0=x abc
2.给abc文件的所有者除去执行的权限,增加组写的权限
chmod u-x,g+w abc
3.给abc文件的所有用户添加读的权限
chmod a+r abc
4.将/home/abc.txt文件的权限修改成 rwx,r-x,r-x,使用数字的方式实现
chmod 755 /home/abc.txt
注意:对文件夹(目录)的rwx的细节讨论
r:读内容,读目录包含的文件
可以ls,将目录的内容显示
w:新建子文件/子目录、重命名、删除
x:执行文件,进入目录(类似于“双击”)
可以进入到该目录,比如cd
/proc/meminfo 该文件统计了系统内存的使用情况
cat /proc/cpuinfo l查看cpu信息的方法:使用“cat /proc/cpuinfo”命令。在linux系统中CPU信息在启动的过程中被装载到虚拟目录“/proc”下的cpuinfo文件中,因此可以通过“cat /proc/cpuinfo”命令来查看。