主页 > 软件开发  > 

Linux--基本指令2

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使⽤,如ifconfig9略

举例:

[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的内容和示例 点赞加关注,学习不迷路,好,本次的学习就到这里啦!!!

标签:

Linux--基本指令2由讯客互联软件开发栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“Linux--基本指令2