linux\mac 日常入门命令行使用——文件以及文件夹操作

标签: shell  mac  linux  命令行

linux\mac 日常入门命令行使用——文件以及文件夹操作

对于没有接触过命令行的人,对于命令行还是非常恐惧的。我能够理解,但是我个人认为,大可不必。如果不是要深入研究 shell ,否则,日常使用其实一点都不困难。

本文主要是讲 linux 系统的命令操作。我会尽量保持命令与 mac 兼容。因为两者的使用本来就差不多。

linux 日常使用状态

首先,你会打开浏览器,看看网页,顺便打开网页版的微信或者钉钉。嗯,你不用打开客户端了。
然后,你可能需要打开一些办公软件,比如 office 之类的。deepin 集成了社区办的 wps 办公软件,还是比较符合中国人的使用习惯的。如果你使用的其他发行版的系统,我们也有 LibreOffice 可以使用。可能你会说这个功能没有微软的强大。我只想说,你真的用得到?
当然,你还可能会用到一些编辑器,比如 sublime 或者其他编辑器。
又或者,你还需要一些音乐或者电影或者其他的各种图形界面的软件。不关心了。
最后,你肯定会使用到一个叫做终端的东西。

你可能用了十年的 windows 系统,一次都没打开过 cmd 工具。但是在 linux 下面,使用命令行的比例,远远高于 windows 系统。

你可以认为这是装逼。但更多的是,必须。其次是高效,简单。

不管你怎么看,既然决定入坑,那就接着往下看吧。

日常文件夹以及文件操作

首先,我们需要知道一个概念,就是家目录。虽然 windows 系统是多用户系统,但我们大多数人还是把它当成单用户系统使用。所以文件到处放,软件到处安(也是没有办法,windows软件管理做得不好,也确实没办法做好,太多太乱了)。

但是 linux 系统,是标准的多用户系统。我们每个用户的东西都应该放在属于我们自己的目录中。其实体路径为 /home/fungleo/ 其中的 fungleo 是我的用户名,你自己的系统需要替换成你的。

有一个快捷方式表示我们的家目录,就是 ~。用这个快捷标识,我们就能快速的回到我们自己的家目录。

cd 进入某个目录

例如,我们要进入我们的家目录,可以输入下面的命令:

cd ~

cd 是英文 change directory 的缩写,更改目录的意思。

再例如,我们要进入下载目录,就是这样的命令:

cd ~/Downloads/

要输入这样的命令,是不是感觉有点长呢?其实大可不必,我们可以用 tab 键快速补全。例如,这样:

cd ~/Dow<tab>

上面的 <tab> 表示按 tab 键。

如果需要返回上级目录,则是使用

cd ..

linux 系统中 . 代表当前目录,..代表上级目录。如果是上级的上级目录,就是 ../..

ls 查看目录下的文件

当我们进入到某个文件夹之后,我们不知道里面有什么文件,就可以使用这个命令:

ls

ls 是英文 list 的缩写

然后我们就可以看到这个目录的文件了。这里,我们只能看到文件或者文件夹的名字,如果我们想要看到更多的内容,就可以加上 -l 参数。

ls -l

这样,就会以一个列表的形式,把所有的内容全部输出出来。

如果你还想要看看隐藏的文件,可以输入

ls -a

当然,聪明的你肯定想要了,这命令可以组合起来吗?当然可以,如下:

ls -la

以上命令输出结果如下图所示:

ls 命令

linux/mac 系统和 windows 系统有一个很大的区别,就是,隐藏文件。在 linux 其中中,只要一个文件或者文件夹的名字第一个字符是 . 就表示这是一个隐藏文件。而 windows 系统是用文件的属性来设置的。所以,使用 linux 系统,你如果想要给某个文件夹或者文件隐藏,右击属性什么的,是做不了什么的。只需要重命名文件,加个 . 就可以了。

mv 移动,重命名文件

linux 系统中,没有 重命名 这个概念。只有一个概念,叫移动文件。把 a 文件重命名为 b 文件这个操作,要理解为——把 a 文件移动到 b

举例如下:

mv a b

mv 是英文 move 的缩写

就是把 a 文件重命名为 b

当然,这本来就是移动文件,也就是剪切文件。我们可以这样操作

mv ~/Downloads/love.txt ~/Documents/

就是表示,把下载目录下的 love.txt 文件,移动到文档目录中

cp 复制文件和文件夹

复制文件也是一个很常见的操作。最简单的,把 a 文件复制为 b 文件,执行下面的命令

cp a b

cp 是英文 copy 的缩写

很简单吧?

当然,和 mv 命令一样,也是可以跨目录复制的。

cp ~/Downloads/love.txt ~/Documents/

如果你需要保留文件所有的权限属性之类的,可以加上参数 -a

例如

cp -a a b

如果你复制的不是文件,而是文件夹,则要加上一个递归的参数 -r

cp -r a b

当然,复制文件夹,并且要保留所有的权限属性,加上参数 -ra

cp -ra a b

另外,如果你复制的文件夹里面有很多内容,你想看到实时进度的话,可以用 -v 参数

cp -rav a b

如上命令,你就可以把 a 目录的所有内容原封不动的复制到 b 目录去,并且可以看到实时的复制过程。

rm 删除文件或文件夹

请注意, rm 命令进行的删除操作,是不会放到系统的回收站里面去的。而是直接删除,如果你希望通过软件把文件找回来的话,也是很困难的。所以,在输入 rm 命令的时候一定要头脑清晰哦!

我们想要删除某个文件,可以输入:

rm a

rm 是英文 remove 的缩写

命令进入删除。但是删除的时候,一般 linux 会给你提示,你需要输入 yes 同意,才能删除。但是 mac 不会给提示,直接就删除掉了。

当然,如果你不想看到这个提示,而是希望直接就删除掉,可以加上一个参数 -f

rm -f a

这样,就会直接删除掉,不会再要求你输入 yes 了。

如果删除的是某个目录,直接用上面的命令是不行的。删除目录必须进行递归操作,所以需要加上参数 -r ,另外,你可能也不想确认,所以,命令就是:

rm -rf a

这样了。

最后,删除操作一定要谨慎。

touch 新建文件

我们可以新建一个任意的文件。命令是 touch 至于为什么是这个命令,我不太清楚,我联系不上 触摸新建 之间的关系。

但是这个单词是一个非常简单的单词,我们可以轻松的记住。

创建一个文件

touch a

创建多个文件

touch a b c d

就可以创建 a b c d 这四个文件了。

我们可以创建任意文件。只需要加上不同的后缀就可以了。

touch a.txt b.jpg c.doc d.pdf

不过创建出来的,都是空的文件。里面需要录入内容的话,需要你自己用对应的软件打开进行编辑处理。

mkdir 新建文件夹

新建文件夹的命令是 mkdir 应该能够看出来,这个命令是英文 make directory 的缩写。

新建一个文件夹

mkdir a

新建多个文件夹

mkdir a b c d

新建多个层级的目录,这就需要加上参数 -p 了。

mkdir -p res/style/scss

就可以创建一个多层级的目录。

less 查看文本文件

如果我们需要简单的查看一个文件的内容,可以使用 less 命令。这个单词是的意思。同样,的英文 more 也可以用来查看文件。

不过一般情况下,我们使用 less 命令。如下:

less index.html

就可以查看这个文件了。

如果文件比较长,可以使用 ctrl + f 往下翻页,也可以使用 ctrl+b 向上翻页。

pwd 看看自己在哪个目录下

如果你的目录层级比较多,你导出溜达着,忘记你在哪里了,怎么办?或者,你需要把你当前的目录路径给复制出来,怎么办?

没关系,我们可以使用 pwd 命令,迅速输出你的当前目录路径。

pwd

需要说明的是,这里会返回完整的路径,而不是 ~/xxx 这样的缩写路径。

例如,你在家目录里执行这个命令,那么输出的将会是:

/home/fungleo

这样的。

man 查看某个命令的详情

如果你看到一个命令,不清楚这是干啥的,就可以用 man 命令来看看这个命令的详细介绍:

man cp

就可以看 cp 命令的详情。

不过,这个命令输出的内容是英文的。如果你英文不行,可以到一个中文网站来看。网址是:http://man.linuxde.net/

需要注意的是,中文内容不一定是准确的,或者是最新的。

小结

好,掌握以上日常使用的命令,基本上你就可以愉快的使用命令行了。需要更多的内容,基本上可以使用搜索引擎来解决,你只需要提出正确的问题,基本上都能得到解答的。

本文由 FungLeo 原创,允许转载,但转载必须保留首发链接。

版权声明:本文为FungLeo原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/FungLeo/article/details/78488656

智能推荐

PAT乙级 | 1095 解码PAT准考证 (25分)(做题过程+注意事项+运行超时解决方法)

PAT 准考证号由 4 部分组成: 第 1 位是级别,即 T 代表顶级;A 代表甲级;B 代表乙级; 第 2~4 位是考场编号,范围从 101 到 999; 第 5~10 位是考试日期,格式为年、月、日顺次各占 2 位; 最后 11~13 位是考生编号,范围从 000 到 999。 现给定一系列考生的准考证号和他们的成绩,请你按照要求输出各种统计信息。 输入格式: 输入首先在一行中给出两个正整数 ...

谈谈Java异常

0 概述 对于java工程师来说,是经常和异常打交道的,本文主要来谈一谈java中的异常。 1 异常类的继承关系 从下图(说明:图中只是列出部分异常类)可以看出: 异常的基类为Throwable,主要分为两个分支,即Error体系和Exception体系。 Exception下面分为RuntimeException和非RuntimeException(如IOException) 2 几种异常的区别...

通过设立FatFS隐藏分区,实现系统文件和用户文件的隔离

嘛。。这是一个关于个人使用FatFS文件系统的 一点小的经验。 我知道大家都会百度和谷歌,关于文件系统有什么用,文件系统怎么移植上自己的平台,看看资料也就懂了,在这里不再详述( 打字太慢一分钟50-60字懒得写)。本系列默认已经可以将设备模拟成u盘,并且已经通过修改diskio.c,可以实现ff.c中的各项功能( 不能实现的自行面壁)。FatFS项目官网 http://elm-chan.org/f...

Mysql之锁与事务知识要点小结

Mysql之锁与事务 平时的业务中,顶多也就是写写简单的sql,连事务都用的少,对锁这一块的了解就更加欠缺了,之前一个大神分享了下mysql的事务隔离级别,感觉挺有意思的,正好发现一个很棒的博文,然后也收集了一些相关知识,正好来学习下,mysql中锁与事务的神秘面纱,主要内容包括 共享锁和排它锁的区别以及适合范围 mysql的表锁和行锁的区别 怎么判断一个sql是否执行了锁,执行的是表锁还是行锁 ...

响应式图片二 通过srcset实现

具体方法如下: srcset=”图片地址+空格+尺寸描述符,图片地址+空格+尺寸描述符,图片地址+空格+尺寸描述符….” 浏览器会当前浏览的环境进行感知,这个感知包括网速、界面分辨率、DPR(屏幕像素比)等等,然后在图片中选择一个进行加载。 实际上,在相同DPR下,浏览器会根据屏幕的分辨率加载图片,但是加载了大的图片后再缩小还是会使用大的图片。综合考虑的算法非...

猜你喜欢

Training_model(2)

已经清洗处理了两个数据文件: application_{train|test}.csv :客户详细信息 bureau.csv : 客户历史信用报告 下面对这两个数据中的特征进行合并,然后Light Gradient Boosting Machine训练模型,之前只用客户数据的预测评分结果是0.734,这次加入了客户信用报告信息 load data 新增加了客户历史信用记录 Build Model ...

微信小程序 页面跳转(传参跟不传参)

跳转页面传参 1.首先我的目录结构是这样的,并在 cinema.wxml 定义了一个点击事件 bindtap=‘indetai’ 2.然后在 cinema.js 的data里面定义了一个 score,并实现了 indetai 方法 3.在 detai.js 的 data 里面也定义一个 score ,再在 onLoad 函数里面接收传递过来的值 4.在页面上显示得到的值 这...

JavaSE 10(二维数组)

前言:      在经历了血雨腥风的地狱模式后本以为迎来了学习的平静,但二维数组又打破了这难得的平静!!!二维数组在java编程中同样也是很重要的知识点,因此在这里我将整理二维数组的知识点与重点,以及习题,便于自己的复习与巩固。 二维数组的声明与创建: 下面是声明二维数组的语法: 数据类型[][]数组名 : 数据类型数组名[][]; (允许这种方式 ,但并不推荐使用它...

深入理解 Linux 内存机制!| 技术头条

作者 | 阿文 责编 | 郭芮 作为一名Linux 系统运维工程,在日常管理 Linux 的时候,我们经常发现系统的空闲内存差不多总是被用完了。   通常,我们可以通过 top 和 free 查看内存使用情况:     执行 free:     为了更人性化地显示,我们可以加上 -h 选项:       可以看到我们的...