Linux/mac 命令行操作简单介绍
linux/mac 日常入门命令行使用——文件以及文件夹操作
日常文件夹以及文件操作
首先,我们需要知道一个概念,就是家目录。虽然 windows 系统是多用户系统,但我们大多数人还是把它当成单用户系统使用。所以文件到处放,软件到处安(也是没有办法,windows软件管理做得不好,也确实没办法做好,太多太乱了)。
但是 linux 系统,是标准的多用户系统。我们每个用户的东西都应该放在属于我们自己的目录中。其实体路径为 /home/fungleo/ 其中的 fungleo 是我的用户名,你自己的系统需要替换成你的。
有一个快捷方式表示我们的家目录,就是 ~。用这个快捷标识,我们就能快速的回到我们自己的家目录。
cd 进入某个目录
例如,我们要进入我们的家目录,可以输入下面的命令:
1 | cd ~ |
cd 是英文 change directory 的缩写,更改目录的意思。
再例如,我们要进入下载目录,就是这样的命令:
1 | cd ~/Downloads/ |
要输入这样的命令,是不是感觉有点长呢?其实大可不必,我们可以用 tab 键快速补全。例如,这样:
1 | cd ~/Dow<tab> |
上面的
如果需要返回上级目录,则是使用
1 | cd .. |
在 linux 系统中 . 代表当前目录,..代表上级目录。如果是上级的上级目录,就是 ../..
ls 查看目录下的文件
当我们进入到某个文件夹之后,我们不知道里面有什么文件,就可以使用这个命令:
1 | ls |
ls 是英文 list 的缩写
然后我们就可以看到这个目录的文件了。这里,我们只能看到文件或者文件夹的名字,如果我们想要看到更多的内容,就可以加上 -l 参数。
1 | ls -l |
这样,就会以一个列表的形式,把所有的内容全部输出出来。
如果你还想要看看隐藏的文件,可以输入
1 | ls -a |
当然,聪明的你肯定想要了,这命令可以组合起来吗?当然可以,如下:
1 | ls -la |
linux/mac 系统和 windows 系统有一个很大的区别,就是,隐藏文件。在 linux 其中中,只要一个文件或者文件夹的名字第一个字符是 . 就表示这是一个隐藏文件。而 windows 系统是用文件的属性来设置的。所以,使用 linux 系统,你如果想要给某个文件夹或者文件隐藏,右击属性什么的,是做不了什么的。只需要重命名文件,加个 . 就可以了。
1 | mv 移动,重命名文件 |
在 linux 系统中,没有 重命名 这个概念。只有一个概念,叫移动文件。把 a 文件重命名为 b 文件这个操作,要理解为——把 a 文件移动到 b。
举例如下:
1 | mv a b |
mv 是英文 move 的缩写
就是把 a 文件重命名为 b。
当然,这本来就是移动文件,也就是剪切文件。我们可以这样操作
1 | mv ~/Downloads/love.txt ~/Documents/ |
就是表示,把下载目录下的 love.txt 文件,移动到文档目录中
cp 复制文件和文件夹
复制文件也是一个很常见的操作。最简单的,把 a 文件复制为 b 文件,执行下面的命令
1 | cp a b |
cp 是英文 copy 的缩写
很简单吧?
当然,和 mv 命令一样,也是可以跨目录复制的。
1 | cp ~/Downloads/love.txt ~/Documents/ |
如果你需要保留文件所有的权限属性之类的,可以加上参数 -a。
例如
1 | cp -a a b |
如果你复制的不是文件,而是文件夹,则要加上一个递归的参数 -r
1 | cp -r a b |
当然,复制文件夹,并且要保留所有的权限属性,加上参数 -ra
1 | cp -ra a b |
另外,如果你复制的文件夹里面有很多内容,你想看到实时进度的话,可以用 -v 参数
1 | cp -rav a b |
如上命令,你就可以把 a 目录的所有内容原封不动的复制到 b 目录去,并且可以看到实时的复制过程。
rm 删除文件或文件夹
请注意, rm 命令进行的删除操作,是不会放到系统的回收站里面去的。而是直接删除,如果你希望通过软件把文件找回来的话,也是很困难的。所以,在输入 rm 命令的时候一定要头脑清晰哦!
我们想要删除某个文件,可以输入:
1 | rm a |
rm 是英文 remove 的缩写
命令进入删除。但是删除的时候,一般 linux 会给你提示,你需要输入 yes 同意,才能删除。但是 mac 不会给提示,直接就删除掉了。
当然,如果你不想看到这个提示,而是希望直接就删除掉,可以加上一个参数 -f
1 | rm -f a |
这样,就会直接删除掉,不会再要求你输入 yes 了。
如果删除的是某个目录,直接用上面的命令是不行的。删除目录必须进行递归操作,所以需要加上参数 -r ,另外,你可能也不想确认,所以,命令就是:
1 | rm -rf a |
这样了。
最后,删除操作一定要谨慎。
touch 新建文件
我们可以新建一个任意的文件。命令是 touch 至于为什么是这个命令,我不太清楚,我联系不上 触摸 和 新建 之间的关系。
但是这个单词是一个非常简单的单词,我们可以轻松的记住。
创建一个文件
1 | touch a |
创建多个文件
1 | touch a b c d |
就可以创建 a b c d 这四个文件了。
我们可以创建任意文件。只需要加上不同的后缀就可以了。
1 | touch a.txt b.jpg c.doc d.pdf |
不过创建出来的,都是空的文件。里面需要录入内容的话,需要你自己用对应的软件打开进行编辑处理。
mkdir 新建文件夹
新建文件夹的命令是 mkdir 应该能够看出来,这个命令是英文 make directory 的缩写。
新建一个文件夹
1 | mkdir a |
新建多个文件夹
1 | mkdir a b c d |
新建多个层级的目录,这就需要加上参数 -p 了。
1 | mkdir -p res/style/scss |
就可以创建一个多层级的目录。
less 查看文本文件
如果我们需要简单的查看一个文件的内容,可以使用 less 命令。这个单词是少的意思。同样,多的英文 more 也可以用来查看文件。
不过一般情况下,我们使用 less 命令。如下:
1 | less index.html |
就可以查看这个文件了。
如果文件比较长,可以使用 ctrl + f 往下翻页,也可以使用 ctrl+b 向上翻页。
pwd 看看自己在哪个目录下
如果你的目录层级比较多,你导出溜达着,忘记你在哪里了,怎么办?或者,你需要把你当前的目录路径给复制出来,怎么办?
没关系,我们可以使用 pwd 命令,迅速输出你的当前目录路径。
1 | pwd |
需要说明的是,这里会返回完整的路径,而不是 ~/xxx 这样的缩写路径。
例如,你在家目录里执行这个命令,那么输出的将会是:
1 | /home/fungleo |
这样的。
man 查看某个命令的详情
如果你看到一个命令,不清楚这是干啥的,就可以用 man 命令来看看这个命令的详细介绍:
1 | man cp |
就可以看 cp 命令的详情。
不过,这个命令输出的内容是英文的。如果你英文不行,可以到一个中文网站来看。网址是:http://man.linuxde.net/
需要注意的是,中文内容不一定是准确的,或者是最新的。
小结
好,掌握以上日常使用的命令,基本上你就可以愉快的使用命令行了。需要更多的内容,基本上可以使用搜索引擎来解决,你只需要提出正确的问题,基本上都能得到解答的。