常用命令
罗列内容 ls
作用:罗列出当前目录下的所有内容。
shell
ls [-a -l -h] [path]
参数 | 作用 |
---|---|
-a | 展示所有文件,包括隐藏文件夹 |
-l | 以列表的形式展示内容 |
-h | 展示文件的大小,且携带单位 |
示例:
shell
# 列出工作目录(home)下的内容
ls
# 列出工作目录(home)下的内容,包括隐藏文件夹
ls -a
# 以列表的形式,列出工作目录(home)下的内容,并且内容大小带单位
ls -a -l -h
ls -alh
切换目录 cd
shell
cd [path]
示例:
shell
# 切换到 根目录
cd /
# cd不加参数,默认回到 home 目录
cd
路径符 /
路径符分为 2 种:
- 相对路径:以 根路径 / 为起点,路径描述以 / 开头;
- 绝对路径:以 当前目录为起点,路径描述无需以 / 开头;
shell
# 相对路径写法
cd Desktop
# 绝对路径
cd /home/linux/Desktop
特殊路径符
特殊路径符 | 描述 |
---|---|
. | 表示当前目录,如 cd ./Desktop 表示切换到当前目录下的 Desktop 目录内,和 cd Desktop 命令相同 |
.. | 表示上一级目录,如 cd .. 表示切换到上一级目录 |
~ | 表示 home 目录,如 cd ~ 表示切换到 home 目录,和 cd 命令相同 |
查看工作目录 pwd
作用:查看当前所在的工作目录。
shell
# 切换到 根目录
cd /
# 查看当前的工作目录
pwd
创建文件夹 mkdir
shell
mkdir [-p] path
参数:
参数 | 描述 |
---|---|
-p | 表示创建连续的所层级目录 |
注意
创建文件夹需要修改权限,确保所有操作都在 home 路径下进行!
示例:
shell
# 在home目录下,创建test文件夹
# 使用相对路径
mkdir /home/liunx/test1
# 使用绝对路径
mkdir test2
# 使用 . 特殊路径符
mkdir ./test3
# 使用 ~ 特殊路径符
mkdir ~/test4
# 在home目录下,创建test/good/666文件夹
mkdir -p test/good/666
创建文件 touch
shell
touch 文件路径
示例:
shell
# 在home目录下,创建 test.txt 文件
touch test.txt
查看文件 cat
作用:查看文件内容,一次性展示所有内容。
shell
cat 文件路径
示例:
提示
默认 test.txt 中是没有内容的,我们可以直接打开文件写入一些内容。
shell
# 查看创建的 test.txt 文件内容
cat test.txt
查看文件 more
作用:查看文件内容,支持翻页查看(空格:翻页;q键:退出查看)。
shell
more 文件路径
示例:
shell
# 查看/etc/services中的文件内容
more /etc/services
复制文件 cp
作用:复制文件/文件夹。
shell
cp [-r] 文件路径 目标路径
参数 | 描述 |
---|---|
-r | 复制文件夹时使用,表示 递归复制文件夹 |
示例:
shell
# 在home下创建test.txt文件,复制一份命名为test2.txt
cp test.txt test2.txt
# 在home下创建 test/name.txt 文件,复制一份命名为 test2
cp -r test test2
移动文件 mv
作用:移动文件/文件夹。
shell
mv 文件路径 目标路径
注意
注意目标文件夹必须存在,如果目标文件夹不存在,则会进行覆盖原文件。
示例:
shell
# 在home下创建 text.txt 文件,移动到 Desktop 文件夹下
mv test.txt Desktop
# 在home下创建 good 文件夹,移动到 Desktop 文件夹下
mv good Desktop
# 在home下创建 text1.txt 文件,移动到 text2.txt 文件下,可以发现 test1.txt 改名为了 test2.txt
mv test1.txt test2.txt
删除文件 rm
作用:删除文件/文件夹。
::: dangers 危险
rm 命令非常危险,尤其是处于 root 管理员用户的时候,谨慎使用!!
:::
shell
rm [-r -f] 文件1 文件2 ...
参数 | 描述 |
---|---|
-r | 删除文件夹时使用,表示 递归删除文件夹 |
-f | 表示强制删除文件,普通用户删除时不会提示,root用户删除会提示 |
文件n | 可以同时删除多个文件,并且支持 * 通配符 |
示例:
shell
# 在根目录下创建 1.txt 2.txt good1 good2 good3
touch 1.txt
touch 2.txt
mkdir good1
mkdir good2
mkdir good3
# 删除 1.txt 文件
rm 1.txt
# 删除 good 文件夹
rm -r good
# 删除名字带有 good 的文件夹
rm -r *good*
rm
命令支持通配符 *
,即匹配任意内容,用来做 模糊匹配。
示例:
shell
# 匹配以 good 开头的内容
good*
# 匹配以 good 结尾的内容
*good
# 匹配包含 good 的内容
*good*
查找命令 which
TIP
上面提到的所有命令,其实本质就是一个个的二进制可执行程序。和 windows 中的 .exe 文件一个意思。
作用:查看 linux 中命令(程序)存放在哪里。
shell
# 查找 cd 命令
which cd
查找文件 find
TIP
为了能够查找到更多的文件,首先使用 su -root
切换到 root 管理员用户。
作用:按名称搜索指定的文件。
shell
find path -name fileName
示例:
shell
# 查找根目录下,名为 good 的文件
find / -name "good"
# 查找根目录下,名称中包含 good 的文件
find / -name "*good*"
作用:按照文件大小查找文件。
shell
find path -size +|-n[单位]
参数 | 描述 |
---|---|
+ / - | 表示大于 / 小于 |
n | 表示文件大小,以数字形式展示 |
单位 | k:kb | M:MB | G:GB |
示例:
shell
# 查找小于 10kb 的文件
find / -size -10k
# 查找大于 100MB 的文件
find / -size +100M
过滤关键字 grep
作用:从文件中通过关键字过滤指定内容。
shell
grep [-n] keyword path
参数 | 描述 |
---|---|
-n | 表示显示关键字行号 |
示例:
shell
# 从 1.txt 中过滤 hello
grep -n "hello" 1.txt
管道符 |
作用:将管道左边的结果,作为右边命令的输入。
示例:
shell
# 使用 管道符 从 test.txt 中过滤 liuxu
cat test.txt | grep "liuxu"
# 使用 管道符 从 test.txt 中获取内容行数
cat test.txt | wc -l
# 使用 管道符 从 home 下,过滤 test 文件
ls ~ | grep test.txt
# 使用 管道符 从 /usr/bin 下,过滤 gtf 文件,并以列表形式查看详细信息
ls -l /usr/bin | grep gtf
# 使用 管道符 从 test.txt 中过滤 liuxu,再过滤 beautiful
cat test.txt | grep "liuxu" | grep "beautiful"
统计 wc
作用:统计文件中的行数、单词数、字符数、字节数。
shell
wc [-c -m -l -w] path
参数 | 描述 |
---|---|
-c | 统计字节数 |
-m | 统计字符数量 |
-l | 统计行数 |
-w | 统计单词数量 |
示例:
shell
# 统计 test.txt 文件
wc -cmlw test.txt
输出内容 echo
作用:在命令行输出指定内容。
shell
echo 输出内容
示例:
shell
# 命令行输出 hello world
echo "hello world"
反引号 `
作用:`` 可以在命令行输出命令的执行结果,如果不用 反引号包裹,会直接把命令当作字符串输出。
示例:
shell
# 命令行数据 pwd 执行后的结果
echo `pwd`
# 命令行直接输出 pwd 字符串
echo pwd
重定向符 >
作用:
>
:将左侧命令的结果,**覆盖 **写入到右侧的文件中;>>
:将左侧命令的结果,追加 写入到右侧的文件中;
示例:
shell
echo "hello world" > test.txt
echo "hello world" >> test.txt
查看尾部内容 tail
作用:查看文件尾部内容,跟踪文件的最新更改。
shell
tail [-f -num] path
参数 | 描述 |
---|---|
-f | 持续追踪 |
-num | 查看尾部多少行,默认10行 |
示例:
shell
# 将根目录下所有文件夹的名称,覆盖写入到 test.txt 中
ls >> test.txt
# 读取后 5 条,并持续追踪
tail -f -5 test.txt