Linux命令
一、命令的分类:
Linux命令分为内部命令和外部命令
-
内部命令:shell自带命令,没有独立的系统文件;会随着shell自动加载到内存,可以直接使用
-
外部命令:每个命令都有对应的系统文件,需要让shell知道文件位置才能自动加载
注:外部命令需要将文件放入到PATH环境变量指定的目录中
判断命令是内部命令还是外部命令使用 “type <命令字>”
[root@xy-1 ~]# type cd
cd 是 shell 内嵌 ##内部命令
[root@xy-1 ~]# type touch
touch 是 /usr/bin/touch ##外部命令
二、shell程序
命令行是基于文本的接口,可用于向计算机系统输入指令。 Linux命令行由shell提供。
作用:作为“翻译官”,接收用户输入的命令,并将命令翻译成计算机语言,传递给内核执行调用相关硬件资源
shell命令格式:<命令> <选项> <参数>
shell命令行,通过空格分隔,包涵三个部分:
-
命令,第一部分必须是命令,代表要执行的程序,其后可能跟着选项或参数。
-
选项,调整命令的行为或作用。通常以一个或两个-符号开头。
-
参数,典型的参数是命令的目标,命令后面可能接多个参数。
短格式: -<单字符> -a -l -h ##多个短格式选项可以组合再一起使用
长格式: --<单词> --help
三、命令拓展
1、路径
绝对路径 :以根(/)开头的路径,用于指定文件的确切位置。
相对路径 :不是以根(/)开头的路径,用于指定文件相对当前工作目录的路径。
路径格式:
绝对路径:
/usr/local/bin/cfssl ##根目录下user目录下local目录下bin目录下的cfssl文件/目录
相对路径:
./test ##代表的是以 当前目录 为起点的 test文件/目录
../test ##代表的是以 上一层目录 为起点的 test文件/目录
~/test ##代表的是以 当前用户的家目录 为起点的 test文件/目录
~<user>/test ##代表的是 以指定用户的家目录 为起点的 test文件/目录
2、软连接与硬链接
连接类型:硬链接、软连接
-
硬链接:硬连接是一个文件的新记录,连接到文件系统中存在的文件。默认情况,文件系统中每一个文件只有一个硬连接。为了节约空间,一个新的硬连接关联相同的文件,而非复制。所有硬连接指向相同文件,具有相同的权限,连接数,所属权限,时间戳,文件内容。如果其中一个硬连接有变化,其他硬连接也会跟着变化。
-
软连接:其实就是新建立一个文件,这个文件就是专门用来指向别的文件的(那就和windows下的快捷方式的那个文件有很接近的意味)
文件类型 | 软连接 | 硬链接 |
---|---|---|
删除源文件后 | 失效 | 任然可以使用 |
使用范围 | 文件或目录 | 仅适用于文件 |
保存位置 | 与源文件可在不同的文件系统中 | 必须与源文件在用一个文件系统中 |
与源文件关系 | 相当于快捷方式 | 相当于给文件起一个别名 |
inode号码 | 不同 | 相同 |
连接格式:
软连接:
ln -s <源文件路径> <目的路径>
* ln -s /root/test/ubuntu-22.04.4-desktop-amd64.iso /root/test1/ubuntu
硬链接:
ln <源文件路径> <目的路径>
* ln /root/test/cn_windows_10_business_editions_version_1909_x64_dvd_0ca83907.iso /root/test1/Windows
连接源文件路径建议写绝对路径
硬连接不能跨文件系统(分区)。目录不能创建硬连接。
3、通配符
字符 | 含义 |
---|---|
* | 表示任意长度的任意字符 |
? | 表示有且只有一个任意字符 |
[xyz…] | 位于两个方括号之间中的任何一个字符 |
[!xyz…] | 不在括起的类中的任何一个字符。 |
4、文件属性
使用 “ls -l” 命令显示的文件/目录属性可以分为7个字段:
[root@xy-1 test]# ls -l
总用量 21270376
-rw-r--r--. 1 root root 4746903552 4月 10 16:08 CentOS-7-x86_64-DVD-2207-02.iso
-rw-r--r--. 2 root root 5275090944 4月 10 16:11 cn_windows_10_business_editions_version_1909_x64_dvd_0ca83907.iso
-rw-r--r--. 1 root root 5017356288 4月 10 16:02 ubuntu-22.04.4-desktop-amd64.iso
drwxr-xr-x. 2 root root 6 4月 10 18:44 uer
-rw-r--r--. 1 root root 6741510144 4月 10 16:16 zh-cn_windows_11_business_editions_version_23h2_updated_feb_2024_x64_dvd_27c4907d.iso
字段 | 信息 |
---|---|
-rw-r–r– | 文件类型与文件权限 |
1 | 文件硬链接数/目录的子目录数 |
root | 属主(属于哪个用户) |
root | 属组(属于哪个用户组) |
4746903552 | 文件大小 |
4月 10 16:08 | 最近一次修改文件时间 |
CentOS-7-x86_64-DVD-2207-02.iso | 文件名 |
首段字符 “-rw-r–r–” ,按照含义可以按照 1-3-3-3 分段
第一位代表文件类型:“-”代表普通文件;“d”代表目录;“l”代表软连接;“c”代表设备文件
第2至4位代表所属者;第5至7位代表所属组;第8至10位代表任意用户。
字符 | 含义 |
---|---|
r | (read)读取 |
w | (write)写入 |
x | (execute)执行 |
四、基本命令
1、访问查看命令
命令 | 用途 |
---|---|
pwd | 显示出当前/活动目录的名称 |
cd | 切换目录 |
ls | 列目录内容 |
du | 磁盘空间使用情况 |
-
pwd
[root@xy-1 a2]# pwd /root/test1/a2 ##当前所在位置为root目录下test1目录下a2目录
-
cd
cd <目的路径> ##切换当前路径到目的路径 cd - ##返回之前所在的目录 cd ~ ##切换到用户家目录
-
ls
常用参数ls -l ##以长格式的形式显示文件/子目录的属性 ls -a/-A ##显示目录中所有的隐藏文件,-A不显示 . 和 .. ls -h ##以人性化的方式显示文件/子目录大小(默认单位为字节) ls -d ##查看目录本身 ls -R ##以递归的方式显示目录中所有子目录的内容 ls -t ##以时间排序显示,默认从最新到最老的方式 ls -r ##反向排序 ls -i ##显示文件/目录的 inode 号
-
du
常用参数du -a ##统计目录及其所有子目录和文件的占用大小 du -s ##仅统计目录本身的占用大小,不能和 -a 选项同时使用 du -h ##以人性化的方式显示占用大小(默认单位为KB) du -d 1 ##仅统计目录中的第一层子目录的占用大小 ## du -d 1 = du --max-depth=1
2、目录、文件管理命令
命令 | 用途 |
---|---|
mkdir | 建立空目录 |
touch | 创建空文件,更新文件时间 |
cp | 复制文件和目录 |
rm | 删除文件或者目录 |
mv | 移动 (改名) 文件 |
-
mkdir
常用参数mkdir <目录> ##创建空目录 mkdir -p <目录> <目录> ##同时创建多个目录
-
touch
常用参数touch -a ##更改access time touch -m ##更改modify time touch -c ##如果文件不存在,不创建文件 touch -d ##通过字符串指定的时间更新时间戳
-
cp
常用参数cp <file1> <file2> ##复制一个文件到当前目录 cp <file1> <file2> <dir> ##复制多个文件到目的目录 cp -r <dir1> <dir2> ##复制一个目录到当前目录 cp -r <dir1> <dir2> <dir> ##复制多个目录到目的目录
注意:当复制多个文件或目录时,目标路径必须是已存在的目录
-
rm
常用参数rm <file> ##删除单个文件 rm -f <file1> <file2> ##删除多个文件 rm -r <dir> ##删除单个目录 rm -rf <dir1> <dir2> ##删除多个目录
-
mv
常用参数mv <file1> <file2> ##移动单个文件到新文件 mv <file1> <file2> <dir> ##移动多个文件到新目录 mv <dir1> <dir2> ##移动目录到新目录 mv <dir1> <dir2> <dir> ##移动多个目录到新目录
3.查找目录&文件命令
命令 | 用途 |
---|---|
find | 查找文件或目录 |
which | 查找文件或目录 |
-
find
常用参数find -name "文件名" ##查找指定名称的文件,可以使用通配符 find -type f|d ##按照文件类型查找文件 find -size +XY ##按照文件大小查找文件 find -user "用户名" ##按照所属用户查找文件
此文仅为个人理解,请各位点评