Skip to content

常用命令

罗列内容 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

Released under the MIT License.