Linux基础命令

本文详细介绍了Linux的目录结构特点,路径描述方式(绝对路径和相对路径),以及一系列基本的Linux命令,如ls、cd、mkdir、touch、cat、more、cp、mv、rm等,还涉及了管理员模式、命令本质、which、find、grep、wc、管道符、echo、重定向符和vim编辑器常用命令。
摘要由CSDN通过智能技术生成

目录

Linux目录结构:

Linux路径的描述方式:

Linux相对路径和绝对路径:

系统配置: 

service服务管理:

systemctl命令:

防火墙:        

查看系统内核与版本:

用户密码修改:

Linux命令入门:

ls命令:

cd-pwd命令:

mkdir命令:

touch命令: 

cat命令:

tac命令:

rev命令:

more命令:

cp命令:

mv命令:

rm命令:

管理员模式: 

命令的本质:

which命令:

find命令 :

 ​编辑

grep命令:

 wc命令:

tr命令:

 cut命令:

管道符: 

echo命令: 

重定向符: 

tail命令: 

vim常用命令:

帮助命令:

查看主机名命令:

修改主机名:

stat命令:

file命令:

通配符:

设置时间:

paste命令:

sort命令:

uniq命令:

Linux三剑客

正则表达式的分类

基本的正则表达式

扩展的正则表达式

grep命令

示例:

sed命令:

示例:


Linux目录结构:

        Linux目录结构是一个树状结构,

        windows系统中有多个盘,如C盘、D盘、E盘

        Linux没有盘符这个概念,只有一个根目录 / 所有的文件都在根目录下。


Linux路径的描述方式:

        Linux系统中,路径之间的层级关系,使用 :/来表示

         如: /usr/local/hello.txt (开头/表示根目录,后面的/表示层级关系)

        windows系统中,路径之间的层级关系,使用:\来表示

        如:D:\data\work\hello.txt (开头D表示D盘、/表示层级关系)


Linux相对路径和绝对路径:

        绝对路径:以根目录作为起点,路径以 / 开头

        相对路径:以当前目录作为起点,路径不需要 / 开头

        . 表示当前目录,比如:cd . 或 cd ./Desktop

        .. 表示上一级目录,比如 : cd .. (上一级)或者cd ../.. (上两级)

        ~表示用户的home目录,比如:cd~ 或 cd ~/Desktop


系统配置: 

service服务管理:

        语法:service 服务名 start | stop |  restart | status

        在centos7之后就很少使用service了,而是使用systemctl

        service命令在 /etc/init.d中查看


systemctl命令:

        语法:systemctl start | stop | restart | status 服务名

        查看所有服务开机启动状态:systemctl list-unit-files 

        关闭开机启动:systemctl disable service_name

        开启开机启动:systemctl enable service_name

        查看服务的方法:/usr/lib/systemd/system


防火墙:        

        语法:

        systemctl status firewalld  #查看防火墙状态

        systemctl stop firewalld # 关闭防火墙

        systemctl start firewalld # 开启防火墙

        systemctl enable firewalld.service  # 开机自启动防火墙

        systemctl disable firewalld.service  # 开机不自启动防火墙        


查看系统内核与版本:

        语法:uname -a    #查看内核/操作系统/CPU信息

        语法:cat /etc/centos-release  #查看centos具体版本


用户密码修改:

        语法:passwd [options] [LOGIN]
        示例:

        1.更改当前用户的密码       

    passwd

         2.创建root密码    

sudo passwd root

        3.更改其他用户的密码

sudo passwd user_name

注意: 

passwd命令会拒绝任何不够复杂的密码。

如果您输入的当前密码作为新密码,系统会抛出一个错误消息,表示密码未更改,并再次提示您输入新密码。

如果出现bash: passwd: command not found,请按照上述方法安装。


Linux命令入门:

ls命令:

        ls  [-a -l -h]  [Linux路径]

        [-a -l -h] 可选选项,[Linux路径]可选参数。

        不使用任何选项、参数就会以平铺的形式展开。

        -a 表示显示全部(包括文件和文件夹)        

        以 . 开头的是隐藏文件(文件夹)、只有使用-a选项才能看见。

        -l 表示以列表的形式显示内容

        ls -l -a / ls -la / ls -al

        选项可以组合使用,表示以列表的形式展示全部的内容。

        -h表示以易于阅读的形式,列出文件的大小、如k、m、g

         但是-h必须要和 -l 一起组合使用、单独使用是没有作用的        


cd-pwd命令:

        cd [Linux路径]

        表示切换工作目录

         pwd、无选项、无参数,直接输入pwd即可。

        


mkdir命令:

        mkdir [-p] Linux路径 

        表示创建文件夹(目录)

        注意:创建文件夹时,必须要在home目录内,在home目录外会涉及到权限问题。

        创建时不要习惯性的在前面加个  / ,这是根目录。

        


touch命令: 

        touch Linux路径 文件名。

        表示在...路径内创建一个文件。


cat命令:

        cat [ -n  ] 文件名

        选项 -n :表示是否显示行号

        表示查看文件里的内容。


tac命令:

        语法:tac  文件名

        逆向显示文件里的内容


rev命令:

        将同一行的文件内容逆向显示


more命令:

        more Linux路径

        表示查看文件里的内容,与cat不同的是,cat是直接将内容全部显示出来。more支持翻页如果文件过多,可以一页一页展示。(按空格可以翻页,按q就会退出)

        可配合 管道符 | 使用,将结果变为分页显示

        例如:=pstree -g -u | more


cp命令:

        cp [-r -a] 参数1 参数2

        -r 选项用于复制文件夹使用,表示递归。

        -a 选项用于备份,相当于归档

        -i 选项用于提示是否覆盖

        参数1,Linux路径,表示被复制的文件或文件夹

        参数2,Linux路径,表示要复制去的地方

        注意:复制文件夹时要用 - r 选项,参数2可以为不存在的文件夹,即:复制的同时创建了一个新的文件夹。


mv命令:

        mv 参数1 参数2 

        参数1,Linux路径,表示要移动的文件或文件夹

        参数2,Linux路径,表示要移动去的地方 


rm命令:

        rm [-r -f ] 参数1 参数2 参数 3  ...... 参数N

        也可以组合使用rm -r -f  /* | / 或者 rm -rf /* | / (删库跑路操作,表示强制删除根目录下的所有文件夹。  

        和cp命令一样,-r用于删除文件夹。

        -f表示强制删除(不会弹出提示确认信息)

                普通用户删除内容不会跳出提示,只有root管理用户才会

                所以一般用户用不到-f选项

                参数1 参数2 ....参数N表示要删除的文件或文件夹路径,按照空格隔开。

重点:

        rm命令支持通配符*,可以用来做模糊匹配。

        符号*表示通配符,即匹配任意内容(包含空),示例:

        test*,表示匹配任何以test开头的内容

        *test ,表示匹配任何以test结尾的内容

        *test*,表示匹配任何包含test的内容


管理员模式: 

        su -  root,然后输入vm虚拟机的密码

        输入exit退出管理员模式


命令的本质:

        我们前面学习的Linux命令其实他们的本体就是一个个可以执行的程序,

和windows系统的.exe一样


which命令:

        which 要查找的命令

        通过使用which命令,查找所使用的一系列命令的程序文件存放在哪里


find命令 :

        find 起始路径  [expression]

        选项-name [file]:根据文件名搜索文件

        选项-size [-|+size]:根据文件大小搜索文件 +为大于、-为小于

        选项-type [type]:根据类型搜索文件,如 -type d 为搜索目录 f 则为搜索文件

        选项-mtime [-|+n]:根据修改时间搜索文件,n为天数(-mmin n则为分钟数)-为以内、+为超过

        选项exec [command] {}:将查找的文件执行指定的命令,结尾记得带 \ ;

        与windows的查文件的功能一样,也和rm命令一样支持通配符

         

        find 起始路径 -size  +|-n [kmg](-表示小于,+表示大于)

        下图表示大于一个G的文件(K、M、G)

示例1:查找名称为filename的文件

find / -name filename

示例2:搜索所有大于1MB的文件

find / -size +1M

示例3:查找当前目录及子目录下所有的 .sh 文件

find . -name "*.sh"

 

实例4:在/home目录中查找以.log结尾的文件

find /home -name "*.log"

实例5:查找用户所有者为root,并且文件大小超过10M的文件

find /home -user root -size +10M

实例6:在当前目录查找更改时间在5天之内的文件

find . -mtime -5

 实例7:在 / 目录下查找5分钟以内修改过的文件

find / -mmin -5

实例8:找出所有空的目录

find / -empty -type d

实例9:查找并删除所有的 .tmp 文件

不要忘记结尾有“ ;” 

find / -name "*.tmp" -exec rm {} \;

实例10:查找并打印所有以 .sh 结尾的文件,并显示其文件大小和最后修改时间

find / -name "*.sh" -exec ls -lh {} \;

实例11:查找/home目录中,更改时间超过了10天,但是小于15天的文件

find /home -mtime +10 -mtime -15

grep命令:

        grep  [-n  -v]  关键字  文件路径....

        表示通过grep命令,从文件中通过关键字过滤文件行。

        选项-n,表示在结果中显示匹配的行号,

        选项-v,表示反向查找、即查找所以不包含关键词的·、

        参数1 关键字 表示过滤的关键字,带有空格或其他特殊符号,建议使用" "将关键字包围起来

        参数2 文件路径 表示要过滤内容的文件路径,可作为内容的输入端口

 


 wc命令:

        wc [-c -m -l -w] 文件路径

        表示通过wc命令统计文件的行数,单词数量等。

        选项 -c 统计bytes数量

        选项-m 统计字符数量

        选项-l 统计行数

        选项-w 统计单词数量


tr命令:

        作用:替换

         语法:tr  [ -d -s ] ‘string1’   ‘string2’

        选项-d:删除字符串

        选项-s: 删除所有重复出现字符序列,只保留第一个,即将重复出现字符串压缩为一个字符串

        # 用法1:命令的执行结果交给tr处理,其中string1用于查询,string2用于转换处理
                        其他命令的结果  | tr ‘string1’ ‘string2’
        # 用法2:对来自于filename文件中的内容进行字符替换。
                        tr 'string1' 'string2' < filename
        # 用法3:对来自filename文件的内容查询string1并进行相应的处理,比如删除等。
                        tr option 'string1' <filename

 将所有小写替换为大写

将所以得数字替换为符号&

将所有的冒号替换成tab制表符

将所有的小写字母删除

将所有引号中的符号删除

通过-s参数即可实现压缩,如下所示,第二行内容因为不是连续重复,因此不会压缩


 cut命令:

        作用:从文件的每一行剪切字节、字符和字段并将这些字节、字符和字段输出。

        语法:cut [选项参数]  filename

        选项-d:分隔符,按照指定分隔符分割列。与 -f 一起使用

        选项-f:依据 -d 的分隔字符将一段信息分割成为数段,用 -f 取出第几段的意思(列号,提取第几列)

        选项-c:以字符 (characters) 的单位取出固定字符区间

        选项-b:以字节为单位进行分割

例如:以空格分割提取第一列

提取第一到第二的字符

提取指定关键词

选取系统PATH变量值,将其以:分割,提取第1个“:”开始后的所有路径:


管道符: 

        管道符的含义是:将管道符左边命令的结果,作为右边命令的输入  

        左边输出的结果会成为右边输入的内容,

        只要左边是输出结果的命令都可以,右边的文件路径可以作为输入端口使用,即:不填 

        也可以同时使用多个管道符

常用在排序、运算、去重、查找、检测等情况下: 


echo命令: 

        echo 输出的内容

        和编程语言的printf语句相同

        有无" " 都可以

          echo `pwd` 在飘号内的不再作为输出内容,而是命令。

        


重定向符: 

        > 和 >>

        >,将左侧的命令的结果,覆盖写入到右边的文件,把原本的内容清空,

        >>,将左侧的命令的结果,追加写入到右边的文件,不会影响文件里原本的内容

        与管道符的作用相似,只有左边是有结果的命令都可以

        


tail命令: 

        tail [-f -num] Linux路径

        表示查看尾部的内容,跟踪文件的最新更改

        参数Linux路径,表示被追踪的文件路径

        选项 -f 表示持续追踪(只要最后一行发生变化就会刷新)

        选项 -num 表示查看尾部多少行,不填写则默认为10行


vim常用命令:

        命令模式 / ,表示搜索,n向下搜索、N向上搜索。

        命令模式dd,表示删除光标所在行的内容

        命令模式ndd,表示删除当前光标向下n行

        命令模式yy,表示复制当前行

        命令模式nyy,表示复制当前行和下面的n行

        命令模式p,表示粘贴复制的内容

        命令模式u,表示撤销

        命令模式ctrl+r,反向撤销

        命令模式gg,表示来到首行

        命令模式G,表示来到行尾

        命令模式dG,表示从当前行开始,向下全部删除

        命令模式dgg,表示当前行开始,向上全部删除

        shift+:输入w,保存,q,退出,wq,保存退出,q!,强制退出,set nu,显示行数


帮助命令:

        man  命令

        help  命令 


查看主机名命令:

        hostname    #查看主机名

        whoami    #显示当前登录有效用户

        who     #系统当前所有登录会话

        w     #系统当前登录会话和所做操作


修改主机名:

        语法:vim /etc/hostname


stat命令:

        查看文件状态

        语法:stat  文件名


file命令:

         确定文件内容

        语法:file  文件名


通配符:

 通配符:*

通配符:? 

通配符:[0-9]和{0..9}

 通配符:[a-z][0-9][^0-9]

括号不同,显示结果也不同

通配符:[:digit:] 


设置时间:

        语法:date  #显示当前时间

        语法:date -s "2024-08-09 21:05:18"  #设置系统当前时间


paste命令:

        作用:合并多个文件的同行号的列到一行

        语法:paste [ -s -d ] 文件1  文件2

        选项 -s:所有行合成为一行显示

        选项-d:指定分隔符,默认为tab


sort命令:

        作用:对文本文件进行排序

        语法:sort [options] 文件名

        选项 -r :逆序

        选项-t:指定分隔符

        选项-k:选择使用分隔符后的第k列来排序

        选项-n:按照数字大小进行排序

        选项-h:按照人类可读的单位(k、G)

        选项-o:将排序后的结果保存

        选项-u:去重

        默认无选项排序

        对以“:”分割的文本文件的第三列进行排序(按照第一个数的大小、并非总数大小)

        添加了-n选项后就是按照数字大小

虽然按照数字排序了、但是没有识别单位(使用-h选项可以识别单位)

选项h和选项n不能同时出现 

       

将排序后的结果保存在sort.txt文件中

去重排序


uniq命令:

        作用:去重

        语法:uniq [ -c -d -u ] 文件名 ..

        选项-c:显示重复出现的次数

        选项-d:显示重复出现的行 

        选项-u:显示不重复出现的行


Linux三剑客

文本处理工具,均支持正则表达式引擎

1.grep:文本过滤工具

2.sed:文本编辑工具

3.awk:Linux的文本报告生成器(格式化文本),Linux上为gawk


正则表达式的分类

Linux三剑客主要分为两类:

1.基本正则表达式BRE

对应的元字符为^ $ . [ ] *

2.扩展正则表达式

对应的元字符是基本表达式的基础上加( ) { } ? + | 等字符


基本的正则表达式


扩展的正则表达式

字符作用
+匹配前一个字符1次或多次
[:/]+匹配括号内的":"或者"/"字符1次或多次
匹配前一个字符0次或1次
|表示或者,同时过滤多个字符串
()分组过滤,被括起来的内容表示一个整体
a{n,m}匹配前一个字符最少n次,最多m次
a{n,}匹配前一个字符最少n次
a{n}匹配前一一个字符正好n次
a{,m}匹配前一个字符最多m次

grep命令

语法:grep [选项]  [匹配模式]  [文件名]
 
选项 -E:开启扩展的正则表达式
选项 -c:计算找到'搜寻字符串'的次数
选项 -i:忽略大小写的不同,所以把大小写视为相同
选项 -o:只显示被漠视匹配到的字符串
选项 -v:反向选择,即输出没有匹配到的那些字符
选项 --color=auto:可以将找到的关键词部分加上颜色的显示!
选项 -n:顺便输出行号
选项 -w:表示精确匹配一个字符

示例:

1,准备一个grep.txt文本文件


2,怎么统计一共多少行?

(添加选项-c后即可统计)

 grep 'txt' grep.txt


3,将其中两个txt改为大写后,查找失败,怎么同时查找大小写?

(添加选项-i后即可同时查找)

 grep 'txt' grep.txt -i


4,怎么在查找时不包含空行?

('^&'表示空行,查找出空行后,使用选项-v取反即可)

 grep '^$' grep.txt -n -v


5,怎么在不包含空行的同时也不包含注释?

(配合管道符一起)

 grep '^$' grep.txt  -v | grep '^#' -n -v


 6,怎么查找x及其前面所有的?

(贪婪匹配)

grep '.*x' -n grep.txt


7,查找后默认输出一行,怎么让他只输出关键字?

(使用选项-o)

grep 'linux' grep.txt -o


8,怎么查找英文?

(A-Za-z)

 grep '[a-zA-Z]' grep.txt 


9,? +  |  以及()怎么使用?


10,怎么查找字母o至少出现一次,至多出现两次的情况?

 grep 'o{1,2}' cut.txt -E -o -n


sed命令:

        作用:是一种在命令行下处理文本文件的工具。sed主要用于自动编辑一个或多个文件、简化对文件的反复操作、编写转换程序等

        语法:sed [options]  'sed编辑命令'  file(s)

选项描述
-n安静模式。在一般 sed 的用法中,所有来自 STDIN 的数据一般都会被列出到终端上。但如果加上 -n 参数后,则只有经过 sed 特殊处理的那一行(或者动作)才会被列出来。
-e直接在命令列模式上进行 sed 的动作编辑。
-f直接将 sed 的动作写在一个文件内, -f filename 则可以运行 filename 内的 sed 动作。
-rsed 的动作支持的是基础正则表达式,这样不支持 ?+ 和 {} 等特殊字符。但如果加上 -r 参数,则可以支持扩展型正则表达式。
-i直接修改读取的文件内容,而不是由屏幕输出。
命令作用
a新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~
c取代, c 的后面可以接字串,整行替换
d删除,删除指定行delete,所以 d 后面通常不接任何
i插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行)
p打印,亦即将某个选择的数据印出。通常 p 会与参数 sed -n 一起运行
s取代,字符串替换,通常这个 s 的动作可以搭配正规表示法!例如 1,20s/old/new/g 
=输出行号
r将文件的内容读入 read
w将文本写入文件 write

示例:

 示例1:显示第5行

sed -n '5p' /etc/passwd

示例2:显示第1至5行

sed -n '1,5p' /etc/passwd

示例3:显示最后一行

sed -n '$p' /etc/passwd

示例4:删除第3到5行

sed '3,5d' /etc/fstab

示例5:替换字符串

sed 's/test/TEST/' file.txt

这个命令会将file.txt文件中的第一个test替换为TEST

示例6:删除空白行

sed '/^$/d' file.txt

示例7:在每一行的开头添加文本

sed 's/^/Hello, /' file.txt

示例8:在每一行的结尾添加文本

sed 's/$/ --End/' file.txt

示例9:删除特定行

sed '3d' file.txt

示例10:替换指定行的文本

sed '3s/test/TEST/' file.txt

示例11:插入文本到指定行、

sed '3i\Hello, World!' file.txt

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值