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

举例:

bash 复制代码
 # 创建普通⽂件
[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: 可以是⼀个路径名称。此时若路径中的某些⽬录尚不存在,加上此选项后,系统将⾃ 动建⽴好那些尚不存在的⽬录,即⼀次可以建⽴多个⽬录
bash 复制代码
 # 创建普通空⽬录
[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 当⼦⽬录被删除后如果⽗⽬录也变成空⽬录的话,就连带⽗⽬录⼀起删除。

举例:

bash 复制代码
# 删除空⽬录 
[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没有恢复机制)

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

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

举例:

bash 复制代码
 # 
删除普通⽂件
 
[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略

举例:

bash 复制代码
[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递归处理,将指定⽬录下的⽂件与⼦⽬录⼀并处理。若源⽂件或⽬录的形态,不属于⽬录或符 号链接,则⼀律视为普通⽂件处理
bash 复制代码
# 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 的内容和示例

点赞加关注,学习不迷路,好,本次的学习就到这里啦!!!

相关推荐
maosheng11463 小时前
RHCSA的第一次作业
linux·运维·服务器
wifi chicken4 小时前
Linux 端口扫描及拓展
linux·端口扫描·网络攻击
旺仔.2914 小时前
Linux 信号详解
linux·运维·网络
放飞梦想C4 小时前
CPU Cache
linux·cache
Hoshino.415 小时前
基于Linux中的数据库操作——下载与安装(1)
linux·运维·数据库
恒创科技HK6 小时前
通用型云服务器与计算型云服务器:您真正需要哪些配置?
运维·服务器
吴佳浩 Alben6 小时前
GPU 生产环境实践:硬件拓扑、显存管理与完整运维体系
运维·人工智能·pytorch·语言模型·transformer·vllm
播播资源7 小时前
CentOS系统 + 宝塔面板 部署 OpenClaw源码开发版完整教程
linux·运维·centos
源远流长jerry7 小时前
在 Ubuntu 22.04 上配置 Soft-RoCE 并运行 RDMA 测试程序
linux·服务器·网络·tcp/ip·ubuntu·架构·ip
学不完的7 小时前
Docker数据卷管理及优化
运维·docker·容器·eureka