touch 指令
语法:touch [选项]… 文件…
功能:touch命令参数可更改文档或目录的日期时间,包括存取时间和更改时间,或者新建一个不存在的文件。
常用选项:
-a 或–time=atime或–time=access或–time=use只更改存取时间。
-c 或–no-create 不建立任何文档。
-d 使用指定的日期时间,而非现在的时间。
-f 此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题。
-m 或–time=mtime或–time=modify 只更改变动时间。
-r 把指定文档或目录的日期时间,统统设成和参考文档或目录的日期时间相同。
-t 使用指定的日期时间,而非现在的时间。
touch :在当前路径下,创建一个普通文本文件。
[root@VM-4-3-centos blogtt]# pwd /root/blogtest/blogtt [root@VM-4-3-centos blogtt]# touch hello.txt [root@VM-4-3-centos blogtt]# ll total 0 -rw-r--r-- 1 root root 0 Nov 14 00:10 hello.txt
touch
也可以 指定路径 创建,如在 上级目录(相对路径) 创建一个文本文件:
[root@VM-4-3-centos lesson3]# pwd /root/lesson3 [root@VM-4-3-centos lesson3]# touch ../test.c [root@VM-4-3-centos lesson3]# cd .. [root@VM-4-3-centos ~]# pwd /root [root@VM-4-3-centos ~]# ll total 8 drwxr-xr-x 2 root root 4096 Nov 17 15:13 dir -rw-r--r-- 1 root root 0 Nov 17 15:31 file.txt drwxr-xr-x 2 root root 4096 Nov 17 15:27 lesson3 -rw-r--r-- 1 root root 0 Nov 17 15:32 test.c
使用 绝对路径 创建:
[root@VM-4-3-centos ~]# pwd /root [root@VM-4-3-centos ~]# touch /root/lesson3/abs.txt [root@VM-4-3-centos ~]# cd lesson3 [root@VM-4-3-centos lesson3]# ll total 0 -rw-r--r-- 1 root root 0 Nov 17 15:33 abs.txt -rw-r--r-- 1 root root 0 Nov 17 15:22 file.txt -rw-r--r-- 1 root root 0 Nov 17 15:18 test.c
tree 命令
tree
:使当前目录往后的文件夹和文件以树状结构呈现出来
root
账户下安装 tree
命令:
yum install -y tree
Linux 目录是树状结构,这个指令很好理解:
[root@VM-4-3-centos ~]# pwd /root [root@VM-4-3-centos ~]# tree . |-- blogtest | |-- blogtt | | |-- hello.txt | | `-- test.txt | |-- hello.txt | `-- testcd `-- testcd `-- file.txt 4 directories, 4 files
mkdir 指令
语法:mkdir [选项] dirname…
功能:在当前目录下创建一个名为 “dirname”的目录
常用选项:
p, --parents 可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录
mkdir 目录名:在 当前路径 下,创建一个目录(相当于 Windows 下的文件夹)
[root@VM-4-3-centos ~]# ll total 8 drwxr-xr-x 5 root root 4096 Nov 14 00:28 blogtest drwxr-xr-x 2 root root 4096 Nov 14 00:30 testcd [root@VM-4-3-centos ~]# mkdir helloguys [root@VM-4-3-centos ~]# ll total 12 drwxr-xr-x 5 root root 4096 Nov 14 00:28 blogtest drwxr-xr-x 2 root root 4096 Nov 14 00:42 helloguys drwxr-xr-x 2 root root 4096 Nov 14 00:30 testcd
mkdir -p dir1/dir2/dir3...
:递归创建一段路径
dir1/dir2等为目录名,名字随意。
[root@VM-4-3-centos helloguys]# pwd /root/helloguys [root@VM-4-3-centos helloguys]# mkdir -p a/b/c/d/e [root@VM-4-3-centos helloguys]# tree // tree 命令展示结果 . `-- a `-- b `-- c `-- d `-- e 5 directories, 0 files
rmdir 和 rm 指令
rmdir:
语法:rmdir [-p] [dirName]
适用对象:具有当前目录操作权限的所有使用者
功能:删除 空目录
[root@VM-4-3-centos ~]# mkdir del // 创建 del [root@VM-4-3-centos ~]# ll total 16 drwxr-xr-x 5 root root 4096 Nov 14 00:28 blogtest drwxr-xr-x 2 root root 4096 Nov 14 00:52 del drwxr-xr-x 3 root root 4096 Nov 14 00:43 helloguys drwxr-xr-x 2 root root 4096 Nov 14 00:30 testcd [root@VM-4-3-centos ~]# cd del // del 目录为空 [root@VM-4-3-centos del]# ll total 0 [root@VM-4-3-centos del]# cd .. [root@VM-4-3-centos ~]# rmdir del // 删除del [root@VM-4-3-centos ~]# ll total 12 drwxr-xr-x 5 root root 4096 Nov 14 00:28 blogtest drwxr-xr-x 3 root root 4096 Nov 14 00:43 helloguys drwxr-xr-x 2 root root 4096 Nov 14 00:30 testcd // 成功
注意 rmdir
只能删除空目录,反例演示:
// blogtest 非空 [root@VM-4-3-centos ~]# cd blogtest [root@VM-4-3-centos blogtest]# ll total 8 drwxr-xr-x 2 root root 4096 Nov 14 00:11 blogtt -rw-r--r-- 1 root root 0 Nov 13 23:08 hello.txt drwxr-xr-x 2 root root 4096 Nov 14 00:28 testcd [root@VM-4-3-centos blogtest]# cd .. [root@VM-4-3-centos ~]# rmdir blogtest rmdir: failed to remove ‘blogtest’: Directory not empty // 无法删除
rm:
语法:rm [-f-i-r-v] [dirName/dir]
适用对象:所有使用者
功能:删除文件或目录
rm 文件名
:删除文件(仅文本文件,无法删除目录)
删除文件时,会让你确定是否删除文件,确认删除为 y
,不删除为 n
。
[root@VM-4-3-centos blogtest]# ll total 8 drwxr-xr-x 2 root root 4096 Nov 14 00:11 blogtt -rw-r--r-- 1 root root 0 Nov 13 23:08 hello.txt drwxr-xr-x 2 root root 4096 Nov 14 00:28 testcd [root@VM-4-3-centos blogtest]# rm hello.txt rm: remove regular empty file ‘hello.txt’? y // y - yes,确认 [root@VM-4-3-centos blogtest]# ll total 8 drwxr-xr-x 2 root root 4096 Nov 14 00:11 blogtt drwxr-xr-x 2 root root 4096 Nov 14 00:28 testcd
rm -r 文件名
:递归删除,目录(包括 非空目录)和文件都能删除
// 非空目录 bolgtt 的删除 [root@VM-4-3-centos blogtest]# tree . |-- blogtt | |-- hello.txt | `-- test.txt |-- testcd `-- test.txt 2 directories, 3 files [root@VM-4-3-centos blogtest]# rm -r blogtt // 以下为确认过程 rm: descend into directory ‘blogtt’? y rm: remove regular empty file ‘blogtt/test.txt’? y rm: remove regular empty file ‘blogtt/hello.txt’? y rm: remove directory ‘blogtt’? y [root@VM-4-3-centos blogtest]# tree . |-- testcd `-- test.txt 1 directory, 1 file
rm -rf 文件(目录名):无视权限强制删除。
比如在 普通用户 在 root 用户的目录下创建文件,测试在权限不同的角度能否删除:
由于 root.txt 是以 sudo命令创建的,所以这个文件是被保护的,会给出提示,如果我们不想给提示,就可以用 rm -rf
进行 无视权限强制删除 。
rm -rf ./*
:删除当前目录下文件及其所有子文件
// 递归创建 [root@VM-4-3-centos blogtest]# mkdir -p a/b/c/d/e [root@VM-4-3-centos blogtest]# tree . `-- a `-- b `-- c `-- d `-- e 5 directories, 0 files [root@VM-4-3-centos blogtest]# rm -rf ./* [root@VM-4-3-centos blogtest]# tree . 0 directories, 0 files
rm -rf/
:把从根目录开始的所有文件删除,也就是删库跑路,大家可以试试,很刑的~
nano 指令
在没有学习 vim
之前,可以先用 nano
在 Linux 上编写代码。
root 账户下安装 nano:
yum install -y nano
nano
文件名:对文件进行编辑
ctrl + x 为退出,ctrl + x 后会提示是否保存,y(保存),n(不保存),c(取消),然后按下回车 enter 退出。
注:如果 nano
的文件不存在,会保存该文件。
[root@VM-4-3-centos blogtest]# ll total 0 [root@VM-4-3-centos blogtest]# nano test.c
ctrl + x 后:
选择 y 保存,按 enter 退出。
接着编译代码,并输出:
[root@VM-4-3-centos blogtest]# nano test.c [root@VM-4-3-centos blogtest]# gcc test.c [root@VM-4-3-centos blogtest]# ./a.out hello everyone![root@VM-4-3-centos blogtest]# ll total 16 -rwxr-xr-x 1 root root 8360 Nov 14 15:26 a.out -rw-r--r-- 1 root root 81 Nov 14 15:26 test.c
这里我们发现了 test.c 被创建了,还有编译产生的 a.out 文件。
简单提一下:gcc test.c
为使用 gcc 编译器对 test.c 进行编译,./a.out
是执行当前路径下的 a.out 程序。
注:使用 nano
时右侧小键盘无法使用。
clear 指令
clear
:清理屏幕
whoami 指令
whoami
:显示当前用户
root:
[root@VM-4-3-centos ~]# whoami root
普通用户:
[lx@VM-4-3-centos ~]$ whoami lx
常用键位
alt + enter
:全屏,退出全屏也是 alt + enter
tab
:智能补全
当指令忘记时,例如 mkdir
,只输入了 mk,这时快速按两次 tab
就会列出和 mk 相关的指令,并保留输入。
相当于一个查字典的热键,非常好用。
cd + tab 可以列出目录下的内容
技巧:遇到路径问题时,不断的tab看能不能tab出来,没有就说明路径写错了。
ctrl + c:处理疯狂刷屏的情况,终止程序运行
到这里,本篇博客就到此结束了。看到这里,我们也对Linux的部分基本指令有了一定的认识,大家下去可以练习一下。指令的熟练程度和熟练使用操作系统完全挂钩,还是得练。
如果觉得anduin写的还不错的话,还请一键三连!如有错误,还请指正!
我是anduin,一名C语言初学者,我们下期见!