一、命令行基础
1. 命令行的格式
命令字 [选项]… [参数1] [参数2]…
[ ] 表示里面的内容可有可无
在执行一个命令的时候,命令字必须存在,选项和参数可有可无
命令字 选项 参数之间必须有空格
选项:用来调控执行方式
单个字符一般用-
单词一般用–
eg:
[root@server0 ~]# ls
[root@server0 ~]# ls -l
[root@server0 ~]# ls -lh
[root@server0 ~]# ls --help
[root@server0 ~]# ls -ld /home
[root@server0 ~]# ls -ld /home /root
2.快捷键编辑
tab键功能:
命令或者路径的补齐,如果输入的内容唯一标识某一个命令或者路径,tab一次会自动补齐。如果不唯一则tab2次显示出以输入内容开头的所有的命令或者路径
快捷键
Ctrl + l 清空整个屏幕
Ctrl + c 废弃当前编辑的命令行
Esc+. 粘贴上一个命令的参数
二.mount挂载
挂载
将光盘/U盘/分区/网络存储等设备装到某个Linux目录,通过访问这个目录来操作设备上的文档
mount 设备 挂载点(一定是目录)
卸载
umount 设备
umount 挂载点
Linux下的光驱设备
/dev/sr0
/dev/cdrom
eg:访问centos7安装镜像文件内容
1.把centos7镜像放入光驱
点击虚拟机图形的查看/详情/,找到IDE CDROM1,选择连接。选择ISO映像位置,浏览/iso/CentOS7-1804.iso/选择卷/确定
2.mount命令挂载
[root@localhost ~]# ls /mnt/
[root@localhost ~]# mount /dev/cdrom /mnt/
3.验证是否挂载成功
[root@localhost ~]# ls /mnt/
4.umount命令卸载
[root@localhost ~]# umount /dev/cdrom
或者
[root@localhost ~]# umount /mnt
5.验证是否卸载成功
[root@localhost ~]# ls /mnt/
注意事项:
1.卸载不要在当前的挂载点(访问点)目录下
[root@localhost ~]# cd /mnt
[root@localhost mnt]# umount /mnt
umount: /dvd:目标忙。
2.挂载允许一个设备具备多个挂载点(访问点)
3.不允许多个设备挂载到一个挂载点(访问点)
三.目录和文件管理
1. cd ~user 表示进入用户user的家目录
2. ls 列出文档及属性
-l 以长格式显示,显示目录内容的详细属性
-A 包括名称以 . 开头的隐藏文档
-d 显示目录本身(而不是内容)的属性
-h 提供易读的容量单位(K、M等)
eg:
[root@localhost ~]# cd ~
[root@localhost ~]# pwd
[root@localhost ~]# ls /root/
[root@localhost ~]# mkdir ~/day03
[root@localhost ~]# ls /root/
[root@localhost ~]# cd ~/day03/
[root@localhost day03]# pwd
[root@localhost day03]# cd ~root
[root@localhost ~]# pwd
备注:
~后面接/的表示的是路径
~后面不是接/的表示是用户
[root@localhost ~]# cd
[root@localhost ~]# ls
[root@localhost ~]# ls /root
[root@localhost ~]# ls -l /root //显示目录内容的详细属性
[root@localhost ~]# ls -ld /root //显示目录本身的详细属性
[root@localhost ~]# ls -lh /root
[root@localhost ~]# ls -l /dev/cdrom //显示文件详细属性
[root@localhost ~]# ls -l /etc/passwd
[root@localhost ~]# ls -lh /etc/passwd
[root@localhost ~]# ls /root
[root@localhost ~]# ls -A /root
3. 使用通配符
针对不确定的文档名称,以特殊字符表示
* 匹配0到任意个字符
? 单个字符
eg:
[root@localhost ~]# ls /boot
[root@localhost ~]# ls /boot/vm* //以vm开头
[root@localhost ~]# ls /root/a* //以a开头
[root@localhost ~]# ls /dev/tty* //以tty开头
[root@localhost ~]# ls /etc/*tab //以tab结尾
[root@localhost ~]# ls /etc/*.conf //以.conf结尾
[root@localhost ~]# ls /etc/r*.conf //以r开头并且.conf结尾
[root@localhost ~]# ls /etc/*passwd*
[root@localhost ~]# ls /dev/tty?
[root@localhost ~]# ls /dev/tty??
[a-z] 多个字符或连续范围中的一个,若无则忽略
{a,min,xy} 多组不同的字符串,全匹配
eg:
[root@localhost ~]# ls /dev/tty[3-8]
[root@localhost ~]# ls /dev/tty[0-9]
[root@localhost ~]# ls /dev/tty{1,3,5,7,9}
[root@localhost ~]# ls /dev/tty{1,3,5,7,9,23}
[root@localhost ~]# ls /dev/tty{1,3,S0,S1}
[root@localhost ~]# ls /dev/tty{1,3,S0,haha}
4.别名的定义
alias 查看已设置的别名
alias 别名名称=‘实际执行的命令行’ 定义新的别名
unalias [别名名称] 取消已设置的别名
eg:
[root@localhost ~]# hostname
localhost.localdomain
[root@localhost ~]# hn
bash: hn: 未找到命令...
[root@localhost ~]# alias hn='hostname' //定义别名
[root@localhost ~]# hn //运行别名测试
[root@localhost ~]# alias //查看当前系统有效的别名
[root@localhost ~]# unalias hn //删除别名
[root@localhost ~]# hn
bash: hn: 未找到命令...
红帽练习题
[root@localhost ~]# alias qstat='/bin/ps -Ao pid,tt,user,fname,rsz',
[root@localhost ~]# qstat
5. mkdir 创建目录
-p 创建父目录
ls
-R 递归:目录本身以及目录下所有
[root@localhost ~]# ls /opt
[root@localhost ~]# mkdir /opt/nsd01
[root@localhost ~]# ls /opt/
[root@localhost ~]# mkdir /opt/nsd02 /opt/nsd03
[root@localhost ~]# ls /opt/
[root@localhost ~]# mkdir /vod/movie/cartoon
[root@localhost ~]# ls -R /vod
[root@localhost ~]# mkdir -p /vod/movie/cartoon
[root@localhost ~]# ls -R /vod
6.grep针对文本文件内容进行过滤,输出包含指定字符串的行
-v 取反匹配
-i 忽略大小写
显示文件的有效配置
grep -v ^$ 文件 | grep -v ^#
eg:
[root@localhost /]# grep root /etc/passwd #显示/etc/passwd文件中包含root的行
[root@localhost /]# grep -v root /etc/passwd #显示/etc/passwd文件中不包含root的行
[root@localhost /]# grep ROOT /etc/passwd #显示/etc/[passwd文件中包含ROOT的行
[root@localhost /]# grep -i ROOT /etc/passwd #忽略大小写,显示/etc/passwd文件中包含ROOT的行
[root@localhost /]# grep ^root /etc/passwd #显示/etc/passwd文件中以root开头的行
[root@localhost /]# grep root$ /etc/passwd #显示/etc/passwd文件中以root结尾的行
[root@localhost /]# grep bash$ /etc/passwd #显示/etc/passwd文件中以bash为结尾的行
7.复制
格式:
cp [选项]… 原文件… 目标路径
-r 递归,复制目录时必须有此选项
eg:
[root@localhost ~]# ls /tmp/bak
[root@localhost ~]# mkdir /tmp/bak
[root@localhost ~]# ls /tmp/bak
[root@localhost ~]# cp /etc/passwd /tmp/bak
[root@localhost ~]# ls /tmp/bak
[root@localhost ~]# cp /home/ /tmp/bak
[root@localhost ~]# ls /tmp/bak
[root@localhost ~]# cp -r /home/ /tmp/bak
[root@localhost ~]# ls /tmp/bak
//可以支持两个以上的参数,永远将最后一个参数做目标,其他所有参数作为源
[root@localhost ~]# ls /tmp/bak
[root@localhost ~]# cp -r /etc/hosts /etc/fstab /boot/ /tmp/bak
[root@localhost ~]# ls /tmp/bak
//cp经常与点 . 连用,将数据复制到当前路径下
. 表示当前目录
[root@localhost ~]# cd /tmp/bak
[root@localhost bak]# pwd
[root@localhost bak]# ls
[root@localhost bak]# cp /etc/shadow .
[root@localhost bak]# ls
//复制到目标路径下,可以重新命名
[root@localhost /]# ls /tmp/bak
[root@localhost /]# cp /etc/passwd /tmp/bak
[root@localhost /]# ls /tmp/bak
[root@localhost /]# cp /etc/passwd /tmp/bak/pd
[root@localhost /]# ls /tmp/bak
[root@localhost /]# cp -r /home/ /tmp/bak/abc
[root@localhost /]# ls /tmp/bak
8.rm 删除
格式:rm [选项]… 文件或目录…
-r 递归删除(含目录)
-f 强制删除
eg:
[root@localhost ~]# rm /tmp/bak/abc
[root@localhost ~]# rm -r /tmp/bak/abc
//试了几次不耐烦可以ctrl+c
[root@localhost ~]# rm -rf /tmp/bak/abc
[root@localhost ~]# ls /tmp/bak
[root@localhost ~]# rm -rf /tmp/bak
[root@localhost ~]# ls /tmp/
9.mv 移动/改名
格式: mv [选项]… 原文件… 目标路径
eg:
[root@localhost ~]# ls /tmp/nsd01
[root@localhost ~]# mkdir /tmp/nsd01
[root@localhost ~]# ls /tmp/nsd01
[root@localhost ~]# touch /tmp/1.txt
[root@localhost ~]# ls /tmp/
[root@localhost ~]# mv /tmp/1.txt /tmp/nsd01/
[root@localhost ~]# ls /tmp/
[root@localhost ~]# ls /tmp/nsd01/
//重命名:路径不变的移动
[root@localhost ~]# mv /tmp/nsd01/ /tmp/haha01
[root@localhost ~]# ls /tmp/
[root@localhost ~]# mv /tmp/haha01/ /tmp/stu01
[root@localhost ~]# ls /tmp/