二、linux基础命令
1. Bash命令行核心必备内容
- 目标:熟练掌握Linux命令行的特点(规则,格式,要求)
- 命令行格式
- 命令格式
- Linux目录结构概述
1.1 命令行格式
[root@lichengbo-xuexi ~]#
[root@lichengbo-xuexi ~]#
[root@lichengbo-xuexi ~]#
[root@lichengbo-xuexi ~]#
root --->当前用户的用户名
lichengbo-xuexi --->主机名,主机名反应出机器的作用
~ --->位置表示,表示当前所在的位置(你在Linux的那个目录位置下面) ~ 在Linux表示当前用户家目录的
1.2 命令格式
-
空格
-
命令:用于控制与操作Linux的指令
-
选项:同一个命令的不同功能。类似于条件
-
参数:命令处理的对象或者目标。(一般是文件或目录。。。。)
1.3 Linux命令目录结构
- 一切从根开始
1.4 小结
- 命令行格式:用户名 主机名 当前位置
- 命令格式:命令 选项 参数 记得加空格
- 目录结构:一切从根开始。/(根)
2.Linux核心命令-重启-关机
2.1 危险 ⚠️⚠️⚠️⚠️⚠️
命令 | 解释 | |
---|---|---|
关机命令 | ||
shutdown | -h 时间 shtudown -h now shtudown -h 10 #分钟 |
|
halt | 关机,还需要手动关闭电源。 | |
poweroff | 关机。 | |
shutdown -c | 取消将要进行的关机或重启操作 | |
重启命令 | ||
shutdown -r | 时间 | |
reboot | 立刻重启 |
- 了解就行
关机或重启 | 解释 | |
---|---|---|
init 0 | 关机(centos6里面常用) | |
init 6 | 重启(centos6里面常用) | |
systemctl halt | ||
systemctl poweroff | ||
systemctl reboot |
3.Linux核心命令-查询帮助
命令 | 注释 | 例子 |
---|---|---|
man | 查询详细帮助 | man shutdown |
help | 显示简易帮助 help命令查询 linux shell内置命令 |
shutdown --help |
4.Linux快捷键
快捷键 | 注释 | |
---|---|---|
ctrl+L | 清屏 | |
ctrl+A | 把光标移动到这一行的行首 | |
ctrl+E | 把光标移动到这一行的行尾 | |
ctrl+U | 把光标到行首的内容剪切(删除) | |
ctrl+C | 取消当前操作 | |
ctrl+y | 粘贴 | |
ctrl+k | 把光标到行尾的内容剪切(删除) |
总结:
- bash特点:命令行格式、命令格式、目录一切从根开始
- 关闭重启命令
- 查询帮助命令:man和--help
- linux快捷键
5.linux命令
5.1远离舒适区及命令学习流程
- 远离舒适区
- 命令学习流程
- 1️⃣每次讲解的命令,先整体记忆
- 2️⃣把学习过的命令分类,汇总成一个思维导图
- 3️⃣熟练的掌握命令的含义,记忆命令的选项,命令的选项通过案例或例子记忆
- 4️⃣通过习题巩固命令。掌握一个根据要求选择命令的能力。
5.2Linux核心命令
5.2.1 cd (change directory) #作用--->切换目录
选项:
cd+目录名 进入指定目录中 (#看案例01)
cd ~ 回到家目录,~当前用户家目录 (#看案例02)
cd 也是回到家目录 (#看案例02)
cd .. 回到当前目录的上一级目录 (#看案例03)
cd . 进入当前目录(一般不用,一般.与复制移动联合使用)
cd - 进入上一次所在的目录
#案例01 进入/etc/sysconfig目录下
[root@lichengbo-xuexi ~]# cd /etc/sysconfig/
[root@lichengbo-xuexi sysconfig]#
#注意:输入命令和路径的时候多用TAB键补全。
#注意:cd 空格 目录名
/
/tmp
/etc/sysconfig
#案例02 回到家目录
[root@lichengbo-xuexi sysconfig]# pwd
/etc/sysconfig
[root@lichengbo-xuexi sysconfig]# cd
[root@lichengbo-xuexi ~]# pwd
/root
[root@lichengbo-xuexi ~]#
#案例03 假设我们在一个比较深的目录中,想进入上一级目录如何做?
当前目录在/etc/sysconfig/network-scripts/
[root@lichengbo-xuexi sysconfig]# cd /etc/sysconfig/network-scripts/
[root@lichengbo-xuexi network-scripts]# pwd
/etc/sysconfig/network-scripts
[root@lichengbo-xuexi network-scripts]# cd ..
[root@lichengbo-xuexi sysconfig]# pwd
/etc/sysconfig
[root@lichengbo-xuexi sysconfig]# cd ../../
[root@lichengbo-xuexi /]#
#an案例04 比如我当前目录是 /etc/sysconfig/network-scripts,然后我想临时区/tmp目录做事情,任务完成后还想回到刚刚的目录。
cd -
[root@lichengbo-xuexi /]# cd /etc/sysconfig/network-scripts/
[root@lichengbo-xuexi network-scripts]# pwd
/etc/sysconfig/network-scripts
[root@lichengbo-xuexi network-scripts]# cd /tmp/
[root@lichengbo-xuexi tmp]# cd -
/etc/sysconfig/network-scripts
[root@lichengbo-xuexi network-scripts]# cd -
/tmp
5.2.2 pwd (print working dinrectory) 显示当前所在目录(工作目录)
#例子:
[root@lichengbo-xuexi ~]# pwd
/root
[root@lichengbo-xuexi ~]# cd /etc/sysconfig/
[root@lichengbo-xuexi sysconfig]# pwd
/etc/sysconfig
5.2.3 mkdir(make directory) #作用:创建目录,新建目录
#选项 作用
mkdir 创建目录
-p 递归创建目录(创建多级目录)
#案例01 创建目录 /oldboy ※※※※※
[root@lichengbo-xuexi ~]# mkdir /oldboy
[root@lichengbo-xuexi ~]# ls /oldboy/
[root@lichengbo-xuexi ~]# ls /
bin boot dev etc home lib lib64 media mnt oldboy opt proc root run sbin srv sys tmp usr var
#注意:操作前记得备份,操作后记得检查
#案例02 创建多级目录 /oldboy/1/2/3/4/5/6 ※※※※※
[root@lichengbo-xuexi ~]# mkdir -pv /oldboy/a/b/c/d/dd/ddd/ddddd/
mkdir: created directory ‘/oldboy/a’
mkdir: created directory ‘/oldboy/a/b’
mkdir: created directory ‘/oldboy/a/b/c’
mkdir: created directory ‘/oldboy/a/b/c/d’
mkdir: created directory ‘/oldboy/a/b/c/d/dd’
mkdir: created directory ‘/oldboy/a/b/c/d/dd/ddd’
mkdir: created directory ‘/oldboy/a/b/c/d/dd/ddd/ddddd/’
[root@lichengbo-xuexi ~]#
[root@lichengbo-xuexi ~]# mkdir -p /oldboy/a/b/c/d/dd/ddd/ddddd/
#案例03 创建多个目录
##方法一
[root@lichengbo-xuexi ~]# cd /oldboy/
[root@lichengbo-xuexi oldboy]# mkdir li1 li2 li3 li4
[root@lichengbo-xuexi oldboy]# ls /oldboy/
a li1 li2 li3 li4
##方法二
[root@lichengbo-xuexi oldboy]# cd
[root@lichengbo-xuexi ~]# mkdir /oldboy/li5 /oldboy/li6 /oldboy/li7
5.2.4 ls(list)查看目录内容
#选项
基本格式:ls+目录或ls
-l long长格式(显示详细信息)
-h human-readable人类可读形式展示大小
-t time按照文件修改时间排序
-r 逆序排序一般与-lrt一起使用
-d 显示目录本身的信息而不是显示目录内容。(把目录当做文件看待)
-a 列出所有文件,包括以 "." 开头的隐含文件。
#案例01 显示当前目录的内容 ※※※※※
[root@lichengbo-xuexi ~]# ls
anaconda-ks.cfg
[root@lichengbo-xuexi ~]# pwd
/root
#案例02 显示目录内容并显示内容详细信息 ※※※※※
[root@lichengbo-xuexi ~]# ls -l /
total 16
lrwxrwxrwx. 1 root root 7 Apr 3 17:27 bin -> usr/bin
dr-xr-xr-x. 5 root root 4096 Apr 3 17:30 boot
drwxr-xr-x. 20 root root 3260 Apr 5 12:56 dev
drwxr-xr-x. 80 root root 8192 Apr 5 17:44 etc
drwxr-xr-x. 2 root root 6 Apr 11 2018 home
lrwxrwxrwx. 1 root root 7 Apr 3 17:27 lib -> usr/lib
lrwxrwxrwx. 1 root root 9 Apr 3 17:27 lib64 -> usr/lib64
drwxr-xr-x. 2 root root 6 Apr 11 2018 media
drwxr-xr-x. 2 root root 6 Apr 11 2018 mnt
drwxr-xr-x. 10 root root 92 Apr 5 20:58 oldboy
drwxr-xr-x. 2 root root 6 Apr 11 2018 opt
dr-xr-xr-x. 126 root root 0 Apr 5 12:56 proc
dr-xr-x---. 2 root root 135 Apr 3 18:16 root
drwxr-xr-x. 26 root root 740 Apr 5 12:56 run
lrwxrwxrwx. 1 root root 8 Apr 3 17:27 sbin -> usr/sbin
drwxr-xr-x. 2 root root 6 Apr 11 2018 srv
dr-xr-xr-x. 13 root root 0 Apr 5 12:56 sys
drwxrwxrwt. 11 root root 270 Apr 5 13:26 tmp
drwxr-xr-x. 13 root root 155 Apr 3 17:27 usr
drwxr-xr-x. 19 root root 267 Apr 3 17:32 var
#案例03 在查看目录详细信息的时候 想看文件目录的大小并以人类可读的形式展示出来。 ※※※※
显示大小使用
ls -lh /etc/
ls -l -h /etc/
[root@lichengbo-xuexi ~]# sl -lh /etc/
-bash: sl: command not found
[root@lichengbo-xuexi ~]# ls -lh /etc/
total 1.1M
drwxr-xr-x. 3 root root 101 Apr 3 17:28 abrt
-rw-r--r--. 1 root root 16 Apr 3 17:29 adjtime
-rw-r--r--. 1 root root 1.5K Apr 1 2020 aliases
-rw-r--r--. 1 root root 12K Apr 3 17:32 aliases.db
位 bit
字节 byte
1字节=8位
1个字节=1个英文的字符
1kb=1024bytes
1mb=1024kb=1024^2 bytes
1GB=1024MB=1024^3 bytes
1TB=1024GB=1024^4 bytes
1PB=1024TB=1024^5 bytes
1EB=1024PB=1024^6 bytes
#案例04 Linux /etc目录下被创建病毒目录,不知晓目录名字,只知道是最近创建的。 ※※※
##模拟
mkdir /etc/bingdu
##
ls -lt /etc/ #按照使劲顺序排序 降序 新(上面)====>旧(下面)
##逆序排序
ls -lrt /etc/ # -r 逆序
[root@lichengbo-xuexi ~]# ls -lt /etc
total 1056
drwxr-xr-x. 2 root root 6 Apr 5 21:38 bingdu
-rw-r--r--. 1 root root 51 Apr 5 17:44 resolv.conf
-rw-r--r--. 1 root root 12288 Apr 3 17:32 aliases.db
drwxr-xr-x. 2 root root 225 Apr 3 17:32 ssh
drwxr-x---. 3 root root 83 Apr 3 17:32 audit
drwxr-xr-x. 3 root root 54 Apr 3 17:32 udev
##案例05 查看根目录本身的详细信息 不看内容
ls -ld /
#应用场景:一般配合其他命令 批量查文件,目录信息的时候使用。
[root@lichengbo-xuexi ~]# ls -ld /etc/hosts /etc/ /tmp
drwxr-xr-x. 81 root root 8192 Apr 5 21:38 /etc/
-rw-r--r--. 1 root root 158 Jun 7 2013 /etc/hosts
drwxrwxrwt. 11 root root 270 Apr 5 13:26 /tmp
[root@lichengbo-xuexi ~]#
5.2.5 touch 作用:创建文件(修改文件的时间戳)
#案件01 创建 /oldboy/oldboy.txt 文件
[root@lichengbo-xuexi ~]# ls -l /oldboy/
total 0
drwxr-xr-x. 3 root root 15 Apr 5 20:43 a
drwxr-xr-x. 2 root root 6 Apr 5 20:55 li1
drwxr-xr-x. 2 root root 6 Apr 5 20:55 li2
drwxr-xr-x. 2 root root 6 Apr 5 20:55 li3
[root@lichengbo-xuexi ~]# touch /oldboy/oldboy.txt
[root@lichengbo-xuexi ~]# ls -l /oldboy/
total 0
drwxr-xr-x. 3 root root 15 Apr 5 20:43 a
drwxr-xr-x. 2 root root 6 Apr 5 20:55 li1
drwxr-xr-x. 2 root root 6 Apr 5 20:55 li2
drwxr-xr-x. 2 root root 6 Apr 5 20:55 li3
-rw-r--r--. 1 root root 0 Apr 6 20:38 oldboy.txt
#案例02 创建多个文件 /oldboy/li.txt /oldboy/gaoxiaoge-4k-blue-ray.avi
#先进入目录,然后创建
[root@lichengbo-xuexi ~]# cd /oldboy/
[root@lichengbo-xuexi oldboy]# touch li.txt gaoxiaoge-4k-blue-ray.avi
[root@lichengbo-xuexi oldboy]# ls -l
total 0
drwxr-xr-x. 3 root root 15 Apr 5 20:43 a
-rw-r--r--. 1 root root 0 Apr 6 20:42 gaoxiaoge-4k-blue-ray.avi
drwxr-xr-x. 2 root root 6 Apr 5 20:55 li1
drwxr-xr-x. 2 root root 6 Apr 5 20:55 li2
drwxr-xr-x. 2 root root 6 Apr 5 20:55 li3
-rw-r--r--. 1 root root 0 Apr 6 20:42 li.txt
-rw-r--r--. 1 root root 0 Apr 6 20:38 oldboy.txt
5.2.6 mv (move) 作用:移动文件或改名
#案例01 把/oldboy/oldboy.txt 移动到tmp目录下
[root@lichengbo-xuexi ~]# mv /oldboy/oldboy.txt /tmp
[root@lichengbo-xuexi ~]# ls -l /tmp
total 4
-rwx------. 1 root root 836 Apr 3 17:30 ks-script-uf1iZf
-rw-r--r--. 1 root root 0 Apr 6 20:38 oldboy.txt
drwx------. 2 root root 6 Apr 3 17:32 vmware-root_1007-4282171056
drwx------. 2 root root 6 Apr 4 11:01 vmware-root_1008-2965579127
drwx------. 2 root root 6 Apr 4 10:56 vmware-root_962-2990678749
drwx------. 2 root root 6 Apr 6 20:31 vmware-root_963-4256545027
drwx------. 2 root root 6 Apr 5 12:56 vmware-root_996-2991071970
-rw-------. 1 root root 0 Apr 3 17:27 yum.log
#案例02 重命名 /oldboy/li.txt 改名叫 /oldboy/lichengbo-new.txt
[root@lichengbo-xuexi ~]# cd /oldboy #进入到目录
[root@lichengbo-xuexi oldboy]# ls -l
total 0
drwxr-xr-x. 3 root root 15 Apr 5 20:43 a
-rw-r--r--. 1 root root 0 Apr 6 20:42 gaoxiaoge-4k-blue-ray.avi
drwxr-xr-x. 2 root root 6 Apr 5 20:55 li1
drwxr-xr-x. 2 root root 6 Apr 5 20:55 li2
drwxr-xr-x. 2 root root 6 Apr 5 20:55 li3
drwxr-xr-x. 2 root root 6 Apr 5 20:55 li4
drwxr-xr-x. 2 root root 6 Apr 5 20:58 li5
drwxr-xr-x. 2 root root 6 Apr 5 20:58 li6
drwxr-xr-x. 2 root root 6 Apr 5 20:58 li7
-rw-r--r--. 1 root root 0 Apr 6 20:42 li.txt
[root@lichengbo-xuexi oldboy]# mv li.txt lichengbo-new.txt #移动 改名下
[root@lichengbo-xuexi oldboy]# ls -l
total 0
drwxr-xr-x. 3 root root 15 Apr 5 20:43 a
-rw-r--r--. 1 root root 0 Apr 6 20:42 gaoxiaoge-4k-blue-ray.avi
drwxr-xr-x. 2 root root 6 Apr 5 20:55 li1
drwxr-xr-x. 2 root root 6 Apr 5 20:55 li2
drwxr-xr-x. 2 root root 6 Apr 5 20:55 li3
drwxr-xr-x. 2 root root 6 Apr 5 20:55 li4
drwxr-xr-x. 2 root root 6 Apr 5 20:58 li5
drwxr-xr-x. 2 root root 6 Apr 5 20:58 li6
drwxr-xr-x. 2 root root 6 Apr 5 20:58 li7
-rw-r--r--. 1 root root 0 Apr 6 20:42 lichengbo-new.txt
#温馨提示:企业应用场景及案例
1. mv 移动或改名。
2. mv 是一个隐藏的杀手,危险程度仅次于rm。
3. 可以使用MV 替代rm
5.2.7 cp (copy) 作用:复制文件或目录
选项 | ||
---|---|---|
基本格式:cp 源文件 目录 | ||
-r | recursive递归复制目录,复制目录及目录内容 | |
-p | 复制的时候,保持属性信息不变(搭建网站中应用多,其他地方使用的少) | |
-a | 相当于是-r -p -d(pdr) | |
-d | 与复制符号连接(软连接,快捷方式)有关 |
#案例01 复制/etc/hosts 文件到/tmp下面
[root@lichengbo-xuexi ~]# cp /etc/hosts /tmp/
[root@lichengbo-xuexi ~]# ls -l /etc/hosts /tmp/hosts
-rw-r--r--. 1 root root 158 Jun 7 2013 /etc/hosts
-rw-r--r--. 1 root root 158 Apr 6 21:07 /tmp/hosts
#案例02 复制目录/oldboy到/root下
[root@lichengbo-xuexi ~]# cp /oldboy/ /opt/
cp: omitting directory ‘/oldboy/’
[root@lichengbo-xuexi ~]# ll /opt/
total 0
[root@lichengbo-xuexi ~]# cp -r /oldboy/ /opt/
[root@lichengbo-xuexi ~]# ll /opt/
total 0
drwxr-xr-x. 10 root root 150 Apr 6 21:16 oldboy
#注意事项:企业应用案例:复制多种类型文件的时候,可以加上cp -r,不论是文件或者目录
#案例03 备份
注意:操作前备份,操作后检查
##备份
cp oldboy.txt oldboy.txt.bak
##还原
[root@lichengbo-xuexi oldboy]# cp oldboy.txt.bak oldboy.txt
cp: overwrite ‘oldboy.txt’? y
5.2.8 echo 作用:输出信息到屏幕
#案例01 输出信息到屏幕
[root@lichengbo-xuexi ~]# echo oldboy
oldboy
#案例02 输出有规律的内容1 2 3 4 5 6 。。。100
[root@lichengbo-xuexi ~]# echo oldboy
oldboy
[root@lichengbo-xuexi ~]# echo {1..10}
1 2 3 4 5 6 7 8 9 10
[root@lichengbo-xuexi ~]# echo {a..z}
a b c d e f g h i j k l m n o p q r s t u v w x y z
[root@lichengbo-xuexi ~]# echo oldboy{1..10}
oldboy1 oldboy2 oldboy3 oldboy4 oldboy5 oldboy6 oldboy7 oldboy8 oldboy9 oldboy10
#案例03 {}进阶批量创建文件
[root@lichengbo-xuexi ~]# cd /oldboy/
[root@lichengbo-xuexi oldboy]# echo oldboy{1..10}
oldboy1 oldboy2 oldboy3 oldboy4 oldboy5 oldboy6 oldboy7 oldboy8 oldboy9 oldboy10
[root@lichengbo-xuexi oldboy]# echo oldboy{1..10}.txt
oldboy1.txt oldboy2.txt oldboy3.txt oldboy4.txt oldboy5.txt oldboy6.txt oldboy7.txt oldboy8.txt oldboy9.txt oldboy10.txt
[root@lichengbo-xuexi oldboy]# touch oldboy{1..10}.txt
[root@lichengbo-xuexi oldboy]# ll
total 0
-rw-r--r--. 1 root root 0 Apr 6 21:59 oldboy10.txt
-rw-r--r--. 1 root root 0 Apr 6 21:59 oldboy1.txt
-rw-r--r--. 1 root root 0 Apr 6 21:59 oldboy2.txt
-rw-r--r--. 1 root root 0 Apr 6 21:59 oldboy3.txt
-rw-r--r--. 1 root root 0 Apr 6 21:59 oldboy4.txt
-rw-r--r--. 1 root root 0 Apr 6 21:59 oldboy5.txt
-rw-r--r--. 1 root root 0 Apr 6 21:59 oldboy6.txt
-rw-r--r--. 1 root root 0 Apr 6 21:59 oldboy7.txt
-rw-r--r--. 1 root root 0 Apr 6 21:59 oldboy8.txt
-rw-r--r--. 1 root root 0 Apr 6 21:59 oldboy9.txt
#案例04 {}备份
##输出没有规律的文件
[root@lichengbo-xuexi oldboy]# echo {1,9,10}
1 9 10
[root@lichengbo-xuexi oldboy]# echo oldboy{1,9,10}
oldboy1 oldboy9 oldboy10
##备份
[root@lichengbo-xuexi oldboy]# echo A{B,C}
AB AC
[root@lichengbo-xuexi oldboy]# echo A{,C}
A AC
[root@lichengbo-xuexi oldboy]# echo oldboy.txt{,.backup}
oldboy.txt oldboy.txt.backup
[root@lichengbo-xuexi oldboy]# echo cp oldboy.txt{,.backup}
cp oldboy.txt oldboy.txt.backup
[root@lichengbo-xuexi oldboy]# cp oldboy.txt{,.backup}
- echo小结:
- 用于输出信息到屏幕
- echo+ {}输出有规律的内容
- {}生成序列:数字 字母。linux下面很多命令支持。
5.2.9 vi 作用:编辑器
-
目标:打开,编辑文件,保存。
#案例01 使用vi 编辑/oldboy/oldboy.txt文件 写入内容 oldboyedu.com #第一个里程碑- vi /oldboy/oldbo.txt #第二里程碑-编辑 ##按i进入编辑模式 屏幕下面提示-- INSERT -- 编辑模式 ##就可以修改文件 #第三个里程碑-保存退出 ##按ESC 退出编辑模式 屏幕下面-- INSERT --标记就没了 ##保存与退出 :wq wriet(保存) quit(退出) :q 直接退出 :q! 强制退出 #企业使用建议:编辑文件同时也可以创建文件
5.2.10 rm 删除文件或目录
- ⚠️未来工作环境尽量避免使用删除命令或者类似工具。
选项 | ||
---|---|---|
基本用法:rm 文件或目录 | ||
-f | force强制删除不提示 | |
-r | ⚠️极其凶险,递归删除目录 |
#案例01 删除文件/oldboy/oldboy.txt
[root@lichengbo-xuexi oldboy]# touch lidao996.txt
[root@lichengbo-xuexi oldboy]# ll
total 0
-rw-r--r--. 1 root root 0 Apr 6 22:39 lidao996.txt
[root@lichengbo-xuexi oldboy]# rm -f /oldboy/lidao996.txt
[root@lichengbo-xuexi oldboy]#
#案例02 删除目录(极其凶险)
[root@lichengbo-xuexi ~]# rm -rf /oldboy/
#企业生产建议:-rf选项可以放在最后再加。 rm /oldboy/ -rf
5.2.11 tree 以树形结构显示目录
需要通过yum install -y tree 安装
#案例01 以树形结构显示/etc/
tree /etc
5.2.12 cat 显示文件内容
选项 | |
---|---|
-n | 显示行号 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人