Linux常用命令集

Linux命令帮助

 ●目录与文件基本操作

Shell

Linux系统中运行的一种特殊程序

在用户和内核之间充当“翻译官”

用户登陆Linux系统时,自动加载一个shell程序

BashLinux系统中默认使用的shell程序

 

Shell 能够接收用户输入的命令,并对命令进行处理,处理完毕后再将结果反馈给用户,

Shell只能去调用内核提供的 open() 和 read() 函数,然后内核就按照 Shell 的吩咐去读取文件,并将读取到的文件内容交给 Shell,最后再由 Shell 呈现给用户(其实呈现到显示器上还得依赖内核)。整个过程中 Shell 就是一个“中间商”,它在用户和内核之间“倒卖”数据.

 

Linux命令

 优点,优势

1.一切都是一个文件。(包括硬件,文本,二进制,源代码)

2.系统中拥有小型,单一用途的程序。(一个程序只负责做好自己的本职工作)

3.当遇到复杂任务,通过不同功能用途的程序组合起来完成。

4.避免令人困惑的用户界面就是没有复杂的图形界面。

5.连配置文件都存储在文本中,方便增删改查。

6.不在乎后缀名,有没有都无所谓,不是通过后缀名来定义文件的类型。

 

基础知识:

root            表示用户

localhost    主机名

~              家目录

#              管理员用户

$              普通用户

root          root的家目录

opt            opt目录

 

Linux命令的分类

● 内部命令与外部命令

内部命令  外部命令
集成于Shell解释器程序内部的一些特殊指令,也称为内建(Built-in)指令 Linux系统中能够完成特定功能的脚本文件或二进制程序
属于Shell的一部分 属于Shell解释器程序之外的命令
没有单独对应的系统文件 每个外部命令对应了系统中的一个文件
自动载入内存,可以直接使用 必须知道其对应的文件位置,由Shell加载后才能执行

 

命令行格式

 通用的命令行使格式

命令字     【选项】     【参数】

命令字是唯一确定一条命令,是整条命令中最关键的一部分

选项,短格式使用"-"引导,长格式使用"--"引导

参数,命令的处理对象,可以是文件名、目录(路径)名或用户名等,个数可以是零到多个

 

编辑Linux命令行的辅助操作

快捷键功能
Tab 键 自动补齐(两次可以显示所有选项)
反斜杠“\” 强制换行或转义
Ctrl+a 光标移到最前
Ctrl+e end 键 光标移到最后
Ctrl+U 清空至行首不包括当前光标处的 字符
Ctrl+K 清空至行尾包括当前光标处的字符
Ctrl+w 从当前光标删除到开头
ALT+d 从当前光标删除末尾
Ctrl+l 清屏
Ctrl+c 取消本次命令编辑
Ctrl+s/Ctrl+q 锁屏/解锁
向上下箭头 回看执行过的命令

 

获得命令帮助的方法

■ 内部命令 help

   查看shell内部命令的帮助信息

■ 命令的 --help选项

   适用于大多数Linux外部命令

■ 使用man命令阅读手册页

   使用 “↑”、“↓”方向键滚动一行文本

   使用page Up和Page Down 键翻页

   使用Q或q退出阅读环境

   按“\”键查找内容,n向下  N向上

 

小结

shell在用户和内核间充当“翻译官”

Linux命令分为内部命令和外部命令

获得Linux命令帮助的方法

 

1.1 命令

pwd命令为英文print work directory的缩写 ,print work directory翻译为查看所在路径

cd命令为英文change directory的缩写,change directory翻译为 切换目录; 更改目录; 更换目录; 转换目录;

 

命令效果
cd cd ~ 若不指定目标位置,切换到当前用户的宿主目录(家目录)
cd - 到前一次目录
一个点号“.”开头 表示以当前的工作目录作为起点(已点开头的是)
两个点号“..”开头 表示以当前目录的上一级目录(父目录)作为起点
“~用户名”形式开头 表示以指定用户的宿主目录(家目录)作为起点
"."开头文件 表示隐藏文件

 

想对路径的表现形式

表现形式 说明 示例
直接使用目录名或文件名 表示当前工作目录中的子目录、文件的位置 grub.comf
以一个点号“.”开头 表示以当前的工作目录作为起点 ./grub.conf
以两个点号“..”开头 表示以当前目录的上一级目录(父目录)作为起点 ../vmlinuz
以“~用户名”形式开头 表示以指定用户的宿主目录作为起点 ~teacher

绝对路径以根为起点

想对路径以当前工作目录为起点

 

1.2 ls-显示指定工作目录下的内容及属性信息

ls 命令是Linux下最常用的指令之一。

ls命令为英文单词list的缩写,list翻译为 :列表; 名单; 清单; 目录; 一览表;

正如英文单词 list 的意思,其功能是列出指定目录下的内容及其相关属性信息。

默认状态下,ls命令会列出当前目录的内容。而带上参数后,我们可以用ls做更多的事情。作为最基础同时又是使用频率很高的命令,我们很有必要搞清楚ls命令的用法,

语法格式: ls [选项] [文件]

 常用参数

-a 显示所有文件及目录 (包括以“.”开头的隐藏文件)
-l 使用长格式列出文件及目录信息
-r 将文件以相反次序显示(默认依英文字母次序)
-t 根据最后的修改时间排序
-A 同 -a ,但不列出 “.” (当前目录) 及 “..” (父目录)
-S 根据文件大小排序
-R 递归列出所有子目录

参考示例

ls -a               列出所有文件(包括隐藏文件)

 ls -l                列出文件的详细信息

 ls /                 列出根目录(/)下的所有目录

 ls -AS              列出当前工作目录下所有文件及目录并以文件的大小进行排序 

ls -l -AS

 

 ls -d         仅列出目录本身,而不是列出目录内的文件数据

ls -ld        只显示目录本身信息

 

1.3 通配符

符号效果
匹配一个字符 f?.txt
* 匹配所有非隐藏的字符无论多长多短,但不匹配 "." 开头的文件,即隐藏文件
{1..10} 1到10
{a..z} a b c ...z
{A..Z} A B C .....Z
[123] 取其中之一有就显示没有也无所谓
[a-z] 范围需要注意
[0-9] 匹配数字范围(0123456789)
\ 转义符,表示原来的意思
[[:lower:]] 小写字母表示 a-z
[[:upper:]] 大写字母表示 A-Z
[^zhou] 匹配列表中的所有字符以外的字符
[[:digit:]] 任意数字,相当于0-9

 

 1. ?           

[root@localhost lianxiJ#ls a?.txt           匹配一个字符 a?.txt

 2.  *           

[root@localhost lianxiJ#ls *.txt              匹配所有非隐藏的字符(除“.”)

 3.  {1..10}    

[root@localhost lianxiJ#touch file{1..10}.txt       数字1到10

  

 4.  {a..z}       

[root@localhost lianxiJ#touch {a..z}.txt              字母a到z

 5.  {A..Z}       

[root@localhost lianxiJ#touch {A..Z}.txt             字母A到Z

 6.  [a-z]         

[root@localhost lianxiJ#ls [a-z].txt                     字母aA到zY不包括Z             

 7. [123]       

[root@localhost lianxiJ#ls [123]                               取其中之一有就显示没有也无所谓

[root@localhost lianxiJ#ls [123][123]                       取其中之一有就显示没有也无所谓

[root@localhost lianxiJ#ls [123][123][123]               取其中之一有就显示没有也无所谓

 8. [[:lower:]]     

[root@localhost lianxiJ#ls [[:lower:]].txt           只取小写字母

 9. [[:upper:]]        

[root@localhost lianxiJ#ls [[:upper:]].txt          只取大写字母

 

 10.[^ufo]             

[root@localhost lianxiJ#ls [^ufo].txt                取除了[ ]内字母外的所有字母

 11. [[:digit:]]         

 [root@localhost lianxiJ#ls [[:digit:]]                任意数字,相当于0-9

 

12.\               

\cd 123                            转义符,表示原来的意思 

注释:这里先用别名修改了cd=ls,把打开文件目录变成了查看,所以之后再用cd输入“123”的时候是查看了“123”目录下的文件

            \   转义之后恢复原来意思进入“123”文件的 目录

 

 

 

1.4 设置别名-alias

通过别名机制简化常用的、比较长的命令

alias 命令别名  =  命令

alias myvim='vim /sysconfig/network-scripts/ifcfg-ens33'     定义别名

unalias myvim        取消别名

 

 

 1.5 du-统计目录及文件空间占用情况

du是英文单词Disk Usage的缩写,翻译为查看磁盘占用空间

语法格式:du  [选项]   [文件或目录...]   (包括隐藏文件)

选项 说明
-a 统计吸磁盘空间占用时包括所有的文件,而不仅仅只统计目录
-h 以更人性化的方式(默认以KB计数,但不显示单位)显示出统计结果
-s 只统计所占用空间总得(Summary)大小,而不是统计每个子目录、文件的大小

 

参考示例

 

du -a                        统计每个子目录、文件的大小

du -h                         以更人性化的方式显示出统计结果

 du -s                        统计显示所有文件总大小

 

 扩展:

du --max-depth=1 /root/lianxi         只统计某一层文件的大小

 du --max-depth=2 /root/lianxi

 简易命令du -d n    n为任意层数字

 

统计排除所有.txt格式的文件

du --exclude=*.txt

 

 

 1.5 mkdir 创建新目录

mkdir 创建新的空目录

语法格式:mkdir [选项] 目录位置及名称

参考示例

mkdir 123                          创建单个文件夹

mkdir aa bb cc                   创建多个文件夹

 mkdir -p ./aa/bb/cc             递归创建目录,在文件夹下创建aa,并在aa下创建bb,bb下创建cc

 

 

1.6 touch 创建空文件

touch   用于更新文件的时间标记,创建多个新的空文件

语法格式:touch 文件...

参考示例

touch aaa.txt                 创建一个新文件

 如若创建的文件名已存在,则会刷新文件的时间

 

 文件的时间有三种

access time→atime     最后访问时间         ls -lu

change time→ctime     最后状态更改时间  ls -lc

 

modify time→mtime     最后修改时间          ls -l

                                     同时显示三种时间   stat filename

 

1.7 ln 创建链接文件

ln 为文件或目录建力链接文件,类似于windows系统的快捷方式

链接文件类型

硬连接   同一个文件取不同的名字,不支持文件夹

软连接   类似于windows系统的快捷方式,软连接,符号连接

语法格式:ln [-s] 源文件或目录... 链接文件或目标位置

参考示例

ln -s /root/lianxi/aaa /root/lianxi/123                     做了一个lianxi文件夹下的aaa文件软连接,到lianxi文件夹下的123里面

 ln -s /root/lianxi/aaa /root/lianxi/123/bbb               做了一个lianxi文件夹下的aaa文件软连接,到lianxi文件夹下的123里面并改名为bbb

 ln /root/lianxi/aaa /root/lianxi/123/ccc                    做了一个lianxi文件夹下的aaa文件的硬连接,到lianxi文件夹下的123里面并改名为ccc

 此时可以看到ccc是一个文件而不是一个链接

对比项 硬连接 软连接
本质 本质是同一个文件 本质不是同一个文件
inode 相同 不同
连接数 创建新的硬连接,链接数会增加,删除硬连接。链接数减少 删除新建都不会改变
文件夹 不支持 支持
删除源文件 只是连接数减一,但连接文件的访问不受影响 无法访问连接文件
文件类型 和源文件相同 链接文件,和源文件无关
文件大小 和源文件相同  

 

 

1.8 cp 复制文件或目录

cp命令是英文copy的缩写,其功能为复制文件或目录。

语法格式:cp [参数] [文件]

常用选项

选项  说明 
 -f 覆盖目标同名文件或目录时不进行提醒,直接强制复制 
-i  覆盖目标同名文件或目录时提醒用户确认 
-p   复制时保持源文件的权限、属主及时间标记等属性不变
-r  复制目录时必须使用此选项,表示递归复制所有文件及子目录 

 参考示例

cp 111 aa                            同一目录下复制111到aa

 cp 111 /root/aa/223             复制111到aa下并改名为223

 

 cp 111 222 /root/lianxi/bb     将多个文件复制到lianxi下的bb

 

 cp -r aa cc                            复制目录aa到目录cc

 

 cp -f 111 /root/lianxi/aa

本身-f覆盖文件不应被询问是否覆盖,这边提示是因为alias别名定义了cp=cp -i,所以-f强制无效

 这里如果要-f生效的话可以使用\转义

 转义之后并无跳出系统提示

 

 1.9 rm 删除文件或目录

rm删除指定的文件或目录

语法格式:rm [选项] 要删除的文件或目录

常用参数

选项 说明
-f  忽略不存在的文件,不会出现警告信息
-i  删除前会询问用户是否操作
-r  递归删除

 

 

2.0 mv 移动文件或目录

mv命令是“move”单词的缩写,其功能大致和英文含义一样,可以移动文件或对其改名。

这是一个使用频率超高的文件管理命令,我们需要特别留意它与复制的区别:mv与cp的结果不同。mv命令好像文件“搬家”,文件名称发生改变,但个数并未增加。而cp命令是对文件进行复制操作,文件个数是有增加的。

语法格式:mv [参数]

常用参数:

-i 若存在同名文件,则向用户询问是否覆盖
-f 覆盖已有文件时,不进行任何提示
-b 当文件存在时,覆盖前为其创建一个备份
-u 当源文件比目标文件新,或者目标文件不存在时,才执行移动此操作

 

参考示例

mv 1.txt 2.txt         移动1.txt.并改名为2.txt

 

 

mv 2.txt aa             移动2.txt到目录aa

 

 补充:

如何批量改名1.写脚本  2. rename

rename .txt .bak *.txt      rename 旧字符 新字符 目标文件

rename只能改后缀名相同的文件

 

2.1 which 查找命令、文件存放目录

which命令的作用是在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果。

搜索范围由环境变量PATH决定(echo $PATH)

语法格式:which [参数] [文件]

主要用来找命令位置的

 

 

2.2 find 查找文件或目录

find 采用递归方式,根据目录的名称、类型、大小等不通属性进行精细查找

语法格式:find [参数] [路径] [查找和搜索范围]

常用参数

查找类型  关键字 说明 
 按名称查找 -name   根据目标文件的名称进行查找,允许使用“*”及“?”通配符
 按文件大小查找 -size

根据目标文件的大小进行查找

一般使用“+”、“-”号设置超过或小于指定的大小作为查找条件

常用的容量单位包括kB(注意k是小写)、MB、GB 

 按文件属性查找   -user 根据文件是否属于目标用户进行查找 
 按文件类型查找 -type 

根据文件的类型进行查找

文件类型包括普通文件(f)、目录(d)、块设备文件(b)、字符设备文件(c)等 

 

参考示例

find /etc/ -name passwd               找到etc下名称为passwd的文件

 

 

 find /etc/ -name "*p"                      找到etc下以p结尾的所有文件(注意*p需要加双引号)

 

 find /etc/ -size +100k                      找到etc下大于100k的文件

 

 补充:

当你按大小查找两个文件时

dd复制一个99M到名为99的文件

dd复制一个100M到名为100的文件

当find第一次查找100M大小文件时显示了100的文件

此时给99的文件追加一个字符,并非1M

当再次find查找100M大小时,99和100同时出现

这是因为linux种的100M不是正好100M,而是99到100之间(不包括99)

同理,当你需要找1G左右的文件时,find -size 处应为1024M,

1024M代表1023M-1024M不包括1023

1G代表0G-1G不包括0G

-size 10k表示9k-10k不包括9k

-size -10k表示9k以内不包括9k

-size +10k表示10k以上不包括10k

find /etc/ -maxdepth 2 -mindepth 2             只看第二级目录

 

 

 使用find命令实现多个查找条件

个表达式之间使用逻辑运算符

-a 表示而且(and

-o 表示或者(or)

 

posted @   HuYang~  阅读(100)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示