1 查看帮助信息命令
1.man命令
# man命令的功能是查看某一条命令的详细解释。
# 格式:
man [具体需要被查看的命令]
eg: man shutdown : 进入查看界面
# 查看界面里的各项
NAME :一句话说明被查看命令的作用
SYNOPSIS :展示命令的使用格式
OPTIONS :被查看命令的所有选项
DESCRIPTION :命令的简介,详细的告诉我们当前这个命令具体作用

2.help命令
# 格式:
1 被查询命令 --help
eg: shutdown --help
2 help 被查询命令 # 注:help 命令只能用于内建命令的帮助信息查询
eg: help cd
# 补充:
内建命令 是shell程序的一部分,Linux系统加载运行时就被加载并驻留在系统内存里的,执行速度较快。
外部命令 是通过额外安装获得的命令,不随系统一起被加载到内容中,运行速度慢但功能强大。
使用 type 命令可以查看该命令是内建命令还是外部命令
2 系统常用快捷键

# 上下键:
1、切换屏幕
2、根据使用命令的历史,切换命令(注:同一个命令行窗口)
# 页面内搜索:(注:光标最好放在第一行,按n键,查找下一个)
第一步:按 / 键
第二步:输入搜索的内容
第三步:回车
第四步:按n键,查找下一个
退出:按 q 键
# bash的版本号:
\v
# 清空屏幕信息:
ctrl + l # 与之相同的命令:clear
# 光标移动到行首与行尾
crtl + a : 移动到行首 crtl + 左 : 快速向左移动光标
crtl + e : 移动到行尾 ctrl + 右 : 快速向右移动光标
# 剪切内容至行首:
crtl + u
# 剪切内容至行尾:
crtl + k
# 粘贴内容:
crtl + y
# 命令补全(必须唯一):
tab
3 目录路径相关命令

# 查看目录、切换目录、创建目录
# 1 查看目录
# pwd 命令: 查看当前所在目录的路径(绝对路径)
实际上使用的是系统环境变量中的PWD的值
# printenv : 打印系统环境变量
系统环境变量:系统默认给咱们定义的变量
# 查看目录的详细信息
ls -dl /root 或 ll -d /root
# 2 切换目录/路径
# cd 命令 : 切换目录
格式:
cd [目标路径]
绝对路径
相对路径
特殊路径: . .. ~ -
# 案例
1:切换到/etc/sysconfig/network-scripts
cd /etc/sysconfig/network-scripts
2:由案例1 切换到/etc目录
cd /etc
cd ../..
3:由案例2 切换至上一次所在的目录
cd -
4:切换到家目录
cd ~
cd /root
# 3 创建目录/文件夹
# mkdir 命令: 创建目录的命令
格式:
mkdir [选项] [被创建的目标路径]
选项(参数)
-p : 自动创建父级目录
# 1.创建单层目录
eg:在当前目录创建一个名为:test的文件夹
mkdir test # 相对路径
eg:在/root目录下创建一个名为:test01的目录
mkdir /root/test01 # 绝对路径
# 2.创建多层目录
eg:在/root目录下,创建一个/root/a/b/c目录
# 方式一:一层一层的创建
mkdir /root/a/
mkdir /root/a/b
mkdir /root/a/b/c
# 方式二:添加 -p 参数
mkdir -p /root/aa/bb/cc
mkdir /root/aa/bb/cc # 若直接建立多层目录,报错
mkdir: cannot create directory ‘/root/aa/bb/cc’: No such file or directory
# 4 查看目录树: 需要先安装tree命令,执行yum install tree -y
tree -a 目录 # 显示所有文件,包括隐藏文件
tree -d 目录 # 只显示子目录
tree -L 1 目录 # -L 遍历目录的最大层数,-L后应该是大于0的正整数
tree -F 目录 # -F 显示结果会在条目后加上文件类型的指示符号,例如 会在显示出的 目录 后面加上左斜杠/
[root@localhost ~]# tree /a
/a
├── b
│ ├── 1.txt
│ ├── 2.txt
│ └── 3.txt
├── bb
│ ├── a.txt
│ ├── b.txt
│ └── c.txt
└── bbbb
4 文件相关命令
1.创建文件
# 前提: 在同一目录下,文件名和目录名字是不能够一样的 原因:Linux系统中一切皆文件,文件夹实质也是文件
# touch 命令:
格式:
touch [选项] [被创建的文件的路径]
补充:
{} : 表示循环
.. : 连续
, : 不连续 # 以{}中指定的参数创建
# 案例:
1.创建一个名为abc的文件 (默认:当前目录)
touch abc
2.创建/root/a/abc的文件 # 指定目录路径创建文件
touch /root/a/abc
3.创建 test1 到 test100 中的所有文件
touch test{1..100}
4.创建test111 ~ test199 ,并且在其每一个目录中都创建test文件
mkdir test1{11..99} # 先 创建对应的目录
touch test1{11..99}/test # 再 在对应的目录里创建test文件
5.创建test003、test006、test009这三个文件
touch test00{3,6,9}
2.查看数据信息
# ls 命令: list的缩写
查看指定目录下的所有文件 (包含子目录/文件夹) 以及相关信息
格式:
ls [选项] [指定的路径] # 默认是当前文件夹的路径
选项(参数):
-l : 查看文件详细信息
-a : 查看隐藏文件
-h : 格式化显示文件大小(前提:必须跟-l参数一起使用)
-dl : 查看目录的详细信息
--color=auto : 显示颜色(注:不能够通过颜色判断文件属性)
# 补充:
1.隐藏文件:Linux中以.开头的文件即为隐藏文件
2. ls -l 等价于 ll 它是怎么实现的? 通过别名命令指定的
3.常见的文件的属性表示符
f(FILE -) : 普通文件的标识符
d(DIRECTORY) : 普通文件夹的标识符
# 案例
1.查看当前目录里的所有文件
ls
2.查看当前目录中文件的详细信息
ls -l 简写: ll
结果:
-rw-------. 1 root root 1776 Sep 13 11:10 anaconda-ks.cfg
-rw-r--r--. 1 root root 5632 Sep 13 12:14 init.sh
# 详细信息的解读
- : 文件的属性
rw-r--r--. : 文件的权限
r : 可读
w : 可写
x : 可执行
- :没有对应的权限
权限位:每三个构建一个权限位 共9个
属主(自己)
属组(指定组中的所有用户的权限)
其他用户
1 : 硬链接个数
root root : 属主 属组
1776 : 文件的大小(单位:字节 B)
Sep 13 12:14: 文件创建的时间
init.sh : 文件的名称
# 知识储备
# dd 命令 : 用于读取、转换并输出数据
参数
if : 指定读取的文件
of : 指定写入的文件
bs : 定义一次写入多少内容
count:定义写入多少次
eg: 要求生成一个1000M的文件
dd if=/dev/zero of=1.txt bs=10M count=100
结果是生成一个名为1.txt的文件,大小是1000M
100+0 records in
100+0 records out
1048576000 bytes (1.0 GB) copied, 13.4242 s, 78.1 MB/s
# alias 命令 : 别名
格式:
alias 字符="相关的命令"
eg1.查看系统所有的别名
alias
eg2.设置一个别名
alias lh="ls -l -h"
# 注:有些命令,就是通过alias命令起别名后,按一些指定参数执行。
若想使用原始命令, \原始命令 执行
3.输出打印
# echo : 输出
格式:
echo [输出的内容] [重定向字符(非必须)] [重定向的文件(非必须)]
# 案例:
案例1:输出Hello World
echo "Hello Wolrd"
案例2:将Hello Wolrd输出到文件2.txt中
echo "Hello Wolrd" > 2.txt
# 知识储备:
> : 覆盖重定向(先将文件中原有的内容清空,然后写入内容到文件)
>> : 追加重定向(将内容写入到文件最后边,原有的内容不变)
重定向 : 把某个内容,通过某种方式输入到指定文件中,即为重定向
4.查看文件内容
# cat : 读取,打印
格式:
cat 选项(非必须) [读取的文件路径]
选项:
-n :显示行号
# 案例:
1.读取2.txt中的内容
cat 2.txt
Hello Wolrd01
2.读取/etc/hosts文件内容,输入到3.txt中
cat /etc/hosts > 3.txt
3.直接将多行内容,写入到4.txt中
内容:
127.0.0.1 localhost localhost.localdomain localhost4
::1 localhost localhost.localdomain localhost6
命令:
cat > 4.txt <<EOF # 回车 写入内容
127.0.0.1 localhost localhost.localdomain localhost4
::1 localhost localhost.localdomain localhost6
EOF # 顶格写入 EOF
4.要求读取4.txt中的内容,并打印行号
cat -n 4.txt
1 127.0.0.1 localhost localhost.localdomain localhost4
2 ::1 localhost localhost.localdomain localhost6
5.复制文件
# cp : copy的缩写
格式:
cp [选项(非必须)] [原路径] [新路径]
选项:
-r : 递归复制目录
-i : 增加覆盖提示
-p : 保留原有文件的属性
-a : 在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容
-d : 当复制符号连接时,把目标文件或目录也建立为符号连接,并指向与源文件或目录连接的原始文件或目录;
# 案例
1.将1.txt文件复制到/tmp目录中
cp 1.txt /tmp/
2.将/var/log目录及其目录中的所有文件全部复制到/tmp目录
cp -r /var/log /tmp/
3.仅将/var/log/messages、/var/log/boot.log、/var/log/vmware-network.log三个文件复制到/tmp/
cp /var/log/{messages,boot.log,vmware-network.log} /tmp/
4.将/etc/system-release 复制到 /tmp目录下
cp -d /etc/system-release /tmp/
5.复制2.txt到/tmp目录中,要求不更改其创建时间
cp -p 5.txt /tmp/
# 知识储备:
stat : 查看文件创建时间
6.移动文件
# mv : 将linux当中的某个文件移动到指定目录 (剪切) 或 修改文件名
# 格式:
mv [选项] [原来的文件路径] [现在的文件路径] # 移动并修改文件名
mv [选项] [原来的文件路径] [现在的文件夹路径] # 移动文件
mv命令后面既可以跟绝对路径也可以跟相对路径。
# 选项:
-i : 覆盖前提示
# 知识储备:
正则表达式
*: 代表所有的文件(匹配任意字符个数的内容)
?: 代表一个字符
# 案例
1.将1.txt移动到/tmp目录下
mv 1.txt /tmp
2.将/root/2.txt 移动到 /tmp目录中
mv /root/2.txt /tmp
3.将/var/log目录移动到/tmp目录中
mv /var/log/ /tmp/
4.将/root目录中的所有文件移动到/tmp目录中
mv /root/* /tmp/
# 注:隐藏文件默认不被移动
5.将/root目录下的abc1 ~ abc9 移动到/tmp目录中
方式1:
mv /root/abc{1..9} /tmp/
方式2:
touch abc{1..9}
ls
abc1 abc2 abc3 abc4 abc5 abc6 abc7 abc8 abc9
mv /root/abc* /tmp/
方式3:
touch abc{1..9}
ls
abc1 abc2 abc3 abc4 abc5 abc6 abc7 abc8 abc9
mv /root/abc? /tmp/
6.将/root目录下的abc1 ~ abc9 移动到/tmp目录中
touch abc{1..13}
ls
abc1 abc10 abc11 abc12 abc13 abc2 abc3 abc4 abc5 abc6 abc7 abc8 abc9
mv /root/abc? /tmp/
ls
abc10 abc11 abc12 abc13
ls /tmp/
abc1 abc2 abc3 abc4 abc5 abc6 abc7 abc8 abc9
7.将/root目录下abc1 ~ abc99 移动到/tmp目录中
mv /root/abc{?,??} /tmp/
7.删除文件
# rm : 删除文件的命令
# 禁止使用rm命令 linux中一切皆文件,企业中一般不允许删除文件
# 格式:
rm [选项] [被删除文件的路径]
# 选项:
-i : 删除前提示
-r : 递归删除
-f : 忽略不存在的文件和参数,从不提示
-v : 显示指令的详细执行过程
# 禁止使用rm命令:
方式1:修改rm的别名
alias rm="fgfbasdb"
rm -rf /tmp/*
-bash: fgfbasdb: command not found
方式2:修改rm文件的真实文件名
# 1.先查看rm命令的文件路径
which rm
alias rm='rm -i'
/usr/bin/rm
# 2.切换到bin目录下
cd /user/bin
# 3.将rm文件修改成其他名字
mv rm abcdefg
# 案例:
1.将/tmp目录下所有的文件全部删除
\rm /tmp/*
2.删除/tmp目录下的test目录
第一种情况:空目录
rm -r test/
第二种情况:非空目录
rm -rf test/
rm -r -f test/
3.删除/tmp目录下以abc开头的文件
rm -f /tmp/abc*
ls
test1 test10 test2 test3 test4 test5 test6 test7 test8 test9
8.查看命令的真实路径
# which : 查看命令的真实路径
# 格式:
which [具体的命令]
# 案例1:查看rm命令的路径
which rm
alias rm='rm -i'
/usr/bin/rm
