首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >【Linux】常用指令

【Linux】常用指令

原创
作者头像
池央
发布2025-01-20 14:18:50
发布2025-01-20 14:18:50
1.2K0
举报

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
image.png
image.png

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

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

3.ls命令

ls命令用于列出目录内容

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

ls -l与ls -lh的区别

image.png
image.png

ls -R

image.png
image.png

4.cd命令

cd命令用于切换工作目录

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

cd/lesson/text.txt

  • 相对路径

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

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

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

拷贝文件

代码语言:Objective-C++
复制
cp 源文件 目标文件
image.png
image.png

拷贝目录

代码语言:Objective-C++
复制
cp -r 源目录 目标目录
image.png
image.png

常用的选项

image.png
image.png

6.cat命令

链接和显示文件内容

代码语言:Objective-C++
复制
cat file1 显示文件内容
cat file1 file2 合并 并 显示多个文件内容
image.png
image.png
image.png
image.png

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

7.touch命令

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

代码语言:PowerShell
复制
touch existingfile.txt

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

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

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

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

常用选项表

image.png
image.png

修改为指定时间

还可以使用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 命令可查看文件时间信息

image.png
image.png

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

常用选项

image.png
image.png

重命名

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

image.png
image.png

移动

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

使用相对路径 ./lesson

image.png
image.png

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 搜索最近两天内修改的文件

常用选项

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.绝对路径与相对路径
    • 常见的相对路径表示
  • 2.快捷键
  • 3.ls命令
  • 4.cd命令
  • 5.cp 拷贝文件or拷贝目录
  • 6.cat命令
  • 7.touch命令
  • 8.mv命令
  • 9.tail命令
  • 10.head命令
  • 11.grep命令
  • 12.find命令
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档