]# hostname
]# which hostname #查询命令对应的程序
]# ls /usr/bin/hostname
]# which ifconfig #查询命令对应的程序
]# firefox
]# which firefox #查询命令对应的程序
命令的执行依赖于解释器(默认解释器/bin/bash)
用户--->解释器(shell)--->内核--->硬件
绿色:可以执行的程序
shell:壳 解释器
-
命令行完整格式:
命令字 [选项]… [参数1] [参数2]…
打 武器 王凯老师 .......
]# cat --help #查看命令帮助信息
]# cat -n /etc/shells #显示行号
]# cat -n /etc/passwd
]# cat -n /etc/redhat-release
]# cat -n /etc/fstab
]# ls -l /etc/passwd #长格式显示
]# ls -l /etc/fstab #显示详细属性
]# ls -l /etc/shells
]# ls -l /root #默认显示目录内容的详细属性
-
Tab键自动补全
可补齐命令字、选项、参数、文件路径、软件名、服务名
]# if(tab) (tab) #列出以if开头的命令
]# ifco(tab)
]# cat /etc/re(tab) (tab)
]# cat /etc/red(tab)
]# ls /etc/sysconfig/network-scripts/
]# ls /et(tab)/sysco(tab)/netw(tab)- (tab)
- 快捷键
- Ctrl + c:结束正在运行的命令
- Esc+.或Alt+.:粘贴上一个命令的参数
[root@localhost ~]# ls /etc/hosts
[root@localhost ~]# ls -l Alt + .
[root@localhost ~]# cat Alt + .
[root@localhost ~]# cat -n Alt + .
-
- Ctrl + l:清空整个屏幕
- Ctrl + u:从光标处清空至行首
- Ctrl + w:往回删除一个单词(以空格界定)
通过光盘获得,具有众多的软件包
通过虚拟光驱设备,读取光盘镜像文件内容
1.图形操作:将光盘镜像文件放入到光驱设备
2.寻找Linux系统中,虚拟机的光驱设备
/dev/cdrom ----> /dev/sr0
访问点(媒介)自行创建
从光盘内容中获得众多的软件包
思路:
光盘镜像文件---》虚拟的光驱设备---》访问点(目录)
光盘镜像文件中软件包
首先将光盘镜像文件,放入虚拟机的光驱设备
光盘镜像文件---》光驱设备---》访问点(目录)
[root@svr1 /]# ls /dev/sr0
/dev/sr0
[root@svr1 /]# ls /dev/cdrom
/dev/cdrom
[root@svr1 /]# ls -l /dev/cdrom
lrwxrwxrwx. 1 root root 3 5月 5 09:03 /dev/cdrom -> sr0
Windows显示光盘内容:
光盘---->光驱设备---->DVD驱动器(图标)
Linux显示光盘内容:
光盘---->光驱设备---->访问点(目录)
/dev/cdrom
mount挂载操作:让目录成为设备的访问点
命令行显示光盘内容
Windows:
光盘--->光驱设备--->CD驱动器(图标)
Linux:
光盘--->光驱设备--->访问点(目录)
Linux:将光盘镜像文件放入虚拟光驱设备中
Windows:将光盘镜像文件放入虚拟光驱设备中
2.查看Linux光驱设备
[root@localhost ~]# ls -l /dev/cdrom
[root@localhost ~]# ls /dev/sr0
3.挂载操作
- 使用mount命令
格式:mount 设备路径 挂载点目录
]# mkdir /dvd
]# ls /dvd #显示内容为空
]# mount /dev/cdrom /dvd
mount: /dev/sr0 写保护,将以只读方式挂载
]# ls /dvd/
CentOS_BuildTag LiveOS
EFI Packages
EULA repodata
GPL RPM-GPG-KEY-CentOS-7
images RPM-GPG-KEY-CentOS-Testing-7
isolinux TRANS.TBL
]# ls /dvd/P(Tab键)
4.卸载操作
]# umount /dvd
]# ls /dvd/ #显示内容为空
]# mkdir /mydvd
]# mount /dev/cdrom /mydvd
mount: /dev/sr0 写保护,将以只读方式挂载
]# ls /mydvd
注意事项:
1.卸载:当前所在的路径是挂载点目录
[root@localhost mydvd]# umount /mydvd
umount: /mydvd:目标忙。
(有些情况下通过 lsof(8) 或 fuser(1) 可以
找到有关使用该设备的进程的有用信息)
2.挂载允许一个设备,挂载到不同的挂载点目录
3.挂载不允许一个挂载点目录,挂载多个设备
4.建议挂载点目录,最好自行创建
目录与文件管理
- cd的命令使用
. 当前目录
.. 父目录(上一层)
~ 表示用户的家目录
家目录:专门存放用户个性化信息的目录
~user:用户user的家目录
/root:Linux管理员的家目录
/home:存放所有普通用户的家目录
]# cd ~root #去往root用户的家目录
]# pwd
]# useradd dc #创建用户dc
]# cd ~dc #去往dc用户的家目录
]# pwd
]# useradd tom #创建用户tom
]# cd ~tom #去往tom用户的家目录
]# pwd
- ls — List
- 格式:ls [选项]... [目录或文件名]
- 常用命令选项
-l:以长格式显示,显示详细信息
-h:提供易读的容量单位(K、M等)
-d:显示目录本身(而不是内容)的属性
[root@localhost /]# ls -ld /home
[root@localhost /]# ls -ld /root
[root@localhost /]# ls -ld /
[root@localhost /]# ls -l /etc/passwd
[root@localhost /]# ls -lh /etc/passwd
-A:显示所有内容,包含隐藏数据
-R:递归显示目录内容
[root@localhost /]# ls -A /root
[root@localhost /]# touch /opt/.nsd.txt
[root@localhost /]# ls /opt/
[root@localhost /]# ls -A /opt/
[root@localhost /]# ls -R /opt/
- 使用通配符
- 针对不确定的文档名称,以特殊字符表示
*:任意多个任意字符
[root@localhost /]# ls /root/a*
[root@localhost /]# ls /boot/vm*
[root@localhost /]# ls /etc/*tab
[root@localhost /]# ls /etc/*.conf
[root@localhost /]# ls /etc/re*.conf
[root@localhost /]# ls /dev/tty*
[root@localhost /]# ls -d /etc/r*
[root@localhost /]# ls -d /etc/*as*
?:单个字符
[root@localhost /]# ls /etc/??tab
[root@localhost /]# ls /dev/tty?
[root@localhost /]# ls /dev/tty??
正则表达式:以描述的语言,表达心中所想
[a-z]:多个字符或连续范围中的一个,若无则忽略
{a,min,xy}:多组不同的字符串,全匹配
]# ls /dev/tty[3-9]
]# ls /dev/tty[1-7]
]# ls /dev/tty{1,17,20}
]# ls /dev/tty{10,18,22,33}
]# ls /dev/tty{26,19,21,30,40}
]# ls /etc/{rw,fs}tab
-
别名的定义:简化复杂的命令
- 查看已设置的别名
alias [别名名称]
- 定义新的别名
alias 别名名称= '实际执行的命令行'
- 取消已设置的别名
unalias [别名名称]
]# hostname
]# alias hn='hostname' #临时定义别名
]# hn
]# alias #查看系统中有哪些别名
]# unalias hn #删除hn别名
]# hn
bash: hn: 未找到命令...
]# alias myls='ls -l'
]# myls /etc/passwd
-
mkdir — Make Directory
格式:mkdir [/路径/]目录名…
[-p]:连同父目录一并创建
]# mkdir -p /opt/aa/bb/cc/dd
]# ls -R /opt/aa #递归显示目录内容
]# mkdir -p /nsd04/test04
]# ls -R /nsd04
-
rm 删除 Remove
格式:rm [选项]... 文件或目录…
常用命令选项
-r、-f:递归删除(含目录)、强制删除
]# ls /opt
]# rm -rf /opt/1.txt
]# ls /opt
]# rm -rf /opt/aa
]# ls /opt
-
mv — Move移动:源数据会消失
格式:mv 原文件… 目标路径
]# mkdir /opt/nsd01
]# touch /opt/1.txt
]# ls /opt/
]# mv /opt/1.txt /opt/nsd01
]# ls /opt/
]# ls /opt/nsd01
重命名:路径不变的移动
]# ls /opt/
]# mv /opt/nsd01 /opt/abc
]# ls /opt/
]# mv /opt/abc /opt/student
]# ls /opt/
]# mv /opt/student /mnt/stu01
]# ls /mnt/
-
cp — Copy:源数据不会消失
格式:cp [选项]... 原文件… 目标路径
- 常用命令选项
-r:递归,复制目录时必须有此选项
]# cp /etc/passwd /opt
]# ls /opt
]# cp -r /boot /opt
]# ls /opt
]# cp -r /home /opt
]# ls /opt
- 进行强制覆盖
]# \cp -r /boot /opt #本次操作临时取消别名
]# \cp -r /boot /opt #本次操作临时取消别名
- 复制可以重新命名,目标路径下数据的名称
]# cp -r /home /opt/myhome
]# ls /opt
]# cp /etc/redhat-release /opt/r.txt
]# ls /opt
]# ls /opt
]# cp -r /root /opt/myroot
]# ls /opt
]# cp -r /root /opt/myroot
]# ls /opt/myroot
- 复制可以支持两个以上的参数,永远把最后一个参数作为目标,其他的所有的参数都作为源数据
[root@localhost /]# mkdir /nsd05
[root@localhost /]# ls /nsd05
[root@localhost /]# cp -r /home /boot /etc/passwd /etc/shells /nsd05
[root@localhost /]# ls /nsd05
- 复制与一个点进行连用,将数据复制到当前路径下
]# cd /etc/sysconfig/network-scripts/
]# pwd
]# cp /etc/passwd .
]# ls
-
grep在文本文件内容中,过滤包含指定字符串的行
格式:grep [选项] '字符串' 文本文件...
[root@svr1 /]# grep root /etc/passwd
[root@svr1 /]# grep bash /etc/passwd
[root@svr1 /]# grep lisi /etc/passwd
[root@svr1 /]# grep zhangsan /etc/passwd
- 常用命令选项
-v,取反匹配(不包含)
-i,忽略大小写
]# grep root /etc/passwd
]# grep -v root /etc/passwd
]# grep ROOT /etc/passwd
]# grep -i ROOT /etc/passwd
^word 以字符串word开头
word$ 以字符串word结尾
]# grep ^root /etc/passwd
]# grep ^bin /etc/passwd
]# grep root$ /etc/passwd
]# grep bash$ /etc/passwd
^$ 表示空行
]# cat /etc/default/useradd
]# grep ^$ /etc/default/useradd #过滤空行
]# grep -v ^$ /etc/default/useradd #过滤不要空行的内容
归档及压缩
作用:1.减小占用空间大小 2.整合分散的数据
- 归档的含义
将许多零散的文件整理为一个文件,文件总的大小基本不变
- 压缩的含义
按某种算法减小文件所占用空间的大小,恢复时按对应的逆向算法解压
- 常见的压缩格式及命令工具:
.gz -- gzip
.bz2 -- bzip2
.xz -- xz
-
tar 集成备份工具
-c:创建归档
-x:释放归档
-f:指定归档文件名称,必须在所有选项的最后
-z、-j、-J:调用 .gz、.bz2、.xz 格式工具进行处理
-t:显示归档中的文件清单
-C:指定释放路径
-
tar 制作压缩包(tar打包)
格式:tar 选项 /路径/压缩包名字 /源数据…….
-c:创建 -f:指定压缩包名字(必须在所有选项最后)
-z、-j、-J:调用 .gz、.bz2、.xz 格式工具进行处理
]# tar -zcf /root/xixi.tar.gz /etc/passwd /home
]# ls /root
]# tar -jcf /root/haha.tar.bz2 /etc/passwd /home
]# ls /root
]#tar -Jcf /root/hehe.tar.xz /etc/passwd /home
]# ls /root
-
tar 释放压缩包(tar解包)
tar 选项 /路径/压缩包名字 选项 /释放的位置
-x:释放归档
-f:指定归档文件名称,必须在所有选项的最后
-C:指定释放路径
]# tar -tf /root/haha.tar.bz2 #查看tar包内容
]# mkdir /nsd10
]# tar -xf /root/haha.tar.bz2 -C /nsd10
]# ls /nsd10
]# ls /nsd10/etc
]# ls /nsd10/home
案例1:创建一个备份包
使用 tar 工具完成以下备份任务:
创建一个名为 /root/backup.tar.bz2 的归档文件
其中包含 /usr/local 目录中的内容
tar 归档必须使用 bzip2 进行压缩
]# tar -jcf /root/backup.tar.bz2 /usr/local/
]# ls /root/
]# tar -tf /root/backup.tar.bz2 #查看tar包内容
重定向(重新定向命令的输出)
将前面命令的输出,作为内容,写入到后面的文件
>:覆盖重定向
>>:追加重定向
[root@A /]# head -5 /etc/passwd > /opt/p.txt
[root@A /]# cat /opt/p.txt
[root@A /]# hostname
[root@A /]# hostname >> /opt/p.txt
[root@A /]# cat /opt/p.txt
]# echo 123456
]# echo 123456 > /opt/p.txt
]# cat /opt/p.txt
]# cat /etc/hostname
]# echo nb.tedu.cn > /etc/hostname
]# cat /etc/hostname
]# cat /opt/p.txt
]# > /opt/p.txt #清空文件内容
]# cat /opt/p.txt
管道(操作符号 | )
作用:将前面命令的输出,传递给后面命令,作为后面命令的参数
]# head -4 /etc/passwd | tail -1
]# head -8 /etc/passwd | tail -1
]# cat -n /etc/passwd | head -8 | tail -1
]# ifconfig | head -2
显示8~12行内容
]# head -12 /etc/passwd | tail -5
]# head -12 /etc/passwd | tail -5 | cat -n
]# cat -n /etc/passwd | head -12
]# cat -n /etc/passwd | head -12 | tail -5
]# cat -n /etc/passwd | head -12 | tail -5 > /opt/pa.txt
]# cat /opt/pa.txt
grep高级使用
作用:从文本文件内容中,过滤关键字符串
]# grep root /etc/passwd
]# grep -v root /etc/passwd #取反匹配
]# grep ^root /etc/passwd #以root开头
]# grep bash$ /etc/passwd #以bash结尾
^$:表示空行,专门与-v选项连用,过滤不要空行
]# cat /etc/default/useradd
]# grep -v ^$ /etc/default/useradd
Linux中大多数配置文件内容,以#开头的行为注释行
显示配置文件有效信息(去除以#开头的注释行和去除空行)
]# grep -v ^# /etc/login.defs
]# grep -v ^# /etc/login.defs | grep -v ^$
]# grep -v ^# /etc/login.defs | grep -v ^$ > /opt/log.txt
]# cat /opt/log.txt
-
过滤命令的输出
]# ifconfig | grep inet
]# ifconfig | grep 127
]# ifconfig | less #方便查看
find精确查找
格式:find [目录] [条件1]
-
- 常用条件表示:
-type 类型(f文件、d目录、l快捷方式)
-name "文档名称"
-size +|-文件大小(k、M、G)
-user 用户名
-mtime 修改时间
-
-type 类型(f文本文件、d目录、l快捷方式)
[root@A /]# find /boot -type d
[root@A /]# find /opt -type d
[root@A /]# find /etc -type l
[root@A /]# find /boot -type f
[root@A /]# find /boot -type d | cat -n
[root@A /]# find /opt -type d | cat -n
[root@A /]# find /etc -type l | cat -n
[root@A /]# find /boot -type f | cat -n
[root@A /]# find /boot -type d | wc -l
[root@A /]# find /opt -type d | wc -l
[root@A /]# find /etc -type l | wc -l
[root@A /]# find /boot -type f | wc -l
-
-name "文档名称"
]# find /etc -name "passwd"
]# find /etc -name "*tab"
]# find /etc -name "*.conf"
]# find /etc/ -name "*tab" | wc -l
]# find /etc/ -name "*.conf" | wc -l
]# find /etc/ -name "*.conf" | cat -n
]# mkdir /mnt/cbd01
]# mkdir /mnt/cbd02
]# touch /mnt/cbd03.txt
]# find /mnt/ -name "cbd*"
]# find /mnt/ -name "cbd*" -type d
]# find /mnt/ -name "cbd*" -type f
-
-size +或- 文件大小(k、M、G)
]# find /boot/ -size +300k
]# find /boot/ -size +10M
]# find /boot/ -size +1M
]# find /boot/ -size +10M -size -50M
-
-user 用户名 (按照数据的所有者)
[root@A /]# useradd natasha #创建用户
[root@A /]# find /home -user natasha
[root@A /]# find / -user natasha
/proc:内存的数据,不占用硬盘空间
-
-mtime 修改时间 (所有的时间都是过去时间)
-mtime +90 #90天之前的数据
-mtime -90 #最近90天之内的数据
三个月之前的数据:
[root@A /]# find /var -mtime +90
最近10天之内的数据:
[root@A /]# find /root -mtime -10
find高级使用
处理find找到的数据,每查找的一个就传递一次
-
- find [范围] [条件] -exec 处理命令 {} \;
-exec额外操作的开始
{} 永远表示前面find查找的结果
\; 额外操作的结束
]# find /boot -size +10M
]# find /boot -size +10M -exec cp {} /mnt \;
]# ls /mnt/
]# mkdir /root/mytab
]# find /etc -name "*tab" -type f
]# find /etc -name "*tab" -type f
-exec cp {} /root/mytab \;
]# ls /root/mytab
案例2:查找并处理文件
- 利用find查找,数据的所有者为 student,并且必须是文件,把它们拷贝到 /root/findfiles/ 文件夹中
]# useradd student #创建普通用户student
]# mkdir /root/findfiles
]# find / -user student -type f
]# find / -user student -type f -exec cp {} /root/findfiles \;
]# ls -A /root/findfiles/ #-A显示隐藏数据
vim编辑技巧
当文件不存在,则自动新建,vim不能新建目录
三个模式:命令模式 插入模式(输入模式) 末行模式
[root@localhost ~]# vim /opt/nsd.txt
命-------i键 或 o键---------》插入模式(按Esc键回到命令模式)
令
模
式------输入英文的冒号 ":"-----》末行模式(按Esc键回到命令模式)
末行模式 输入 :wq #保存并退出
末行模式 输入 :q! #强制不保存退出
- 命令模式操作
- 光标跳转
]# cp /etc/passwd /opt/pass.txt
]# vim /opt/pass.txt
操作类型 | 按键指令 | 用 途 |
移动光标 | 上、下、左、右 | 上、下、左、右 |
光标行内跳转 | Home 键 或 ^、数字 0 | 跳转到行首 |
End 键 或 $ 键 | 跳转到行尾 | |
全文翻页 | Page Up 键、 Page Down 键 | 向上翻页、向下翻页 |
光标行间跳转 | 1G 或 gg | 跳转到文件的首行 |
G | 跳转到文件的末尾行 |
- 复制/粘贴/删除
操作类型 | 按键指令 | 用 途 |
复制 | yy、3yy | 复制光标处的一行、3行 |
粘贴 | p、P | 粘贴到光标处之后、之前 |
删除 | x 或 Delete键 | 删除光标处的单个字符 |
dd、3dd | 删除光标处的一行、3行 | |
d^ | 从光标处之前删除至行首 | |
d$或D(大写) | 从光标处删除到行尾 |
小写的u为 撤销
- 查找/撤销/保存
操作类型 | 按键指令 | 用 途 |
文本查找 | /a | 向后查找字符串“a” |
n、N | 跳至后/前一个结果 | |
撤销编辑 | u | 撤销最近的一次操作 |
U | 撤销对当前行的所有修改 | |
Ctrl + r | 取消前一次撤销操作 | |
保存退出 | ZZ(大写) | 保存修改并退出 |
- 末行模式操作
:r /etc/filesystems | 读入其他文件内容 |
]# echo 123456 > /opt/aa.txt
]# echo hahaxixi > /opt/cc.txt
]# vim /opt/cc.txt
末行模式下 :r /opt/aa.txt
末行模式下 :r /etc/passwd
末行模式下 :r /etc/shells
- 字符串替换
操作类型 | 设置指令 | 用 途 | |
行内替换 | :s/root/new | 替换光标所在行第一个“root” | |
:s/root/new/g | 替换光标所在行所有的“root” | ||
区域内替换 | :1,10s/root/new/g | 替换第1-10行所有的“root” | |
:%s/root/new/g | 替换文件内所有的“root” |
]# cp /etc/passwd /opt/s.txt
]# vim /opt/s.txt
- 开关参数的控制
操作类型 | 设置指令 | 用 途 |
编辑器设置 | :set nu或nonu | 显示/不显示行号 |
:set ai或noai | 启用/关闭自动缩进 |
]# vim /opt/h.txt
:set ai
- vim常见故障:删除交换文件
[root@svr1 ~]# echo hahaxixi > /opt/dd.txt
[root@svr1 ~]# vim /opt/dd.txt
[root@svr1 ~]# rm -rf /opt/.dd.txt.swp
[root@svr1 ~]# vim /opt/dd.txt
-
date命令查看时间与修改时间
[root@localhost ~]# date
2022年 06月 06日 星期一 17:31:11 CST
[root@localhost ~]# date -s "2008-9-1 12:10:18"
2008年 09月 01日 星期一 12:10:18 CST
[root@localhost ~]# date
[root@localhost ~]# date -s "2022-7-5 17:15:18"
[root@localhost ~]# date
- bc计算器