Linux目录结构:Linux目录结构为一个树形结构,其根目录为一个名为“/”的目录,同时路径之间的层级关系,也使用“/"来标识。例如:/user/local/helloworld.txt
开头的”/“标识根目录,后面的”/“表示层级关系。
相对路径:以根目录为起点,描述路径的一种写法,路径描述以/开头
绝对路径:以当前目录为起点,描述路径的一种写法
特殊路径符:
. :表示当前目录,比如cd ./Desktop表示切换到当前目录下的Desktop目录内,和cd Desktop效果一样
.. :表示上一级目录,比如:cd .. 即可切换到上一级目录,cd ../.. 切换到上二级的目录
~ :表示HOME目录,比如:cd ~ 即可切换到HOME目录或cd ~/Desktop,切换到HOME内的Desktop目录
$:用于取变量的值
管道符:shift+\,cat test.txt | grep test,含义为将管道符左边的命令的结果,作为右边命令的输入
反引号:`,被其包围的内容会被当做命令来执行,而非普通字符
重定向符:>和>>,>是将左侧命令的结果,覆盖写入到符号右侧指定的文件中。>>是将左侧的命令的结果,追加写入到符号右侧指定的文件中。
root:root用户拥有系统最大操作权限,进入方式su,只在执行时使用root权限sudo
用户,用户组:linux系统可以配置多个用户,用户组,用户可以加入多个用户组中;linux中关于权限的管控级别有2个级别,分别是:针对用户的权限控制,针对用户组的权限控制
权限信息:
rwx:r表示读,查看权限,w代表写,修改权限,x代表执行,进入权限
ctrl+c:强制停止程序,取消命令
ctrl+d:退出或者登出
ctrl+a:跳到命令开头
ctrl+e:跳到命令结尾
ctrl+键盘左键:向左跳一个单词
ctrl+键盘右键:向右跳一个单词
ctrl+l:清屏
在 Linux 系统中,grep
、sed
、和 awk
是三个非常强大的命令行工具,它们用于文本处理和数据提取。下面是每个工具的基本意义和用途:
grep
(Global Regular Expression Print)是一个搜索工具,用于从文件或标准输入(stdin)搜索包含指定模式的行。它支持使用正则表达式来定义这些模式,使得用户可以执行非常灵活和强大的搜索操作。grep
的基本用途包括搜索文本、高亮显示匹配的行、计数匹配的行数等。
假设你想从一个名为 example.txt
的文本文件中查找所有包含单词 "Linux" 的行。你可以使用 grep
命令如下:
grep "Linux" example.txt
这个命令会输出 example.txt
文件中所有包含 "Linux" 文本的行。
sed
(Stream Editor)是一种流编辑器,它可以对流式传输的数据(例如,文件或来自另一个命令的输出)进行基本的文本转换和编辑。sed
主要用于自动编辑一个或多个文件;简化对文件的重复操作;编写转换程序等。sed
的操作包括插入、删除、替换文本等。
假设你需要在一个文件 example.txt
中找到所有的 "Linux" 并将其替换为 "UNIX"。你可以使用 sed
命令如下:
sed 's/Linux/UNIX/g' example.txt
这个命令会在输出中显示所有的 "Linux" 被替换成 "UNIX" 的新内容,但它不会修改原始文件。如果你想直接修改文件,可以使用 -i
选项:
sed -i 's/Linux/UNIX/g' example.txt
awk
是一种编程语言,专门设计用于文本处理和数据提取。awk
的强大之处在于它能够处理数据和生成报告。它基于模式匹配,并为文本和数据分析提供了编程结构,如条件语句、循环语句等。awk
通常用于处理数据文件、提取数据列、对列或行进行计算等。
假设你有一个名为 data.csv
的逗号分隔值(CSV)文件,你想提取第二列的所有值。假定每行都有相同的列数,你可以使用 awk
来实现这一点:
awk -F, '{print $2}' data.csv
这里,-F,
选项指定字段分隔符为逗号(,
),'{print $2}'
告诉 awk
打印每行的第二个字段。
这三个命令在文本处理和数据分析方面非常灵活和强大,它们可以用来执行从简单的文本搜索到复杂的数据处理和报告生成等各种任务。
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
ls | cd | pwd | mkdir | touch | cat | more | cp | mv | rm |
11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 |
which | find | grep | wc | echo | tail | vi/vim | su | sudo | groupadd |
21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 |
useradd | userdel | id | usermod | getent | getent | chmod | chown | history | yum |
31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 |
systemctl | ln | date | ifconfig | hostname | ping | wget | curl | nmap | netstat |
41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 |
ps | kill | top | df | iostat | sar | export | rz/sz | tar | zip |
命令1:ls
作用:
一,当ls不使用参数,表示:列出当前工作目录的内容,即用户的HOME目录
二,当ls使用参数,表示:指定一个Linux路径,列出指定路径的内容
使用方法:ls [-a -l -h] [Linux路径]
-a:(可选)可以展示出隐藏的内容(以 . 开头的文件或文件夹默认被隐藏,需要-a才能显示出来)
-l:(可选)以列表的形式展示内容,并展示更多细节
-h:(可选)需要和-l选项搭配使用,以更加人性化的方式显示文件的大小单位
组合使用:使用方式例如ls -lah,等同于ls -a -l -h
命令2:cd
作用:当LInux命令行打开的时候,会默认以用户的HOME目录作为当前的工作目录,我们可以使用cd命令更改当前所在的工作目录
使用方法:cd [Linux路径]
cd命令直接执行,不写参数,表示回到用户的HOME目录
命令3:pwd
作用:使用pwd命令可以查看当前所在的工作目录
使用方法:pwd
命令4:mkdir
作用:通过mkdir命令可以创建新的目录(文件夹)
使用方法:mkdir [-p] [Linux路径]
-p:(可选)表示自动创建不存在的父目录,适用于创建连续多层级的目录
命令5:touch
作用:通过touch命令创建文件
使用方法:touch [Linux路径]
命令6:cat
作用:通过cat命令查看文件内容
使用方法:cat [Linux路径]
命令7:more
作用:more和cat一样可以查看文件内容,不同的是,
cat,直接讲内容全部显示出来
more,支持翻页,如果文件内容过多,可一页页展示
使用方法:more [Linux路径]
命令8:cp
作用:可以用于辅助文件或文件夹
使用方法:cp [-r] 参数1 参数2
-r:(可选)用于复制文件夹使用,表示递归
参数1:Linux路径,表示被复制的文件或文件夹
参数2:Linux路径,标识要复制到的位置
命令9:mv
作用:可以移动文件或者文件夹
使用方法:mv 参数1 参数2
参数1:Linux路径,表示被移动的文件或文件夹
参数2:Linux路径,标识要移动到的位置
命令10:rm
作用:可以用于删除文件或文件夹
使用方法:rm [-r -f] 参数1 参数2 ... 参数n
-r:(可选)表示删除文件夹
-f:(可选)强制删除并无确认提示信息
参数:Linux路径,表示被删除的文件或文件夹路径,按照空格隔开
命令11:which
作用:可以通过which命令,查看所使用的一系列命令的程序文件存放在哪里
使用方法:which 要查找的命令
命令12:find
作用:可以通过find命令去搜索指定的文件
使用方法:find 起始路径 -name "被查找文件名"
find支持使用通配符*来做模糊查询
(1)符号*表示通配符,即匹配任意内容(包含空)
示例:
test*表示匹配任何以test开头的内容
*test,表示匹配任何以test结尾的内容
*test*,表示匹配任何包含test的内容
基于通配符的含义,可以结合find命令做文件的模糊查询。
(2)find命令支持按文件大小查询
使用方法:find 起始路径 -size +|-n[kMG]
+,-:表示大于和小于
n:表示大小数字
kMG:标识大小单位,k(小写)表示kb,M(大写)表示MB,G(大写)表示GB
命令13:grep
作用:可以通过grep命令,从文件中通过关键字过滤文件行
使用方法:grep [-n] 关键字 文件路径
-n:(可选)表示在结果中显示匹配的行和行号
关键字:表示过滤的关键字,带有空格或其他特殊符号,建议使用" "将关键字包围起来
文件路径:表示要过滤内容的文件路径,可作为内容输入端口
命令14:wc
作用:可以通过wc命令统计文件的行数,单词数量等
使用方法:wc [-c -m -l -w] 文件路径
-c:(可选)统计bytes数量
-m:(可选)统计字符数量
-l:(可选)统计行数
-w:(可选)统计单词数量
文件路径:被统计的文件,可作为内容输入端口
命令15:echo
作用:在命令行中输出指定内容
使用方法:echo 输出的内容
命令16:tail
作用:可以查看文件尾部内容,跟踪文件的最新更改
使用方法:tail [-f -num] [Linux路径]
-f:表示要持续跟踪
-num:表示查看尾部的多少行数据,不填默认10行
命令17:vi/vim
作用:可用来编辑文件
使用方法:vim 文件路径
命令模式快捷键:
i:当前光标位置进入输入模式
a:当前光标之后进入输入模式
I:在当前行的开头进入输入模式
A:在当前行的结尾进入输入模式
o:在当前光标下一行进入输入模式
O:在当前光标上一行进入输入模式
esc:回到命令模式
⬆️\k:向上移动光标
⬇️\j:向下移动光标
⬅️\h:向左移动光标
➡️\l:向后移动光标
0:移动光标到当前行的开头
$:移动光标到当前行的结尾
pageup:向上翻页
pagedown:向下翻页
/:进入搜索模式
n:向下继续搜索
N:向上继续搜索
dd:删除光标所在行的内容
ndd:n是数字,表示删除当前光标向下n行
yy:复制当前行
nyy:n是数字,复制当前行和下面的n行
p:复制粘贴的内容
u:撤销修改
ctrl+r:反向撤销修改
gg:跳到首行
G:跳到行尾
dG:从当前行开始,向下全部删除
dgg:从当前行开始,向上全部删除
d$:从当前光标开始,删除到本行的结尾
d0:从当前光标开始,删除到本行的开头
底线命令模式
:wq -> 保存并退出
:q -> 仅退出
:q! -> 强制退出
:w -> 仅保存
:set nu -> 显示行号
:set paste -> 设置粘贴模式
命令18:su
作用:切换到root权限账户
使用方法:su [-] [用户名]
-:(可选)是否在切换用户后加载环境变量
切换后可使用exit或者ctrl+d快速退出
命令19:sudo
作用:临时使用root权限执行命令
使用方法:sudo [其他命令]
命令20:groupadd/groupdel
作用:添加或删除用户组名
使用方法:groupadd/groupdel [用户组名]
命令21:useradd
作用:添加用户
使用方法:useradd [-g -d] [用户名]
-g:(可选)指定用户的组,不使用默认创建同名组并自动加入
-d:(可选)指定用户HOME路径,不指定默认为/home/用户名
命令22:userdel
作用:删除用户
使用方法:userdel [-r] [用户名]
-r:(可选)删除用户的HOME目录,不实用-r,删除用户时,HOME目录保留
命令23:id
作用:查看用户所属组
使用方法:id [用户名]
命令24:usermod
作用:修改用户所属组用户
使用方法:usermod -aG 用户组 用户名
命令25:getent passwd
作用:使用getent命令,可以查看当前系统中有哪些用户
使用方法:gatent passwd
命令26:getent group
作用:使用getent命令,可以查看当前系统中有哪些用户组
使用方法:gatent group
命令27:chmod
作用:修改文件,文件夹的权限信息
使用方法:chmod [-R] 权限 文件或文件夹
-R:(可选)对文件夹内的全部内容应用同样的操作
快捷修改r记为4,w记为2,x记为1
使用方法:chmod 权限数值 文件或文件夹
命令28:chown
作用:修改文件,文件夹的所属用户和用户组
使用方法:chmod [-R] [用户] [:] [用户组] [文件或文件夹]
-R:(可选)对文件夹内的全部内容应用同样的操作
用户:(可选)修改所属用户
用户组:(可选)修改所属用户组
: :用于分隔用户和用户组
命令29:history
作用:查看历史输入过的命令
使用方法:history
命令30:yum
作用:用于自动化安装配置Linux软件,并可以自动解决依赖问题
使用方法:yum [-y] [install | remove | search] 软件名称
-y:(可选)自动确认
install:安装
remove:卸载
search:搜索
命令31:systemctl
作用:linux很多软件支持使用systemctl命令控制:启动,停止,开机自启
使用方法:systemctl start | stop | status | enable | disable 服务名
start:启动 stop:关闭 status:查看状态 enable:开启开机自启 disable:关闭开机自启
命令32:ln
作用:创建软连接,将文件,文件夹链接到其他位置
使用方法:ln -s 参数1 参数2
-s:创建软连接
参数1:被链接的文件或文件夹
参数2:要链接到的目的地
命令33:date
作用:通过date命令可以在命令行中查看系统的时间
使用方法:date [-d] [+格式化字符串]
-d:(可选)按照给定的字符串显示日期,一般用于日期计算
格式化字符串:(可选)通过特定的字符串标记,来控制显示的日期格式
命令34:ifconfig
作用:查看本机ip地址
使用方法:ifconfig
命令35:hostname
作用:查看本机主机名
使用方法:hostname
修改主机名:hostnamectl set-hostname 主机名
命令36:ping
作用:检查指定网络服务器是否是可连通状态
使用方法:ping [-c num] ip或主机名
-c:(可选)检查的次数
命令37:wget
作用:可以在命令行内下载网络文件
使用方法:wget [-b] url
-b:(可选)后台下载
命令38:curl
作用:发起网络请求
使用方法:curl [-O] url
-O:(可选)用于下载使用
命令39:nmap
作用:查看指定IP的对外暴露端口
使用方法:nmap 被查看ip地址
命令40:netstat
作用:查看指定端口的占用情况
使用方法:netstat -anp | grep 端口号
命令41:ps
作用:查看linux系统的进程信息
使用方法:ps [-e -f]
-e:(可选)显示出全部的进程
-f:(可选)已完全格式化的形式展示信息
命令42:kill
作用:关闭指定进程信息
使用方法:kill [-9] 进程ID
-9:(可选)强制关闭不出提示
命令43:top
作用:通过top命令查看CPU,内存使用情况
使用方法:top [-p -d -c -n -b -i -u]
-p:(可选)只显示某个进程信息
-d:(可选)设置刷新时间,默认是5s
-c:(可选)显示产生进程的完整命令,默认是进程名
-n:(可选)指定刷新次数
-b:(可选)以非交互非全屏模式运行
-i:(可选)不显示任何闲置(idle)
-u:(可选)查找特定用户启动的进程
PID:进程id
USER:进程所属用户
PR:进程优先级,越小越高
NI:负值表示高优先级,正表示低优先级
VIRT:进程使用虚拟内存,单位KB
RES:进程使用物理内存,单位KB
SHR:进程使用共享内存,单位KB
S:进程状态(S休眠,R运行,Z僵死状态,N负数优先级,I空闲状态)
%CPU:进程占用CPU率
%NEM:进程占用内存率
TIME+:进程使用CPU时间总计,单位10毫秒
COMMAND:进程的命令或名字或程序文件路径
命令44:df
作用:查看硬盘的使用情况
使用方法:df [-h]
-h:(可选)以更加人性化的单位
命令45:iostat
作用:查看CPU,磁盘的相关信息
使用方法:iostat [-X] [num1] [num2]
-X:(可选)显示更多信息
num1:(可选)刷新间隔
num2:(可选)刷新次数
命令46:sar
作用:查看网络的相关统计
使用方法:sar -n DEV num1 num2
-n:查看网络
num1:刷新间隔
num2:刷新次数
命令47:export
作用:修改环境变量
使用方法:(临时生效)export 名称=值
永久生效:
针对用户:~/bashrc文件中配置
针对全部用户:/etc/profile文件中配置
配置完成后,通过source命令立即生效
命令48:rz/sz
作用:上传和下载
使用方法:rz/sz
命令49:tar
作用:压缩和解压
使用方法:tar [-c -v -x -f -z -C] 参数1 参数2 ... 参数n
-c:创建压缩文件,用于压缩模式
-v:显示压缩,解压过程,用于查看进度
-x:解压模式
-f:要创建的文件,或要解压的文件,-f选项必须在所有选项中位置处于最后一个
-z:gzip模式,不使用-z就是普通的tarball格式
-C:选择解压的目的地,用于解压模式
命令50:zip
作用:压缩和解压
使用方法:zip [-r] 参数1 参数2 ... 参数n
-r:被压缩的包含文件夹的时候,需要使用-r选项,和rm,cp等命令的-r效果一致