在小破站进行了对Linux系统的学习之后,我决定对所学进行整理... ...
放一下该视频的链接:
https://www.bilibili.com/video/BV1nW411L7xm?p=22&vd_source=f49fe5a897c058de3e50c91c192b0615
(如果单纯想看了解Linux系统目录结构与指令的话,建议看P22-P37)
目录:
一、目录结构
二、指令
(1)基础指令
ls
pwd
cd
mkdir
touch
cp
mv
rm
vim
输出重定向
cat
(2)进阶指令
df
free
head
tail
less
wc
date
cal
clear/ctrl+L
管道
(3)高级指令
hostname
id
whoami
ps -ef
top
du -sh
find
service
kill
ifconfig
reboot
shutdown
uptime
uname
netstat -tnlp
man
目录结构
目录结构包括Bin、Dev、Etc、Home、Proc、Root、Sbin、Tmp、Usr、Var、Mnt,其中比较重要的有Dev、Etc、Home、Root、Mnt。接下来对这些目录进行一些解释。
Dev:该目录中主要存放的是外接设备,例如盘、其他的光盘等。
在其中的外接设备是不能直接被使用的,需要挂载(类似Windows下的分配盘符,如图所示)

Etc:该目录主要存储一些配置文件。
Home:表示“家”,表示除了root用户以外的其他用户的家目录。
类似于Windows下的User/用户目录。
Root:root用户自己的家的目录。
Mnt:当外接设备需要挂载的时候,就需挂载到Mnt目录下。
Bin:全称Binary,含义是二进制。
该目录中存储的是一些二进制文件。文件都是可以被运行的。
Proc:Process,表示进程。
该目录中存储的是Linux运行时的进程。
Sbin:全称Super Binary,存储一些二进制文件,
但必须得有super权限的用户才能执行。
Tmp:“临时”。当系统运行的时候产生的临时文件会存在这个目录。
Usr:存放用户自己安装的软件。类似Windows下的Program Files。
Var:存放的程序/系统的日志文件的目录。
指令
基础指令
ls指令
含义:list(列表)
语法:
#ls 列出当前工作目录下的所有文件/文件夹的名称
#ls 路径 列出指定目录下的所有文件/文件夹的名称
#ls 选项 路径 列出指定目录下的所有文件/文件夹的名称,并以指定格式显示
选项:
-l 以列表形式详细展示
-la 显示所有文件/文件夹(包含隐藏文件/文件夹(以“.”开头))
-lh 列出指定目录下的所有文件/文件夹的名称并在显示文档大小时以可读性较高的形式显示

ps:ls列出的结果颜色说明:蓝色-->文件夹 青色-->链接文件
黑色-->文件 绿色背景-->其权限为拥有所有权限 绿色文字-->可执行

ps:第一列字符表示文档的类型。“-”对应的是文件,“d”对应的是文件夹,“l”对应链接,“b”对应设备,“c”对应字符设备文件
pwd指令
含义:print working directory(打印当前工作目录)
语法:#pwd

cd指令
含义:change directory(改变目录,切换当前工作目录)
语法:#cd 路径

ps:有个特殊符号“~”,表示当前用户的家目录
mkdir指令
含义:make directory(创建目录)
语法:
#mkdir 路径
#madir -p 路径 一次性创建多层不存在的目录时添加-p参数,否则会报错
#mkdir 路径1 路径2 路径3 一次性创建多个目录

touch指令
含义:创建文件
语法:
#touch 文件路径
#touch 文件路径1 文件路径2 文件路径3

cp指令
含义:copy(复制文件/文件夹到指定位置)
语法:#cp 被复制的文档路径 文档被复制到的路径
ps:复制过程中可以重命名,但不建议这样做。
ps:复制文件夹时需添加选项“-r”,否则目录将被忽略(“-r”表示递归复制)

mv指令
含义:move(移动、剪切,移动文档到新的位置)
语法:
#mv 需移动的文档路径 需保存的路径(可不加文档名)
ps:不用加“-r”
#mv 文档路径 新文档名(路径)(重命名)

rm指令
含义:remove(移除/删除一个文档)
语法:#rm 选项 需移除的文档路径
选项:
-f 在删除时不想频繁确认可添加“-f”(force)
-r 删除文件夹时 递归 一般使用“-rf”
ps:可以同时删除多个文档,空格间隔就好
举个例子:删除以linux开头的文件
rm -rf linux*
ps:*是通配符,表示任意字符

vim指令
含义:一款文本编辑器
语法:#vim 文件路径 打开一个文件(该文件可以存在也可以不存在)

ps:如果想要退出,需要按下shift+“:”,再按下q,回车 即可

输出重定向
含义:有时需将一些命令的执行结果保存到文件中进行后续分析/统计,而不再终端中输出。
>:覆盖输出
>>:追加输出(在原始内容末尾继续添加)
语法:#正常执行的指令 >/>> 文件路径 (文件可以不存在,不存在则新建)

cat指令
语法:
#cat 文件路径
直接打开一个文件
#cat 待合并文件路径1 待合并文件路径2 待合并文件路径3
可以对文件进行合并,配合输出重定向

进阶指令
df指令
作用:查看磁盘空间
语法:#df -h
ps:“-h”表示可以以较高可读性的形式展示

free指令
作用:查看内存使用情况
语法:#free -m/-g
ps:“-m/-g”表示以mb、gb为单位显示大小

head指令
作用:查看一个文件的前n行。如果不指定n则默认显示前10行
语法:
#head -n 文件路径
#head -c 文件路径
作用:查看字节(一般不用)

tail指令
作用1:查看一个文件的末n行。如果不指定n则默认显示末10行
语法1:#tail -n 文件路径

作用2:查看文件的动态变化,一般用于查看系统的日志
ps:变化的内容不能是用户手动加的
语法2:#tail -f 文件路径
less指令
作用:查看文件,以较少内容进行输出,按下辅助功能键查看更多
辅助功能键:数字+回车、空格+上下方向
语法:#less 文件路径
wc指令
作用:统计文件内容信息(包括行数、单词数、字节数)
语法:#wc (-lwc) 文件路径
-l:表示lines,行数
-w:表示words,单词数
-c:表示bytes,字节数

date指令
作用:操作时间日期(读取、设置)(主要是读取)
语法:
#date

#date +%F
等价于#date "+%Y-%m-%d"


#date "+%F %T"
等价于#date "+%Y-%m-%d %H:%M:%S"


#date -d "-1 day" "+%Y-%m-%d %H:%M:%S" (格式可以自行设置)
作用:获取之前或之后的某个时间

ps:单位可选:day、month、year
cal指令
作用:操作日历
语法:
#cal 直接输出当前月份的日历
等价于#cal -l

#cal -3 输出上个月、本月、下个月的日历

#cal -y 年份 输出某一年份的日历

clear/ctrl+L
作用:上移cmd中已经存在的命令和结果(信息)
ps:实质上是上移信息,并不是真的清除(如图可知)


语法:clear/快捷键ctrl+L
管道
管道符:|(回车键上方)
ps:不能单独使用,必须配合前面的指令一起使用。主要是辅助作用
作用1:“过滤”
语法1:#ls / | grep y (过滤出含y的文档名称)

作用2:扩展处理
语法2:#ls / | wc -l(建议)
或#ls / | wc -w(谨防文件名存在空格...)
作用3:特殊处理——实现less的等价效果(了解即可)
语法3:#cat 路径 | less
高级指令
hostname指令
作用:操作服务器的主机名(读取、设置)(设置了解即可)
语法:
#hostname 输出完整主机名
#hostname -f 输出当前主机中的FQDN(全限定域名)

id指令
作用:查看一个用户的一些基本信息(包括用户id、用户组id、附加组id)
语法:
#id 默认显示当前执行该命令的用户的基本信息
#id 用户名 显示指定用户的基本信息

如何验证上述信息是否正确?结合cat
验证用户信息:通过文件/etc/passwd
验证用户组信息:通过文件/etc/group
whoami指令
作用:显示当前登录的用户名,一般用于shell脚本,用于获取当前操作的用户名记录日志
语法:#whoami

ps -ef指令
作用:查看服务器的进程信息
选项含义:
-e:等价于“-A”,表示列出全部的进程
-f:显示全部的列(显示全字段)
语法:#ps -ef
执行结果:
列的含义:
UID:该进程执行的用户id
PID:进程id
PPID:该进程的父级进程
ps:如果一个程序的父进程找不到,该程序的进程称之为僵尸进程。
C:CPU的占用率(以百分比的形式展示)
STIME:进行的启动时间
TTY:终端设备(发起该进程的设备识别符号)
ps:如果显示“?”则表示该进程并不是由终端发起
TIME:进程的执行时间
CMD:该进程的名称或者对应的路径

top指令
作用:查看服务器的进程占的资源
语法:
进入命令:#top 动态显示
退出命令:按下q键
运行top时,可按下快捷键:
M:将结果按MEM(内存)从高到低进行降序排序
P:将结果按CPU使用率从高到低进行降序排序
(数字)1:展开显示各个CPU的详细信息
表头含义:
PID:进程id
USER:该进程对应的用户
PR:优先级
VIRT:虚拟内存
RES:常驻内存
SHR:共享内存
ps:计算一个进程实际使用的内存=常驻内存(RES)-共享内存(SHR)
S:表示进行的状态(S表示睡眠,R表示运行)
%CPU:CPU的占用百分比
%MEM:内存的占用百分比
TIME+:执行的时间
COMMAND:进程的名称或路径

du -sh指令
作用:查看目录的真实大小
选项含义:
-s:summaries,只显示汇总的大小
-h:表示以较高可读性的形式进行显示
语法:#du -sh 路径

find指令
作用:用于查找文件(参数有55个之多)
选项:
-name 按文档名称进行搜索(支持模糊搜索)
-type 按文档类型进行搜索
语法:#find 路径范围 选项 值

service指令
作用:用于控制一些软件的服务启动/停止/重启
语法:#service 服务名 start/stop/restart
kill指令
作用:杀死进程(当遇到僵尸进程或出于某种原因需关闭进程时)
语法:#kill 进程PID (语法需配合ps一起使用)
与kill指令作用相似但比kill更好用的杀死进程命令:killall
语法:#killall 进程名称
ifconfig指令
作用:用于操作网卡相关的指令
语法:#ifconfig (获取网卡信息)
ps:inet addr就是网卡的ip地址

reboot指令
作用:重新启动计算机
语法:
#reboot
作用:重启
#reboot -w
作用:模拟重启但不重启(只写关/开机的日志信息)
shutdown指令
作用:关机(慎用!)
语法:
#shutdown -h now
#shutdown -h 15:25
若想取消关机计划:#shutdown -c
以下还有几个关机命令:
#init 0
#halt
#poweroff
uptime指令
作用:输出计算机的持续在线时间(计算机从开机到现在的运行时间)
语法:#uptime

uname指令
作用:获取计算机操作系统相关信息
语法:
#uname 获取操作系统的类型
#uname -a 获取全部的系统信息(类型、全部主机名、内核版本、发布时间、开源计划)

netstat -tnlp指令
作用:查看网络连接状态
选项含义:
-t:表示只列出tcp协议的连接
-n:表示将地址从字母组合转化成ip地址,将协议转化成端口号来显示
-l:表示过滤出“state(状态)”列中其值为LISTEN的连接
-p:表示显示发起连接的进程pid和进程名称
语法:#netstat -tnlp

man指令
作用:manual,手册(包含了linux中全部命令的手册,英文)
语法:#man 命令 (退出按下q键)

