当前位置: 首页 > article >正文

Linux--基本指令2

我们今天继续学习linux基本命令(touch、mkdir、rmdir、rm、man、cp)

touch 指令

Linux理论知识:⽂件类型的认识

语法: touch [ 选项 ]... ⽂件 ...

功能:touch命令参数可更改⽂档或⽬录的⽇期时间,包括存取时间和更改时间,或者新建⼀个不存在 的⽂件。

常⽤选项:

  • -a : change only the access time
  • -c : change only the modification time

举例:

 # 创建普通⽂件
[whb@bite-alicloud test]$ ls

dir  file.txt
[whb@bite-alicloud test]$ touch newFile.txt
[whb@bite-alicloud test]$ ls
dir  file.txt  newFile.txt

 # 查看⽂件时间 
[whb@bite-alicloud test]$ stat newFile.txt 
File: ‘newFile.txt’
 Size: 0                 Blocks: 0       IO Block: 4096   regular empty    
file
 Device: fd01h/64769d        Inode: 1844719    Links: 1 
Access: (0664/-rw-rw-r--)  Uid: ( 1003/     whb)   Gid: ( 1003/   whb) 
Access: 2023-01-11 15:06:45.832787572 +0800
Modify: 2023-01-11 15:06:45.832787572 +0800
Change: 2023-01-11 15:06:45.832787572 +0800
Birth: -

# 修改⽂件access时间     
[whb@bite-alicloud test]$ touch -a newFile.txt 
[whb@bite-alicloud test]$ stat newFile.txt 
File: ‘newFile.txt’
 Size: 0                 Blocks: 0          IO Block: 4096   regular empty 
file
Device: fd01h/64769d        Inode: 1844719     Links: 1
Access: (0664/-rw-rw-r--)  Uid: ( 1003/ whb)   Gid: ( 1003/     whb)
Access: 2023-01-11 15:07:00.062846804 +0800
Modify: 2023-01-11 15:06:45.832787572 +0800
Change: 2023-01-11 15:07:00.062846804 +0800
Birth: -
# 修改⽂件Modify时间
 
[whb@bite-alicloud test]$ touch -m newFile.txt 
[whb@bite-alicloud test]$ stat newFile.txt 
 File: ‘newFile.txt’
 Size: 0                 Blocks: 0          IO Block: 4096   regular empty 
file
Device: fd01h/64769d                 Inode: 1844719     Link: 1
Access: (0664/-rw-rw-r--)  Uid: ( 1003/     whb)   Gid: ( 1003/   whb) 
Access: 2023-01-11 15:07:00.062846804 +0800
 Modify: 2023-01-11 15:09:19.428426903 +0800
 Change: 2023-01-11 15:09:19.428426903 +0800
 Birth: -

mkdir指令

语法: mkdir [ 选项 ] dirname...

功能:在当前⽬录下创建⼀个名为“dirname”的⽬录

常⽤选项

  • -p/--parents: 可以是⼀个路径名称。此时若路径中的某些⽬录尚不存在,加上此选项后,系统将⾃ 动建⽴好那些尚不存在的⽬录,即⼀次可以建⽴多个⽬录
 # 创建普通空⽬录
[whb@bite-alicloud test]$ ls -l
total 4
drwxrwxr-x 2 whb whb 4096 Jan 11 14:22 dir-rw-rw-r-- 1 whb whb    
0 Jan 11 14:22 file.txt-rw-rw-r-- 1 whb whb    
0 Jan 11 15:09 newFile.txt
[whb@bite-alicloud test]$ mkdir mydir
[whb@bite-alicloud test]$ ls -l
total 8
drwxrwxr-x 2 whb whb 4096 Jan 11 14:22 dir-rw-rw-r-- 1 whb whb    
0 Jan 11 14:22 file.txt
drwxrwxr-x 2 whb whb 4096 Jan 11 15:15 mydir-rw-rw-r-- 1 whb whb    
0 Jan 11 15:09 newFile.txt
# 递归建⽴多个⽬录,创建指定路径
 
[whb@bite-alicloud test]$ mkdir -p path1/path2/path3/path4
[whb@bite-alicloud test]$ ls -l
total 12
drwxrwxr-x 2 whb whb 4096 Jan 11 14:22 dir-rw-rw-r-- 1 whb whb    
0 Jan 11 14:22 file.txt
drwxrwxr-x 2 whb whb 4096 Jan 11 15:15 mydir-rw-rw-r-- 1 whb whb    
0 Jan 11 15:09 newFile.txt
drwxrwxr-x 3 whb whb 4096 Jan 11 15:16 path1
[whb@bite-alicloud test]$ tree path1
path1
 └── path2 
    └── path3 
        └── path4 
# tree命令是⼀个递归以树状结构显⽰指定⽬录的命令,如果没有安装
# 如果当前⽤⼾是root: yum install -y tree (因为现在开始⽤的都是root,所以推荐这个⽤法) 
# 如果当前⽤⼾是普通⽤⼾: sudo yum install -y tree (讲完vim,⼤家才能将⾃⼰添加到系统信任列表中,暂时普通⽤⼾⽆法使⽤sudo)
  • mkdir 文件名 新建文件
  • mkdir 不允许直接新建一系列文件
  • mkdir -p允许新建一系列文件 mkdir -p ./dir1/dir2/dir3
  • rmdir 指令&&rm指令

  •  rmdir是⼀个与mkdir相对应的命令,mkdir是建⽴⽬录,⽽rmdir是删除命令
  • 语法:rmdir [-p]  [dirName]
  • 适⽤对象:具有当前⽬录操作权限的所有使⽤者
  • 功能删除空⽬录
  • 常⽤选项:
  • -p 当⼦⽬录被删除后如果⽗⽬录也变成空⽬录的话,就连带⽗⽬录⼀起删除。

举例:

# 删除空⽬录 
[whb@bite-alicloud test]$ ll
total 12
drwxrwxr-x 2 whb whb 4096 Jan 11 14:22 dir
-rw-rw-r-- 1 whb whb    0 Jan 11 14:22 file.txt
drwxrwxr-x 2 whb whb 4096 Jan 11 15:15 mydir
-rw-rw-r-- 1 whb whb    0 Jan 11 15:09 newFile.txt
drwxrwxr-x 3 whb whb 4096 Jan 11 15:16 path1
[whb@bite-alicloud test]$ tree mydir/
mydir/

0 directories, 0 files
[whb@bite-alicloud test]$ rmdir mydir
[whb@bite-alicloud test]$ ll
total 8
drwxrwxr-x 2 whb whb 4096 Jan 11 14:22 dir
-rw-rw-r-- 1 whb whb    0 Jan 11 14:22 file.txt
-rw-rw-r-- 1 whb whb    0 Jan 11 15:09 newFile.txt
 drwxrwxr-x 3 whb whb 4096 Jan 11 15:16 path1

# 删除路径
[whb@bite-alicloud test]$ tree path1
 path1
 └── path2 
    └── path3 
        └── path4 
3 directories, 0 files
[whb@bite-alicloud test]$ rmdir -p path1/path2/path3/path4
[whb@bite-alicloud test]$ ll
total 4
drwxrwxr-x 2 whb whb 4096 Jan 11 14:22 dir
-rw-rw-r-- 1 whb whb    0 Jan 11 14:22 file.txt
-rw-rw-r-- 1 whb whb    0 Jan 11 15:09 newFile.txt

# 指定路径中有不为空的路径,便⽆法删除
[whb@bite-alicloud test]$ rmdir -p path1/path2/path3
rmdir: failed to remove ‘path1/path2/path3’: Directory not empty

[whb@bite-alicloud test]$ touch path1/myfile.txt
[whb@bite-alicloud test]$ touch path1/path2/myfile.txt
[whb@bite-alicloud test]$ tree path1/
 path1/
     ├── myfile.txt 
        └── path2 
            ├── myfile.txt 
            └── path3 
                └── path4 
3 directories, 2 files
[whb@bite-alicloud test]$ rmdir -p path1/path2/path3/path4
rmdir: failed to remove directory ‘path1/path2’: Directory not empty

rm命令可以同时删除⽂件或⽬录

语法: rm [-f-i-r-v] [dirName/dir]

适⽤对象:所有使⽤者

功能:删除⽂件或⽬录

常⽤选项:

  • -f 即使⽂件属性为只读(即写保护),亦直接删除
  • -i 删除前逐⼀询问确认
  • -r 删除⽬录及其下所有⽂件

rm -r 递归删除非空目录 (一直询问是否删除)

rm -rf 递归并强制删除非空目录(不会一直询问是否删除) !!!此命令可以删除/家目录根目录(可能不会删除干净,但大概率系统会崩溃,linux没有恢复机制)

rm -rf / 是一个非常危险的操作,它会递归删除根目录 / 下的所有文件和目录,导致系统崩溃并无法恢复。

* 通配符 可以匹配任何内容

举例:

 # 
删除普通⽂件
 
[whb@bite-alicloud test]$ ll
 total 8
 drwxrwxr-x 2 whb whb 4096 Jan 11 14:22 dir
-rw-rw-r-- 1 whb whb    0 Jan 11 14:22 file.txt
-rw-rw-r-- 1 whb whb     0 Jan 11 15:09 newFile.txt
drwxrwxr-x 3 whb whb 4096 Jan 11 15:26 path1
[whb@bite-alicloud test ]$ rm file.txt 
[whb@bite-alicloud test]$ ll
total 8
drwxrwxr-x 2 whb whb 4096 Jan 11 14:22 dir
-rw-rw-r-- 1 whb whb    0 Jan 11 15:09 newFile.txt
drwxrwxr-x 3 whb whb 4096 Jan 11 15:26 path1
# 删除⽬录⽂件
 
[whb@bite-alicloud test]$ ll
total 8
drwxrwxr-x 2 whb whb 4096 Jan 11 14:22 dir
-rw-rw-r-- 1 whb whb    0 Jan 11 15:09 newFile.txt
drwxrwxr-x 3 whb whb 4096 Jan 11 15:26 path1
[whb@bite-alicloud test]$ rm dir
rm: cannot remove ‘dir’: Is a directory
[whb@bite-alicloud test]$ rm -r dir
[whb@bite-alicloud test]$ ll
total 4
-rw-rw-r-- 1 whb whb    0 Jan 11 15:09 newFile.txt
drwxrwxr-x 3 whb whb 4096 Jan 11 15:26 path1

 # 删除普通⽂件前询问
[whb@bite-alicloud test]$ ll
total 4
-rw-rw-r-- 1 whb whb    0 Jan 11 15:09 newFile.txt
drwxrwxr-x 3 whb whb 4096 Jan 11 15:26 path1
[whb@bite-alicloud  test]$ rm-i newFile.txt 
rm: remove regular empty file ‘newFile.txt’? y
[whb@bite-alicloud test]$ ll
total 4
drwxrwxr-x 3 whb whb 4096 Jan 11 15:26 path1
[whb@bite-alicloud test]$ ll
total 4
drwxrwxr-x 3 whb whb 4096 Jan 11 15:26 path1

# 删除⽬录前询问
[whb@bite-alicloud test]$ mkdir -p d/d/d/d
 [whb@bite-alicloud test]$ tree d
 d
 └── d 
    └── d 
        └── d 
 3 directories, 0 files
 [whb@bite-alicloud test]$ rm -ri d
 rm: descend into directory ‘d’? y
 rm: descend into directory ‘d/d’? y
 rm: descend into directory ‘d/d/d’? y
 rm: remove directory ‘d/d/d/d’? y
 rm: remove directory ‘d/d/d’? y
 rm: remove directory ‘d/d’? y
 rm: remove directory ‘d’? y
 [whb@bite-alicloud test]$ ll
 total 0

# 递归强制删除⾮空⽬录
[whb@bite-alicloud test]$ tree path1/
 path1/
 ├── myfile.txt 
    └── path2 
        └── myfile.txt
 1  directory, 2 files
 [whb@bite-alicloud test]$ rm -f path1
 rm: cannot remove ‘path1’: Is a directory
 [whb@bite-alicloud test]$ rm -rf path1
 [whb@bite-alicloud test]$ ll
 total 0
 

man指令

命令 Linux的命令有很多参数,我们不可能全记住,可以通过查看联机⼿册获取帮助

语法:man [ 选项 ] 命令

常用选项:

  • -k根据关键字搜索联机帮助
  •  num只在第num章节查找
  • -a 将所有章节的都显⽰出来,⽐如manprintf它缺省从第⼀章开始搜索,知道就停⽌,⽤a选 项,当按下q退出,他会继续往后⾯搜索,直到所有章节都搜索完毕

解释⼀下:man⼿册分为9章(不同系统可能会有差别)

  •  1是普通的命令 
  • 2是系统调⽤,如open,write之类的(通过这个,⾄少可以很⽅便的查到调⽤这个函数,需要加什么 头⽂件) 
  • 3是库函数,如printf,fread4是特殊⽂件,也就是/dev下的各种设备⽂件 
  • 4略
  • 5是指⽂件的格式,⽐如passwd,就会说明这个⽂件中各个字段的含义
  • 6是给游戏留的,由各个游戏⾃⼰定义
  • 7是附件还有⼀些变量,⽐如像environ这种全局变量在这⾥就有说明
  • 8是系统管理⽤的命令,这些命令只能由root使⽤,如ifconfig
  • 9略

举例:

[whb@bite-alicloud test]$ man printf    # 查看printf指令(没错,printf也是⼀个指令) 
[whb@bite-alicloud test]$ man fork      # 查看系统调⽤,默认没有这个指令,man就⾃动去2号⼿册查找 
[whb@bite-alicloud test]$ man 2 frok    # 查看系统调⽤
 
[whb@bite-alicloud test]$ man 3 printf  # 查看C库函数
 
[whb@bite-alicloud test]$ man 7 signal  # 查看变量
 
[whb@bite-alicloud test]$ man 7 environ
[whb@bite-alicloud test]$ man man       #查看手册自己  

cp指令

语法: cp [ 选项 ] 源⽂件或⽬录 ⽬标⽂件或⽬录

功能:  复制⽂件或⽬录

说明:

  • cp指令⽤于复制⽂件或⽬录
  • 如同时指定两个以上的⽂件或⽬录,且最后的⽬的地是⼀个已经存在的⽬录,则它会把前⾯指定 的所有⽂件或⽬录复制到此⽬录中

常用选项

  • -f 或 --force强⾏复制⽂件或⽬录,不论⽬的⽂件或⽬录是否已经存在
  • -i或--interactive 覆盖⽂件之前先询问⽤⼾
  • -r递归处理,将指定⽬录下的⽂件与⼦⽬录⼀并处理。若源⽂件或⽬录的形态,不属于⽬录或符 号链接,则⼀律视为普通⽂件处理
# cp普通⽂件
 
[whb@bite-alicloud test]$ echo "你好">myfile.txt
[whb@bite-alicloud test]$ cat myfile.txt 
你好
[whb@bite-alicloud test]$ ll
total 4
-rw-rw-r-- 1 whb whb 22 Jan 11 15:47 myfile.txt
[whb@bite-alicloud test]$ cp myfile.txt myfile-backup.txt
[whb@bite-alicloud test]$ ll
total 8
-rw-rw-r-- 1 whb whb 22 Jan 11 15:47 myfile-backup.txt
-rw-rw-r-- 1 whb whb 22 Jan 11 15:47 myfile.txt
[whb@bite-alicloud test]$ cat myfile-backup.txt 
你好

#将多个⽂件拷⻉到指定路径下
[whb@bite-alicloud test]$ ll
total 8
-rw-rw-r-- 1 whb whb 22 Jan 11 15:47 myfile-backup.txt
-rw-rw-r-- 1 whb whb 22 Jan 11 15:47 myfile.txt
[whb@bite-alicloud test]$ mkdir dir
[whb@bite-alicloud test]$ ll
total 12
drwxrwxr-x 2 whb whb 4096 Jan 11 15:48 dir
-rw-rw-r-- 1 whb whb   22 Jan 11 15:47 myfile-backup.txt
-rw-rw-r-- 1 whb whb   22 Jan 11 15:47 myfile.txt
[whb@bite-alicloud test]$ cp *.txt dir  # *表⽰通配符,匹配所有.txt结尾的⽂件名
[whb@bite-alicloud test]$ ll
total 12
drwxrwxr-x 2 whb whb 4096 Jan 11 15:48 dir
-rw-rw-r-- 1 whb whb   22 Jan 11 15:47 myfile-backup.txt
-rw-rw-r-- 1 whb whb   22 Jan 11 15:47 myfile.txt
[whb@bite-alicloud test]$ tree dir
 dir
 ├── myfile-backup.txt 
    └── myfile.txt 
# cp
如果⽬标⽂件存在,就覆盖
 
[whb@bite-alicloud test]$ echo "hello bite tech" > myfile.txt
[whb@bite-alicloud test]$ cat myfile.txt 
hello bite tech
[whb@bite-alicloud test]$ cp myfile.txt myfile-backup.txt 
[whb@bite-alicloud test]$ cat myfile-backup.txt 
hello bite tech

# 拷⻉前询问
[whb@bite-alicloud test]$ cp -i myfile.txt myfile-backup.txt 
cp: overwrite ‘myfile-backup.txt’? y

 # 递归强制拷⻉整个⽬录 
[whb@bite-alicloud ~]$ tree test
 test
├── dir 
│   ├── myfile-backup.txt 
│   └── myfile.txt 
├── myfile-backup.txt 
└── myfile.txt 
1 directory, 4 files
 [whb@bite-alicloud ~]$ cp -rf test test-backup
 [whb@bite-alicloud ~]$ tree test-backup
 test-backup
├── dir 
│   ├── myfile-backup.txt 
│   └── myfile.txt 
├── myfile-backup.txt
└── myfile.txt 

1 directory, 4 files

补充知识:

Linux热键

Tab:快速双击,可以进行补齐(命令补齐/路径补齐)

什么都不输入的话,可以显示所有命令

Ctrl+C 失控状态,直接Ctrl+C终止当前进程

少年没有乌托邦,心向远方自明朗!

如果这个博客对你有帮助,给博主一个免费的点赞就是最大的帮助
欢迎各位点赞,收藏关注
如果有疑问或有不同见解,欢迎在评论区留言
后续会继续更新大连理工大学相关课程和有关Linux的内容和示例
点赞加关注,学习不迷路,好,本次的学习就到这里啦!!!


http://www.kler.cn/a/568665.html

相关文章:

  • 嵌入式开发工程师笔试面试指南-数电基础
  • Vue框架的使用 搭建打包 Vue的安全问题(Xss,源码泄露)
  • postgresql源码学习(60)—— VFD的作用及机制
  • 蓝桥杯备考:DFS之记忆化搜索
  • Spring单例模式 Spring 中的单例 饿汉式加载 懒汉式加载
  • SyntaxError: positional argument follows keyword argument
  • 使用【华为手机】给吉利车机升级安装第三方软件教程【保姆级教程】
  • Nacos 配置共享文件 如何在Nacos配置共享文件
  • 如何编写一个基本的 Makefile
  • 【Docker】使用Docker搭建-MySQL数据库服务
  • 基于PythonPython面向复杂场景的高质量图像合成方法研究
  • 【数据结构】LRUCache|并查集
  • 钉钉小程序(企业内部应用)开发下载预览文件
  • Nginx负载均衡策略详解:从轮询到智能分发,打造高可用服务架构
  • 专题一四数之和
  • 蓝桥杯刷题周计划(第一周)
  • 文献分享: Muvera多向量到单向量的转化方法——原理与理论保证
  • P8637 [蓝桥杯 2016 省 B] 交换瓶子
  • Element Plus使用(五)
  • Windows本地Docker+Open-WebUI部署DeepSeek