在Linux/Mac系统中,其为标准的多用户系统,其中每个用户的文件都放在属于自己的目录中。其路径为 /home/username/ ,其中username就是我们的用户名。有一个快捷方式表示我们的家目录,即 ~ 。使用这个快捷标示,可以快速帮我们回到自己的家目录。
当我们需要切换当前工作目录时,比如进入家目录时,可以输入下面的命令:
cd ~ cd是英文 change directory 的缩写,意为更改目录。
比如我们想要进入自己的下载目录,就需要输入如下指令:
cd ~/Downloads/ 当我们不想输入过长的指令时,可输入tab来进行快速补全。
如果需要返回上级目录,我们需要输入:
cd … 在linux/Mac系统中,. 代表了当前目录, … 代表了上级目录。
当我们进入到某个文件夹之后,我们不知道其中有什么文件,可以使用:
ls ls是英文list的缩写,我们可以使用ls命令来查看某个文件夹中的文件。
使用ls命令可以看到目录下的所有文件,但是只能看到文件或者文件夹的名字,如果我们想要看到更多的内容,可以加上如下参数:
ls -l 加上 -l 参数之后,文件会以一个详细列表的形式把所有内容全部输出出来。
如果我们想要看到所有的(包括隐藏的)文件/文件夹,可以输入:
ls -a 我们可以将命令组合起来,例如 ls -la 就可以将所有文件以列表的形式呈现出来,顺序无所谓。
如果我们想要列出指定路径下的所有文件/文件夹的名称,并以列表的形式显现,可输入:
ls -lh 这种形式可读性较高,显示文档大小、修改时间等等。
Linux/Mac 系统和 win 系统一个很大的区别就是隐藏文件,在 Linux 系统中,只要一个文件或者文件夹的名字第一个字符是 . 就表示这是一个隐藏的文件。因此,如果想要在 Linux 系统中隐藏一个文件,只需要重命名这个文件,加上 . 就可以了。
如果我们想要打印当前的工作目录(即定位)可以输入:
pwd pwd是英文print working directory的缩写。
如果我们想要创建一个文件夹/目录,即可输入:
mkdir+路径 路径可以是文件夹的名称,也可以是一个包含名称的一个完整路径。
当我们想要一次性创建多层不存在的目录的时候,需要添加 -p 参数。否则会报错。
mkdir -p +路径 我们也同样可以一次性创建多个目录:mkdir 路径1 路径2 路径3 …
当我们需要创建文件的时候,就会用到touch指令:
touch + 路径 路径可以是直接的文件名,也可以是一个绝对路径,同时我们也可以使用touch来创建多个文件,例如 touch 1.c 2.c 3.c …
在 Linux 系统中,没有 重命名 这个概念。只有 移动文件 这个概念,我们把 a 文件重命名为 b 文件这个操作,我们要理解为——把文件 a 移动到 b。(也可以理解为在 Linux 系统中,重命名的命令也是 mv 。)
mv a b mv是英文move的缩写,左述操作即为将a文件重新命名为b。
这本身就是一种移动文件,也就是剪切文件。我们可以这样操作:
mv ~/Downloads/wxr.txt ~/Documents/ 这就表示了把下载目录下的wxr.txt文件,移动到文档目录中。
复制文件也是一个很常见的操作。需要注意的是,当副本文件如果存在名字相同的,会覆盖掉同名文件。
cp a b cp是英文copy的缩写,左述操作是将文件a复制为文件b。
同 mv 命令一样,它也是可以跨目录复制的。
cp ~/Downloads/love.txt ~/Documents/
如果想要保留文件所有的权限属性,可以加上参数 -a ,如果复制的是文件夹,则需要加上递归的参数 -r ,同样可以加上 -v 参数显示实时进度。
cp -rav a b 使用左述命令,就可以将a目录的所有内容原封不动的复制到b目录中去,并且可以看到实时的复制过程。
需要注意的是,rm 命令进行的删除操作,是不会放到系统回收站或者废纸篓里面去的。而是直接删除,因此,输入 rm 指令的时候需要头脑清晰。
想要删除某个文件时,可以输入:
rm a rm是英文remove的缩写。
一般情况下在删除的时候 Linux 会给提示,需要输入 yes 来同意删除。不过在 Mac 系统中不会提示,会直接删除掉。
同样的,如果我们需要删除一个文件夹,则需要加上递归参数 -r 。
rm -r a 删除操作一定要谨慎。
vim是一款文本编辑器,其作用是打开一个文件(可以存在也可以不存在)。
vim + 文件的路径 当我们需要退出打开文件的时候,shift + :,输入q,按下回车即可。
一般命令的输出都会显示在终端中,有些时候需要将一些命令的执行结果保存到想要保存的文件中进行后续的分析与统计,这时候就需要用到输出重定向技术。
正常执行的指令 > 文件的路径 为覆盖输出,会覆盖掉原先文件的内容。
正常执行的指令**>>** 文件的路径 为追加输出,不会覆盖掉原始文件的内容,会在原始内容末尾继续添加
需要注意的是,文件可以不存在,不存在则系统会新建一个文件用来保存。
cat可以对文件进行两种操作,直接打开文件以及对文件进行合并。
cat + 文件的路径1 此为打开文件的操作。
cat + 文件路径1 文件路径2 … > 合并之后的文件路径 合并多个文件到一个文件当中,配合输出重定向使用。
如果我们需要查看磁盘的空间,则需要输入:
df -h -h表示以可读性较高的形式展示大小。
如果我们需要查看内存使用的情况,则需要输入:
free -m 其中-m表示以mb为单位进行查看。
其中输出的内容分别表示为:
mem行 是内存使用的情况
swap行 是交换空间的使用情况
total列 是系统总的可用物理内存和交换空间大小
used列 显示已经被使用的物理内存和交换空间
free列 显示的是还有多少物理内存和交换空间可供使用
shared列 显示被共享使用的物理内存大小
buff/cache列 显示被buffer和cache使用的物理内存大小
available列 显示还可以被应用程序使用的物理内存大小
swap 用于临时内存,当系统真实内存不够用的时候可以临时使用磁盘空间来充当内存。
如果需要查看一个文件的前n行,则需要用到:
head -n 文件路径 其中n代表数字,指定查看的行数,如果不输入n,默认显示前10行。
同head指令相反,需要查看一个文件的后n行,需要用到:
tail -n 文件路径 用法同head相同,是一对反义词。
同时tail命令可以查看一个文件的动态变化内容,变化的内容是不能用户手动添加的 。
tail -f 文件路径 该命令通常用于查看系统的日志。
当我们需要简单的查看一个文件的内容,则需要用到:
less 需要查看文件的路径 当文件比较长的时候,可以使用ctrl + f/b 进行上下翻页。需要退出的时候按下q键即可。
wc指令通常用来统计文件内容信息,包括行数、单词数、字节数。
wc -lwc 其中-l代表lines,行数;-w表示words,单词数,按照空格来判断单词数量;-c代表bytes,字节数。
当我们需要对当前日期时间进行操作(读取、设置)时,需要用到:
date 输出的形式为 2022年 8月24日 星期三 12时13分56秒
date +%F 输出的形式为2022-08-24
date “+%F %T” 输出的形式为2022-08-24 12:18:03
当我们需要获得详细的某个时间,则需要用到
date “+%Y-%m-%d %H:%M:%S” 输出形式为2022-08-24 14:13:21
以下是单位的可选值:
%F :表示完整的年月日
%T :表示完整的时分秒
%Y :表示四位年份
%m :表示两位月份
%d :表示日期
%H :表示小时
%M :表示分钟
%S :表示秒数
当我们想要操作日历,就会用到cal指令
cal -1 直接输出当月日历,且会高亮显示当日。
八月 2022
日 一 二 三 四 五 六
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
cal -3 表示输出上一个月、本月、下个月的日历
2022
七月 八月 九月
日 一 二 三 四 五 六 日 一 二 三 四 五 六 日 一 二 三 四 五 六
1 2 1 2 3 4 5 6 1 2 3
3 4 5 6 7 8 9 7 8 9 10 11 12 13 4 5 6 7 8 9 10
10 11 12 13 14 15 16 14 15 16 17 18 19 20 11 12 13 14 15 16 17
17 18 19 20 21 22 23 21 22 23 24 25 26 27 18 19 20 21 22 23 24
24 25 26 27 28 29 30 28 29 30 31 25 26 27 28 29 30
cal 年份 表示输出某一个年份的日历
2022
一月 二月 三月
日 一 二 三 四 五 六 日 一 二 三 四 五 六 日 一 二 三 四 五 六
1 1 2 3 4 5 1 2 3 4 5
2 3 4 5 6 7 8 6 7 8 9 10 11 12 6 7 8 9 10 11 12
9 10 11 12 13 14 15 13 14 15 16 17 18 19 13 14 15 16 17 18 19
16 17 18 19 20 21 22 20 21 22 23 24 25 26 20 21 22 23 24 25 26
23 24 25 26 27 28 29 27 28 27 28 29 30 31
30 31
四月 五月 六月
日 一 二 三 四 五 六 日 一 二 三 四 五 六 日 一 二 三 四 五 六
1 2 1 2 3 4 5 6 7 1 2 3 4
3 4 5 6 7 8 9 8 9 10 11 12 13 14 5 6 7 8 9 10 11
10 11 12 13 14 15 16 15 16 17 18 19 20 21 12 13 14 15 16 17 18
17 18 19 20 21 22 23 22 23 24 25 26 27 28 19 20 21 22 23 24 25
24 25 26 27 28 29 30 29 30 31 26 27 28 29 30
七月 八月 九月
日 一 二 三 四 五 六 日 一 二 三 四 五 六 日 一 二 三 四 五 六
1 2 1 2 3 4 5 6 1 2 3
3 4 5 6 7 8 9 7 8 9 10 11 12 13 4 5 6 7 8 9 10
10 11 12 13 14 15 16 14 15 16 17 18 19 20 11 12 13 14 15 16 17
17 18 19 20 21 22 23 21 22 23 24 25 26 27 18 19 20 21 22 23 24
24 25 26 27 28 29 30 28 29 30 31 25 26 27 28 29 30
31
十月 十一月 十二月
日 一 二 三 四 五 六 日 一 二 三 四 五 六 日 一 二 三 四 五 六
1 1 2 3 4 5 1 2 3
2 3 4 5 6 7 8 6 7 8 9 10 11 12 4 5 6 7 8 9 10
9 10 11 12 13 14 15 13 14 15 16 17 18 19 11 12 13 14 15 16 17
16 17 18 19 20 21 22 20 21 22 23 24 25 26 18 19 20 21 22 23 24
23 24 25 26 27 28 29 27 28 29 30 25 26 27 28 29 30 31
30 31
需要清除终端中已经存在的命令和结果的时候,需要用到:
clear 使用clear命令的时候,并不是真的清除了之前的信息,只是把之前的信息隐藏到了最上面,可以通过滚动条继续查看以前的信息。