一、Linux命令行基础
- Linux命令是用来实现某一类功能的指令或程序,在Linux中执行大多数命令时,都要找到命令所对应的程序
[root@server1 ~]# hostname #查询主机名
localhost
[root@server1 ~]#which hostname #查询命令对应的程序
/usr/bin/hostnamet
- 命令的执行依赖于解释器(默认解释器/bin/bash)
- 用户—>解释器—>内核—>硬件
- 命令行完整格式:
- 命令字 (选项)… (参数1) ( 参数2)…
[root@server1 ~]# cat --help #查看命令帮助信息
...
[root@server1 ~]# cat -n /etc/shells
1 /bin/sh
2 /bin/bash
3 /usr/bin/sh
4 /usr/bin/bash
[root@server1 ~]# ls -l /etc/passwd #长格式显示
-rw-r--r--. 1 root root 2319 Nov 29 2020 /etc/passwd
#默认显示目录内容的详细属性
计算机容量单位:
一般用B,KB,MB,GB,TB,PB,EB,ZB,YB,BB来表示,它们之间的关系是:
1KB (Kilobyte 千字节)=1024B;1MB (Megabyte 兆字节 简称“兆”)=1024KB;1GB (Gigabyte 吉字节 又称“千兆”)=1024MB;1TB (Terabyte 万亿字节 太字节)=1024GB;1PB (Petabyte 千万亿字节 拍字节)=1024TB;1EB (Exabyte 百亿亿字节 艾字节)=1024PB;
- Tab键自动补全
- 可补齐命令字、选项、参数、文件路径、软件名、服务名
[root@server1 ~]# if(tab) (tab) #列出以if开头的命令
if ifcfg ifconfig ifdown ifenslave ifstat ifup
[root@server1 ~]# ifco(tab)
[root@server1 ~]# cat /etc/re(tab)(tab)
redhat-release request-key.conf request-key.d/ resolv.conf
[root@server1 ~]# cat /etc/re(tab)
[root@server1 ~]# ls /etc/sysconfig/network-scripts/
ifcfg-eth0 ifcfg-privbr0
[root@server1 ~]#ls /et(tab)/sysco(tab)/netw(tab)- (tab)
-
快捷键
- Ctrl + c:结束正在运行的命令
- Esc+.或Alt+.:粘贴上一个命令的参数
[root@server1 ~]# ls /etc/hosts /etc/hosts [root@server1 ~]# ls -l /etc/hosts -rw-r--r--. 1 root root 782 Nov 24 2020 /etc/hosts [root@server1 ~]# cat /etc/hosts ... [root@server1 ~]# cat -n /etc/hosts 1 127.0.0.1 localhost localhos... ...
- Ctrl + l:清空整个屏幕
- Ctrl + u:从光标处清空至行首
- Ctrl + w:往回删除一个单词(以空格界定)
Linux虚拟机安装软件:
光盘镜像文件—>虚拟的光驱设备—>访问点(目录)
二、mount挂载
1、查看Linux光驱设备
[root@server1 ~]# ls -l /dev/cdrom
lrwxrwxrwx. 1 root root 3 Feb 3 22:21 /dev/cdrom -> sr0
[root@server1 ~]# ls -l /dev/sr0
brw-rw----+ 1 root cdrom 11, 0 Feb 3 22:21 /dev/sr0
2、挂载操作
-
使用mount命令
- 格式:mount 设备路径 挂载点目录
[root@server1 ~]# mkdir /dvd
[root@server1 ~]# ls /dvd
[root@server1 ~]# mount /dev/cdrom /dvd/
mount: /dev/sr0 写保护,将以只读方式挂载
-
常见错误:
-
没有将光盘镜像文件,放入光驱设备
-
光驱设备没有连接
-
[root@server1 ~ ]# mount /dev/cdrom /nsd01
mount: 在 /dev/sr0 上找不到媒体
3、卸载操作
[root@server1 ~ ]# umount /dvd #卸载
[root@server1 ~ ]# ls /dvd/
[root@server1 ~ ]# mkdir /mydvd
[root@server1 ~ ]# mount /dev/cdrom /mydvd
mount: /dev/sr0 写保护,将以只读方式挂载
[root@server1 ~ ]# ls /mydvd
注意事项:
1.卸载:当前所在的路径是挂载点目录
[root@localhost mydvd]# umount /mydvd
umount: /mydvd:目标忙。
(有些情况下通过 lsof(8) 或 fuser(1) 可以
找到有关使用该设备的进程的有用信息)
2.挂载允许一个设备,挂载到不同的挂载点目录
3.不允许一个挂载点目录,挂载多个不同设备
4.建议挂载点目录,最好自行创建
三、目录与文件管理
-
使用通配符
-
针对不确定的文档名称,以特殊字符表示
*: 任意多个任意字符
?:单个字符
-
[root@server1 ~]# ls /boot/vm*
/boot/vmlinuz-0-rescue-cf9b054dab8a48c29f233ab8340cb874
/boot/vmlinuz-4.18.0-193.el8.x86_64
[root@server1 ~]# ls /etc/*tab
/etc/anacrontab /etc/crontab /etc/crypttab /etc/fstab /etc/inittab /etc/mtab
[root@server1 ~]# ls /etc/??tab
/etc/fstab
【a-z】:多个字符或连续范围中的一个,若无则忽略
{a,min,xy}: 多组不同的字符串,全匹配
[root@server1 ~]# ls /dev/tty[3-9]
/dev/tty3 /dev/tty4 /dev/tty5 /dev/tty6 /dev/tty7 /dev/tty8 /dev/tty9
[root@server1 ~]# ls /dev/tty[1-7]
/dev/tty1 /dev/tty2 /dev/tty3 /dev/tty4 /dev/tty5 /dev/tty6 /dev/tty7
[root@server1 ~]# ls /dev/tty{1,17,20}
/dev/tty1 /dev/tty17 /dev/tty20
[root@server1 ~]# ls /etc/{cron,fs}tab
/etc/crontab /etc/fstab
- 别名的定义:简化复杂的命令
- 查看已设置的别名 - alias [别名名称]
- 定义新的别名 - alias 别名名称= ‘实际执行的命令行’
- 取消已设置的别名 - unalias [别名名称]
[root@server1 ~]# hostname
server1
[root@server1 ~]# alias hn='hostname'
[root@server1 ~]# alias
alias hn='hostname'
...
[root@server1 ~]# hn
server1
[root@server1 ~]# unalias hn
[root@server1 ~]# hn
bash: hn: 未找到命令...
-
mkdir — Make Directory
-
格式:mkdir [/路径/]目录名…
[-p]:连同父目录一并创建
-
[root@server1 ~]# mkdir -p /opt/aa/bb/cc
[root@server1 ~]# ls /opt/aa
bb
-
rm 删除 慎用!!!
- rm — Remove
格式:rm [选项]… 文件或目录… - 常用命令选项
-r、-f:递归删除(含目录)、强制删除
- rm — Remove
[root@server1 ~]# rm -rf /opt/aa
[root@server1 ~]# ls /opt/
[root@server1 ~]#
- mv — Move移动(剪切):源数据会消失
- 格式:mv 原文件… 目标路径
[root@server1 ~]# touch /opt/b.txt
[root@server1 ~]# ls /opt/
b.txt
[root@server1 ~]# mv /opt/b.txt /opt/c.txt #重命名:路径不变的移动
[root@server1 ~]# ls /opt/
c.txt
-
cp — Copy:源数据不会消失
- 格式:cp [选项]… 原文件… 目标路径
- 常用命令选项
-r:递归,复制目录时必须有此选项
[root@server1 ~]# cp /etc/passwd /opt/
[root@server1 ~]# ls /opt/
aaa c.txt passwd
[root@server1 ~]# cp -r /boot/ /opt/
[root@server1 ~]# ls /opt/
aaa boot c.txt passwd
[root@server1 ~]# \cp -r /boot/ /opt/ #重名进行强制覆盖
[root@server1 ~]# cp -r /home/ /opt/myhome #复制可以支持重新命名,目标路径下数据的名称
[root@server1 ~]# ls /opt/
aaa boot c.txt myhome passwd
[root@server1 ~]# mkdir /qwe
[root@server1 ~]# cp -r /home/ /etc/passwd /boot/ /qwe #复制可以支持两个以上的参数,永远把最后一个参数作为目标,其他的所有的参数都作为源数据
[root@server1 ~]# ls /qwe
boot home passwd
-
在文本文件中过滤,包含指定字符串的行
-
grep [选项] ‘字符串’ 文本文件…
-
常用命令选项
-v,取反匹配(不包含)
-i,忽略大小写
– ^word 以字符串word开头
– word$ 以字符串word结尾
-
[root@server1 ~]# grep root /etc/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
[root@server1 ~]# grep -v root /etc/passwd
bin:x:1:1:bin:/bin:/sbin/nologin
...
[root@server1 ~]# grep ROOT /etc/passwd
[root@server1 ~]# grep -i ROOT /etc/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
[root@server1 ~]# grep ^root /etc/passwd
root:x:0:0:root:/root:/bin/bash
[root@server1 ~]# grep bash$ /etc/passwd
root:x:0:0:root:/root:/bin/bash
ldapuser0:x:1040:1040::/rhome/ldapuser0:/bin/bash
lisi:x:1041:1041::/home/lisi:/bin/bash