【Linux】常用指令详解二

前言

介绍一些Linux常用命令,本文为文章【Linux】常用指令详解一的续作

1.绝对路径与相对路径

绝对路径:从系统根目录开始,可以完整描述文件或目录的路径。使用绝对路径可以准确定位到系统中的某个文件或目录。

相对路径:相对与当前目录的路径,不以根目录开头。需要来回切换临近路径时,相对路径的优势明显。

常见的相对路径表示

  • . :当前

  • ... :上一级目录

  • ./test.c:当前目录下的test.c文件

  • .../test.c:上一级目录下的test.c文件

  • subdir/:当前目录下的subdir子目录

  • .../subdir/:上一级目录下的subdir子目录

  • subdir/text.txt:当前目录下的subdir子目录下的text.txt文件

  • .../.../:向上导航两级目录

2.快捷键

tab 快速点击两次 命令or 路径补齐
ctrl+c 失控终止
man 搜索手册

安装man手册:

Objective-C++ 复制代码
yum install -y man-pages 

新建文件

Objective-C++ 复制代码
touch test.c

nano Linux环境下的记事本

打开文件并写入

Objective-C++ 复制代码
nano test.c

ctrl+X→回车,保存并退出后,查看文件内容

Objective-C++ 复制代码
cat test.c

3.ls命令

ls命令用于列出目录内容

Objective-C++ 复制代码
ls -lh 以人类可读形式显示文件大小
ls -R递归列出子目录及其内容

ls -l与ls -lh的区别

ls -R

4.cd命令

cd命令用于切换工作目录

  • 绝对路径,切换到指定路径

cd/lesson/text.txt

  • 相对路径

cd lesson:进入当前目录下的lesson目录

cd ... /lesson1 :返回上一级目录后进入lesson1目录

5.cp 拷贝文件or拷贝目录

拷贝文件

Objective-C++ 复制代码
cp 源文件 目标文件

拷贝目录

Objective-C++ 复制代码
cp -r 源目录 目标目录

常用的选项

6.cat命令

链接和显示文件内容

链接和显示文件内容

Objective-C++ 复制代码
cat file1 显示文件内容
cat file1 file2 合并 并 显示多个文件内容

这里用了cat 命令查看文件内容 检验cp命令是否成功

7.touch命令

touch 命令除了可新建文件还可更新文件的时间

PowerShell 复制代码
touch existingfile.txt

这将把existingfile.txt的修改时间和访问时间更新为当前时间。

当文件已经存在时,touch命令可以更新文件的时间戳。文件有三个主要的时间戳:

  • 访问时间(atime):文件最后一次被访问的时间。

  • 修改时间(mtime):文件内容最后一次被修改的时间。

  • 状态更改时间(ctime):文件的元数据(如权限、所有者等)最后一次被修改的时间。

touch命令主要更新文件的修改时间(mtime)和访问时间(atime)。

常用选项表


修改为指定时间

还可以使用touch命令将文件的时间戳修改为指定的时间。例如,将文件的时间戳修改为 2025 年 1 月 1 日 12:00:00,可以使用以下命令:

PowerShell 复制代码
touch -t 202501011200.00 existingfile.txt

这里,-t选项后面的时间戳格式为 [[CC]YY]MMDDhhmm[.ss],其中:

  • CC 表示世纪(可省略)

  • YY 表示年份

  • MM 表示月份

  • DD 表示天

  • hh 表示小时

  • mm 表示分钟

  • ss 表示秒

仅修改访问时间

更新文件的访问时间而不更新修改时间,可以使用-a选项:

PowerShell 复制代码
touch -a existingfile.txt

仅修改修改时间

更新文件的修改时间而不更新访问时间,可以使用-m选项:

PowerShell 复制代码
touch -m existingfile.txt

使用参考文件的时间戳

使用-r选项将一个文件的时间戳设置为另一个文件的时间戳。例如,将file1.txt的时间戳设置为file2.txt的时间戳:

PowerShell 复制代码
touch -r file2.txt file1.txt

用ls -l 命令可查看文件时间信息

Jan 12 15:18就是文件的修改时间。

8.mv命令

PowerShell 复制代码
mv oldname newnanme 重命名目录或文件
mv file new/directory 移动文件到新目录

移动文件到新目录,file是文件或目录名, new/directory是目标目录

mv命令的基本语法是 mv [源文件或目录] [目标目录]

如果file是文件,new/directory是目标目录,确保new/directory存在,否则会将file重命名为new/directory

如果new/directory目录不存在,你可以先创建目录,再移动文件

PowerShell 复制代码
mkdir -p new/directory
mv example.txt new/directory

常用选项

重命名

主目录下的目录class重命名为lesson

移动

主目录下文件test.和test.c移动到目录lesson中

使用相对路径 ./lesson

9.tail命令

显示文件的最后几行

Objective-C++ 复制代码
tail file 系统就会默认显示该文件的最后十行内容
tail -n 20 file 显示文件最后二十行
tail -f logfile 实时刷新并显示日志文件的新增内容

常用选项

tail -f logfile 实时刷新并显示日志文件的新增内容

假设你有一个日志文件app.log,应用程序在不断地向这个文件中写入日志信息。执行tail -f app.log命令后,终端会显示app.log文件的末尾部分内容,并且会实时监控文件的变化。一旦有新的日志信息被写入app.log文件,这些新增内容会立即显示在终端上。

例如,当应用程序产生新的日志:[2024 - 10 - 01 12:00:00] INFO: New user logged in,这个新增的日志行会立刻显示在执行了tail -f app.log命令的终端中,方便运维人员实时监控应用程序的运行状态和错误信息。若要停止实时监控,可按下Ctrl + C组合键。

10.head命令

显示文件的前几行。

Objective-C++ 复制代码
head file 显示文件的前10行
head -n 20 file 显示文件的前20行
head -c 显示前几字节

11.grep命令

搜索文本中的模式

Objective-C++ 复制代码
grep "pattern" file 在文件中搜索包含特式模式的行
grep -r "pattern" directory 在目录中搜索包含特式模式的行
grep -i "pattern" file 忽略大小写索包含特式模式的行

常用选项

grep "pattern" file 在文件中搜索包含特定模式的行

假设你有一个名为example.txt的文件,内容如下:

PowerShell 复制代码
apple is a fruit
banana is a fruit too
cherry is delicious
kiwi is a healthy fruit

如果你想在example.txt中搜索包含 "fruit" 的行,在终端执行:

Objective-C++ 复制代码
grep "fruit" example.txt

输出结果为:

Objective-C++ 复制代码
apple is a fruit
banana is a fruit too
kiwi is a healthy fruit

grep -r "pattern" directory 在目录中搜索包含特定模式的行

设你有一个名为documents的目录,其结构如下:

Objective-C++ 复制代码
documents/
├── file1.txt
├── file2.txt
└── subdir
    └── file3.txt

其中file1.txt的内容是:

Objective-C++ 复制代码
This is the first file.
It contains some text about cats.

file2.txt的内容是:

Objective-C++ 复制代码
The second file has information about dogs.
Dogs are great pets.

subdir/file3.txt的内容是:

Objective-C++ 复制代码
This is a file in subdirectory.
It talks about birds.

如果你想在documents目录及其子目录下所有文件中搜索包含 "animals" 相关的内容,执行:

Objective-C++ 复制代码
grep -r "animal" documents

因为这些文件中并没有 "animal" 这个词,所以没有输出。若搜索 "dogs",则会输出:

Objective-C++ 复制代码
documents/file2.txt:The second file has information about dogs.
documents/file2.txt:Dogs are great pets.

grep -i "pattern" file 忽略大小写搜索包含特定模式的行

还是以example.txt文件为例,内容如下:

Objective-C++ 复制代码
Apple is a Fruit
banana is a fruit too
CHERRY is delicious
Kiwi is a healthy fruit

如果你想搜索包含 "fruit" 的行,不区分大小写,执行:

Objective-C++ 复制代码
grep -i "fruit" example.txt

输出结果为:

Objective-C++ 复制代码
Apple is a Fruit
banana is a fruit too
Kiwi is a healthy fruit

这样即使单词的大小写不同,只要包含 "fruit" 这个模式,该行就会被匹配出来。

12.find命令

搜索文件和目录

PowerShell 复制代码
find /path -name "filename" 在目录中搜索指定文件名
find /path -type d -name "directoryname" 搜索特定名称目录
find /path -mtime -2 搜索最近两天内修改的文件

常用选项

  1. find /path -name "filename" 在目录中搜索指定文件名
  • 假设你有一个目录/home/user/documents,其中有多个文件,包括report.txtnotes.pdfimage.jpg等。如果你想查找名为report.txt的文件,可以使用以下命令:
PowerShell 复制代码
find /home/user/documents -name "report.txt"
复制代码
执行后,如果`report.txt`存在于该目录或其子目录中,就会显示其路径。例如,如果`report.txt`在`/home/user/documents`目录下,输出`/home/user/documents/report.txt`。
  1. find /path -type d -name "directoryname" 搜索特定名称目录
  • 例如,在/home/user目录下有多个子目录,如musicvideosprojects等。如果你想查找名为projects的目录,可以这样操作:
PowerShell 复制代码
find /home/user -type d -name "projects"

projects目录存在,输出/home/user/projects

  1. find /path -mtime -2 搜索最近两天内修改的文件
  • 假设/var/log目录下有很多日志文件,你想找出最近两天内修改过的日志文件,可以执行:
PowerShell 复制代码
find /var/log -mtime -2

执行后,会列出/var/log目录及其子目录下所有在最近两天内被修改过的文件及其路径。例如,输出/var/log/auth.log/var/log/syslog等(如果这些文件在最近两天内被修改过)。

相关推荐
vin_zheng13 分钟前
破解企业安全软件网络拦截实战记录
运维
林姜泽樾2 小时前
Linux入门第十二章,创建用户、用户组、主组附加组等相关知识详解
linux·运维·服务器·centos
xiaokangzhe2 小时前
Linux系统安全
linux·运维·系统安全
feng一样的男子2 小时前
NFS 扩展属性 (xattr) 提示操作不支持解决方案
linux·go
南棱笑笑生2 小时前
20260310在瑞芯微原厂RK3576的Android14查看系统休眠时间
服务器·网络·数据库·rockchip
xiaokangzhe2 小时前
Nginx核心功能
运维·nginx
松果1773 小时前
以本地时钟为源的时间服务器
运维·chrony·时间服务器
XDHCOM3 小时前
ORA-32152报错咋整啊,数据库操作遇到null number问题远程帮忙修复
服务器·数据库·oracle
Highcharts.js3 小时前
Highcharts React v4.2.1 正式发布:更自然的React开发体验,更清晰的数据处理
linux·运维·javascript·ubuntu·react.js·数据可视化·highcharts
ayaya_mana3 小时前
快速安装Nginx-UI:让Nginx管理可视化的高效方案
运维·nginx·ui