Linux | 创建 | 删除 | 查看 | 基本命名详解(二)

简介: Linux | 创建 | 删除 | 查看 | 基本命名详解(二)

Linux | 创建 | 删除 | 查看 | 基本命名详解(一):https://developer.aliyun.com/article/1426907

六、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 简单来说就是创建文件,单不能创建目录,创建目录有创建目录的命令,不能搞混了~~
touch 文件名

  • 这里没有什么可说的就是简单的创建文件,但是我在这里补充一个命令,我想查看这个文件的详细属性,怎么查看呢?

6.1 stat

stat 文件名
  • 查看文件具体属性
  • 这里面的属性我们后面章节会详细道来~~

  • 好,接下来我们就开始学习下一个命令

七、mkdir指令【重要】

语法: mkdir [选项] dirname…

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

常用选项:

-p, --parents 可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录;

mkdir 目录
  • 这里前面的d是代表目录的意思,详细内容我放到后面讲~~

  • 这里我们基本要用的就是 -p 指令,就是递归建立多个目录
  • 这里再提一嘴,命令直接要有空格
mkdir -p aaa/bbb/ccc/ddd/eee

  • 这里再提一嘴,命令直接要有空格
mkdir -p aaa/bbb/ccc/ddd/eee

yum install -y tree
  • 然后再执行
tree ./

  • 这样看是不是很方便观察~~
  • 那我要是执行一下tree /,会执行这么一长串,“根本停不下来”

  • 这个时候我们就要按下ctrl + c就可以强制停止执行了

八、rmdir指令 && rm 指令(重要)

rmdir是一个与mkdir相对应的命令。mkdir是建立目录,而rmdir是删除命令。

语法: rmdir [-p][dirName]

适用对象: 具有当前目录操作权限的所有使用者

功能: 删除空目录

常用选项:

  • -p 当子目录被删除后如果父目录也变成空目录的话,就连带父目录一起删除。

rm命令可以同时删除文件或目录

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

适用对象: 所有使用者

功能: 删除文件或目录

常用选项:

-f 即使文件属性为只读(即写保护),亦直接删除

-i 删除前逐一询问确认

-r 删除目录及其下所有文件

  • 有了新增文件和文件夹,那么就有删除~~
  • 这里也是要区分删除文件【rm】和文件夹【rmdir】

8.1 rm

rm 文件名
  • 这里删除文件的时候会提示是否要删除?这里输入n不要删除,输入y就删除了,这里的删除就是真正的删除了,没有什么windows的回收站什么的~~

8.2 rm -f

  • 那这样删除文件的话每次都要问是否要删除,是不是很麻烦,我们可以加一个选项-f,就不会提示,直接删除

  • 但是这个命令是删除不了文件夹的

  • 那么我们就要学下一个命令了

8.3 rmdir

rmdir 文件夹
  • 这里删除单个文件夹,文件夹里面是空,什么都没有那么它是可以删除的

  • 那么这个文件夹不为空,可以直接删除吗?

  • 那么怎么办呢?总不能进入文件夹一个一个删除吧,这个时候就要用到-r选项了
  • 这个-r就是递归删除
rm -r 名字
  • 但是这里删除的时候有提示是否删除,刚刚学了-f选项,可以直接再加上-f选项,直接删除~~

8.4 rm -rf

rm -r -f 名字
  • 可以看到这里就直接删除了~~
  • 这里的rm -r -f也可以写成rm -rf它们是等价的

  • 但是这里要注意的一点就是,千万不要执行rm -rf /,这会删除根目录下所有文件,系统会崩溃,所以删除命令操作谨慎!!!!!!

九、man指令【重要】

Linux的命令有很多参数,我们不可能全记住,我们可以通过查看联机手册获取帮助。访问Linux手册页的命令是man

语法: man [选项] 命令

-k 根据关键字搜索联机帮助

num 只在第num章节找

-a 将所有章节的都显示出来,比如 man printf 它缺省从第一章开始搜索,知道就停止,用a选项,当按下q退出,他会继续往后面搜索,直到所有章节都搜索完毕。

解释一下,面手册分为8章

1 是普通的命令

2 是系统调用,如open,write之类的(通过这个,至少可以很方便的查到调用这个函数,需要加什么头文件)

3 是库函数,如printf,fread4是特殊文件,也就是/dev下的各种设备文件

5 是指文件的格式,比如passwd, 就会说明这个文件中各个字段的含义

6 是给游戏留的,由各个游戏自己定义

7 是附件还有一些变量,比如向environ这种全局变量在这里就有说明

8 是系统管理用的命令,这些命令只能由root使用,如ifconfig

  • 我们可以执行下面的命令
man man
  • 进入到这个界面后,按键盘上的上下键就可以上下滚动了~~

  • 退出的话在英文模式下按键盘上的q
  • 这个命令就是想查看哪个命令,就查看哪个命令,会显示出帮助文档
  • 如果说我想查看ls的帮助文档,就执行以下命令:
man ls

  • 那我想查看C语言中的函数呢?怎么查看呢?
man printf
  • 有的同学可能执行就报错了
  • 我们执行以下命令
yum install -y man-pages
  • 再次执行man printf
  • 就可以查看这个函数的用法了

  • 那我想查看这个库函数怎么查看呢?
  • 我们执行下面命令
man 3 printf

  • 那我想查看c++的呢?
  • 这里就不推荐了,推荐直接再cplusplus网站上查看~~

其他的序号就不经常用,先不说了~~

十、cp指令【重要】

语法: cp [选项] 源文件或目录 目标文件或目录

功能: 复制文件或目录

**说明: ** cp指令用于复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到此目录中。若同时指定多个文件或目录,而最后的目的地并非一个已存在的目录,则会出现错误信息

常用选项:


-f 或 --force 强行复制文件或目录, 不论目的文件或目录是否已经存在

-i 或 --interactive 覆盖文件之前先询问用户

-r递归处理,将指定目录下的文件与子目录一并处理。若源文件或目录的形态,不属于目录或符号链接,则一律视为普通文件处理

-R 或 --recursive递归处理,将指定目录下的文件及子目录一并处理

  • 我们可以将一个文件或者目录拷贝到另一个地方,但是相同目录下不能有相同名称的文件
cp src dst

  • 那我想要将一个目录下的有多个文件也拷贝过去怎么拷贝呢?
  • 直接拷贝可以吗?
cp aaa a

  • 可以看到是不能的~~

10.1 cp -r

  • 这个时候就需要加上-r选项【递归处理,将指定目录下的文件与子目录一并处理。若源文件或目录的形态,不属于目录或符号链接,则一律视为普通文件处理】
cp -r aaa a

十一、mv指令【重要】

mv命令是move的缩写,可以用来移动文件或者将文件改名(move (rename) files),是Linux系统下常用的命令,经常用来备份文件或者目录。

语法: mv [选项] 源文件或目录 目标文件或目录

功能:


视mv命令中第二个参数类型的不同(是目标文件还是目标目录),mv命令将文件重命名或将 其移至一个新的目录中。

当第二个参数类型是文件时,mv命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它将所给的源文件或目录重命名为给定的目标文件名。

当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个,mv命令将各参数指定的源文件均移至

目标目录中。

常用选项:

  • -f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖
  • -i :若目标文件 (destination) 已经存在时,就会询问是否覆盖!
  • 这个和前面那个拷贝相似
mv src dst

11.1 mv -f

  • 将刚刚拷贝的文件再拷贝回来,这里我们可以使用那个-f选项强制拷贝~~
mv -f a/test.c ./

11.2 cat

语法: cat [选项][文件]

功能: 查看目标文件的内容

常用选项:

  • -b 对非空输出行编号
  • -n 对输出的所有行编号
  • -s 不输出多行空行
  • cat这个命令很简单,我们来看
cat 文件名

11.2.1 cat -n
  • 输出带行号,空行也带行号,照样输出~~
cat -n test.c

11.2.2 cat -b
  • 针对空行不进行编号,非空行进行编号~~

  • 那我想倒着输出文件里的内容怎么办呢?

11.3 tac

tac 文件名
  • 猫倒过来了,所以就倒着输出~~

f6e0d396ce7e91a881d3fd6ed97d4851_efe484274deb445da7f4bec66a1c0db6.png

相关文章
|
6月前
|
Unix Linux Windows
【Linux】—— 命名管道详解
【Linux】—— 命名管道详解
161 0
|
6月前
|
存储 负载均衡 Linux
【Linux 系统】进程间通信(匿名管道 & 命名管道)-- 详解(下)
【Linux 系统】进程间通信(匿名管道 & 命名管道)-- 详解(下)
|
6月前
|
消息中间件 Unix Linux
【Linux 系统】进程间通信(匿名管道 & 命名管道)-- 详解(上)
【Linux 系统】进程间通信(匿名管道 & 命名管道)-- 详解(上)
|
6月前
|
Linux
【Linux】命名管道的创建方法&&基于命名管道的两个进程通信的实现
【Linux】命名管道的创建方法&&基于命名管道的两个进程通信的实现
|
5月前
|
存储 NoSQL 安全
深入Linux Core文件生成与自定义命名规则
深入Linux Core文件生成与自定义命名规则
118 2
|
5月前
|
Linux Shell C++
【linux】命名管道
【linux】命名管道
24 0
|
5月前
|
Linux Shell
【Linux】命名管道
【Linux】命名管道
|
6月前
|
Linux
【linux进程间通信(一)】匿名管道和命名管道
【linux进程间通信(一)】匿名管道和命名管道
|
6月前
|
Ubuntu Linux
自动化解决Linux网络预测网络接口命名问题
自动化解决Linux网络预测网络接口命名问题
59 0