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 原创,允许转载,但转载必须保留首发链接。

GitHub 加速计划 / li / linux-dash
10.39 K
1.2 K
下载
A beautiful web dashboard for Linux
最近提交(Master分支:2 个月前 )
186a802e added ecosystem file for PM2 4 年前
5def40a3 Add host customization support for the NodeJS version 4 年前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐