前言
前面我们知道了什么是 Linux,以及如何在 Windows 系统上通过 VMware 来搭建Linux 系统环境。知道了这些之后,我们便可以开始操作 Linux了,那么今天我将为大家分享Linux 的基础命令
Linux目录结构
在使用基础命令之前,我们首先要知道 Linux 的目录结构,因为它跟 Windows 系统的目录结构是不同的。Windows 系统下可以有多个根目录,像我们的 C 盘和 D 盘,Windows 系统下不同层级的目录之间使用 \
或者 /
来分隔。
但是 Linux 系统只有一个根目录 /
。并且不同层级的目录使用 /
来分隔。
例如:bob 的绝对路径就是 /home/bob/
什么是绝对路径,什么是相对路径?
- 绝对路径:以根目录为起点,描述路径的一种写法,路径描述以
/
开头 - 相对路径:以当前目录为起点,描述路径的一种写法,路径描述无需以 / 开头
Linux命令通用格式
command [-options] [parameter]
- command:命令本身(必须有)
- -options:[可选,非必填]命令的一些选项,可以通过选项控制命令的行为细节
- parameter:[可选,非必填]命令的参数,多数用于命令的指向目标等
ls 命令
ls 命令的作用是列出当前工作目录下的内容。
ls [-a -l -h] [Linux文件路径]
-a 选项,表示所有,包含隐藏的文件
-l 选项,会将文件以列表的形式展开,也就是一行一行展示,并且会展示出文件的详细信息
-h 选项,需要搭配着 -l 选项使用,-h 选项会显示出文件大小的单位
这些选项都是可以搭配着使用的。
可以这样搭配 -a -l -l -h -a -l -h
也可以这样 -al -lh -alh 顺序可以不唯一。
什么是工作目录
Linux 的工作目录是指用户当前正在操作的目录。工作目录是Shell(命令行界面)或图形用户界面中当前打开的终端窗口运行命令时的默认目录。当您在终端中执行命令或在文件资源管理器中打开文件对话框时,系统将默认在工作目录中搜索文件或创建新文件。
当我们启动 Linux 命令行终端的时候,会默认加载到 HOME 目录。
什么是 HOME 目录
HOME目录是每个用户的默认主目录。HOME目录通常位于 /home/用户名/ 的位置,其中"用户名"是您在系统上的用户名。
HOME目录是每个用户在登录系统时默认进入的目录,也是用户存储其个人文件、配置文件和其他用户特定数据的地方。每个用户都有自己独立的HOME目录,各自之间互不干扰。
在HOME目录中,用户可以创建子目录来组织文件,存储个人文档、图像、音频和其他文件。除此之外,许多应用程序在HOME目录下保存用户的配置文件和个人设置,以便在不同会话中保持一致性。
ls
ls -a
ls -l
ls -lh
ls -l /boot
目录切换相关命令
- cd 切换工作目录
- pwd 展示当前的工作目录
cd 命令
使用 cd [Linux文件路径]
会将当前的工作目录转换为指定的目录,当cd不添加参数的时候表示会回到 HOME
目录。
cd /boot
ls -l
cd /
ls -l
pwd 命令
pwd
命令会将当前的工作目录给展示出来。
cd /
pwd
特殊的路径符
. 表示当前目录,cd ./Desktop 表示切换到当前目录下的Desktop 目录内,和 cd Desktop 效果一致
. . 表示上一级目录,比如:cd . . 即可切换到上一级目录,cd . ./. . 切换到上二级的目录
~ 表示 HOME 目录,比如:cd ~ 即可切换到 HOME 目录或 cd ~/Desktop,切换到HOME内的Desktop目录
创建目录
使用 mkdir [-p] Linux路径
来创建目录。
- 参数必填,表示Linux路径,即要创建的文件夹的路径,相对路径或绝对路径都可
- -p 选项可选,表示自动创建不存在的父目录,适用于创建连续多层级的目录
mkdir /home/handsome/test
注意:创建文件夹需要修改权限,需要确保操作均在 HOME
目录内,不要在 HOME
外操作
使用选项 -p
我们可以一次创建多个层级的目录
mkdir -p /home/handsome/test1/123
文件操作相关命令
- touch 创建文件
- cat 查看文件内容
- more 查看文件内容
- cp 复制文件内容
- mv 移动文件
- rm 删除文件
touch 命令
使用 touch Linux文件路径
来创建文件。
touch /home/handsome/test/txt
cat 命令
使用 cat Linux文件路径
来查看指定文件内容。
我们先在文件中写入数据。
cat test.txt
more 命令
more
命令也是查看文件内容,但是它跟 cat
不同的是:当文件中内容较多时,cat
会一次将所有内容都给展示出来,而 more
则会一页一页的展示。more Linux文件路径
- 在 more 一页一页展示数据的时候,使用空格进行翻页
- q 退出查看
cat /boot/config-3.10.0-1160.el7.x86_64
more /boot/config-3.10.0-1160.el7.x86_64
cp 命令
使用 cp [-r] 参数1 参数2
来实现文件/文件夹的拷贝。
- -r 选项表示复制文件夹
- 参数1是被复制的文件的路径
- 参数2是要复制到的文件路径
cp /home/handsome/test.txt test2.txt
cp -r /home/handsome/test1 test2
mv 命令
mv 参数1 参数2
来移动文件或者文件夹。
- 参数1表示需要移动的文件/文件夹的路径
- 参数2表示要移动到的路径
mv /home/handsome/test1 /home/handsome/Desktop
如果需要移动的文件/文件夹与要移动到的路径在一个层级的话,相当于把这个文件更改了名字。
mv /home/handsome/test2 test3
rm 命令
rm [-r -f] 参数1 参数2……
用来删除一个或者一个以上的文件。
- -r 选项 表示删除文件夹
- -f 选项 表示强制删除
- 参数1、2……表示需要删除的文件路径
rm -r /home/handsome/Desktop/test1
当我们以普通用户删除文件的时候,会让我们再次确认是否要删除。而如果我们使用 su - root
进入root管理员模式之后,使用 -f
删除的时候,就不会出现提示。
通配符
rm 命令支持通配符 * ,用来做模糊匹配
- 符号 * 表示通配符,即匹配任意内容(包含空),示例:
- test* ,表示匹配任何以 test 开头的内容
- *test ,表示匹配任何以 test 结尾的内容
- *test* ,表示匹配任何包含 test 的内容
rm /home/handsome/test*
查找命令
- which 查找指令所在的位置
- find 查找文件所在的路径
which 命令
Linux命令,他们的本体就是一个个的二进制可执行程序,和Windows系统中的.exe文件是一个意思
我们可以通过 which 命令
查看所使用的一系列命令的程序文件存放在哪里。
which cd
which pwd
find 命令
find 查找文件的方式分为两种:
- 按文件名查找
- 按文件的大小查找
按文件名查找文件
find 开始路径 -name 文件名
以文件名的形式查找文件。
find / -name test
全局查找
查找的时候也可以搭配着通配符来查找。
find / -name test*
按文件大小查找
find 起始路径 -size +|-n[kMG]
- +、- 表示大于和小于
- n表示大小数字
- KNG 表示大小单位,k(小写字母)表示kb,M表示MB,G表示GB
find / -size +50M
ls -lh /boot/initramfs-0-rescue-eab91e769bd847959b68004062e843d5.img
grep 、wc、管道符
- grep 通过关键字过滤文件行
- wc 统计数量
- | 管道符
grep 命令
通过 grep [-n] 关键字 文件路径
来查找指定文件的带有关键字的行。
- -n 选项表示显示出匹配的行的行号
- 参数 关键字 表示过滤的关键字,如果有空格或者其他特殊符号建议使用 " " 包起来
- 参数 文件路径 表示需要过滤的信息的文件,可作为内容输入端口
grep girl /home/handsome/test.txt
grep -n girl /home/handsome/test.txt
wc 命令
通过 wc [-c -m -l -w] 文件路径
来统计文件中的行数、单词数量等。
-c 选项,统计文件的字节bytes数
-m 选项,统计字符数量
-l 选项,统计行数
-w 选项,统计单词数量
参数,文件路径,被统计的文件,可作为内容输入端口
wc -c /home/handsome/test.txt
wc -m /home/handsome/test.txt
wc -l /home/handsome/test.txt
wc -w /home/handsome/test.txt
| 管道符
管道符可以将管道符左边命令的结果作为右边命令的输入。前面我们的 grep
和 wc
都有可以作为内容输入的端口。
cat /home/handsome/test.txt | grep man
find /home -name test.txt | wc -c
? 这里为什么会是24,而不是65呢?其实这里管道符前面的命令返回的是/home/handsome/test.txt 然后将这个结果作为 wc 的输入,所以他统计的是文件路径的字节数,而不是对应的路径文件内容的字节数。那么如果我们想要统计文件内容的字节数该怎么办呢?
我们需要使用 -exec 选项来执行指定的命令,将 test.txt 文件的内容传递给 cat 命令进行合并,再通过管道传递给 wc -c 命令进行字符数统计。find /home -name test.txt -exec cat {} + | wc -c
echo、重定向符和tail
- echo 输出后面的内容
- tail 尾部
- > >> 重定符
echo 命令
echo 输出的内容
echo可以将后面的输出内容给打印出来,类似于其他语言的 print 。
echo "i am a handsome man"
如果我们想要输出后面的命令的结果怎么办?可以直接echo吗?
echo pwd
这样是不可以的,那么该怎么办呢?我们需要使用反引号 ` ,反引号里的内容不会直接作为输出的内容,而是输出反引号内的命令的结果。
重定向符
- > 将左侧命令的结果,覆盖写入到右侧指定的文件中
- >> 将左侧命令的结果,追加到右侧指定的文件中
echo "abcde" > /home/handsome/test.txt
tail 命令
tail [-f -num] Linux文件路径
查看文件尾部的内容。
- -f 选项,表示持续跟踪
- -num 选项,表示查看尾部的num行内容,默认是10行
cat /var/log/vmware-network.log
tail /var/log/vmware-network.log
tail -5 /var/log/vmware-network.log
什么叫持续跟踪:持续跟踪大概来讲就是当我们使用了 tail -f Linux文件路径 之后,如果我们在该文件中添加数据的话,控制台也会自动显示出我们添加的数据。