红帽 RHCSA笔记
时间:2023-07-18 11:07:00
命令终端字段意义介绍
-
[root@localhost ~]#
-
解释:
-
root:当前登录系统用户名(root超级管理员)
-
localhost :当前主机名
-
:当前用户目录( 为家目录) ,root超级管理员目录:/root
-
#: 当前用户身份是超级管理员
-
-
[student@localhost ~]$
-
$:当前用户身份为普通用户,普通用户家目录:/home/用户名同名
-
Linux系统的基本概念
-
多用户系统:允许多用户同时登录系统,使用系统中的资源
-
多任务系统:允许多任务同时执行
-
严格区分大小写:命令、选项、参数、文件名、目录名
-
所有文件:硬件设备(内存,CPU、网卡、显示器、硬盘等。)以文件的形式存在
-
文件和目录都是倒挂的树形结构,存在于系统的/根目录中。根目录是Linux系统的起点
-
对于Linux系统而言,目录/文件没有扩展名一说,扩展名如:.sh(脚本文件) .conf(配置文件) .log(日志文件) .rpm(软件包).tar(压缩包)易于用户识别
-
没有提示是最好的提示(成功)
-
Linux没有回收站
命令行编辑技巧
键盘上下键调出历史命令
Ctrl c:废除当前命令行中的命令,取消当前执行的命令,如ping
Ctrl l,clear:清屏
tab建自动补齐:可补齐命令、参数、文件路径、软件名
esc . :将上一个命令参数转换为当前命令的执行对象
Ctrl a:将当前光标移动到行首
Ctrl e:将当前光标移动到行尾
Ctrl u 清空至行首
Ctrl w 删除一个单词
exit,logout:退出系统
命令行一般命令格式
-
命令字 [-选项...] [参数...]
-
命令字:命令本身(功能)
-
选项:调整命令功能
-
短选项:-l -a -d -h(单个字符)短选项可合并使用:-lad -lh
-
长选项:--help(单词)长选项通常不能合并
-
-
参数:执行对象、文件/目录/程序等
-
[]:可选
-
..:可同时有多个选项或参数
-
学习方法
-
遇到问题:前期不要求你有排错的能力。
-
想想你能否决定:百度,Google、最后问老师
-
主动学习的爱好,不要被动学习
-
不要敲一个技术点头学习不要忘记抬头看路
Linux系统识别目录和文件的方法
蓝色表示目录(windows系统中的文件夹)
白色表示文件
浅蓝色表示链接文件(类似于windows系统的快捷方式)
绿色表示可执行文件(如脚本、命令程序文件)
红色表示压缩文件
黄色表示设备文件(硬盘、键盘、鼠标、网卡、CPU硬件设备都是以文件的形式存在的)
红闪文件——>表示链接文件不可用
ls 查看目录/文件命令
-
ls命令(英语全拼:list):查看目录下的内容、目录和文件的详细属性信息
-
命令格式:ls [-选项...] [参数...]
-
常用选项:
-
-a 显示目录下的所有内容,包含隐藏内容
-
-l 目录中的内容和详细属性以长格式显示
-
-h 人性化显示目录的内容大小(kB、MB、GB)
-
-d 只显示目录本身而不显示目录下的内容
-
-i 查看inode(系统中的任何文件或目录都有唯一的编号)
-
-R:递归查看目录下的所有内容(从头到尾)
-
-
注意(附加):递归是指从头到尾呈现所有目录。
Linux 系统文件类型
- 文件:
d 目录:
l 链接文件
b 跨设备文件
c 字符设备文件
p 管道设备文件
s 套接字
Linux 系统下的归属关系
-
在Linux在系统下,文件分为三类
-
所有者:文件或目录的所有者通常拥有最大的权限
-
下属组:文件或目录属于哪个组,下属组的权限略小于所有者
-
其他人:既不是文件或目录的所有者,也不是文件或目录组的成员,其他人的权限通常是最小的
-
-
ls命令示例:
#显示当前目录下的所有内容 [root@localhost ~]# ls #查看根目录下的所有内容 [root@localhost ~]# ls / bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var #查看/etc所有内容都在目录中 [root@localhost ~]# ls /etc #查看/bin所有内容都在目录中 [root@localhost ~]# ls /bin #查看/dev所有内容都在目录中 [root@localhost ~]# ls /dev #查看目录下的所有目录和文件,包括隐藏的内容 [root@localhost ~]# ls -a #目录中的所有内容都以长格式显示,包括详细的属性信息 [root@localhost ~]# ls -l -rw-r--r--. 1 root root 0 10月 24 15:16 hello #解释 -:文件类型 1:引用代表文件的次数 root:文件所有者 root:文件所属组 0:文件的大小,默认情况下,字节显示大小 10月 24 15:16:文件最新修改时间 hello:文件名 #目录中的所有内容都以长格式显示,详细的属性信息以人性化的方式显示 [root@localhost ~]# ls -l -h #合并使用短选项 [root@localhost ~]# ls -lh #以长格式显示目录所有内容,详细的属性信息以人性化的方式显示,包括隐藏的内容 [root@localhost ~]# ls -lha #根目录中的所有内容都以长格式显示,包括详细的属性信息 [root@localhost ~]# ls -l / lrwxrwxrwx. 1 root root 7 3月 13 17:15 bin -> usr/bin #创建hello.txt文件 [root@localhost ~]# touch hello.txt ##查看文件的元数据信息 [root@localhost ~]# stat hello.txt 文件:"hello.txt" 大小:0 块:0 IO 块:4096 普通空文件 设备:fd00h/64768d Inode:33575020 硬链接:1 权限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root) 环境:unconfined_u:object_r:admin_home_t:s0 最近访问:2021-03-14 16:38:14.349861770 0800 最近更改:2021-03-14 16:38:14.349861770 0800 最近改动:2021-03-14 16:38:14.349861770 0800 创建时间:-
Linux 基本权限的类别
-
r 读取 w 写入 x 执行 - 没有权限
-
权限顺序:rwx rwx rwx
[root@localhost ~]# ls -l -rw-r--r--. 1 root root 1831 3月 13 17:45 initial-setup-ks.cfg #解释 -:文件类型 rw- r-- r--:所有者u、所属组g、其他人o的权限 u g o r 读取权限,w写入权限,x执行权限-无权限 1:代表文件的引用次数,只针对与做了硬连接的文件才有效 root:文件所有者 root:文件所属组 181:文件的大小,默认以字节为单位显示大小 3月 13 17:45:文件最近一次的修改时间 initial-setup-ks.cfg:文件名 #查看/root目录本身详细属性信息 [root@localhost ~]# ls -ld /root dr-xr-x---. 14 root root 4096 3月 14 16:38 /root #查看当前目录下所有内容的inode号 [root@localhost ~]# ls -i 33574979 anaconda-ks.cfg 33574984 initial-setup-ks.cfg 33575035 模板 33575036 图片 17470701 下载 17470702 音乐 33575020 hello.txt 51909391 公共 51909392 视频 3204374 文档 33575017 新建文件夹.zip 3204373 桌面 #查看hello.txt文件的inode号 [root@localhost ~]# ls -i hello.txt 33575020 hello.txt #查看/etc/目录本身的inode号 [root@localhost ~]# ls -id /etc 16777281 /etc
课后练习
1.命令行以$作为结尾代表什么含义?
普通用户
2.请写出Linux系统一般的命令格式?
命令字 [-选项...] [参数...]
3.在Linux系统下,如何辨别目录与文件及其他的文件?
白色:文件
蓝色:目录
浅蓝色:链接文件
绿色:可执行文件
红色:压缩文件
红色带闪动的文件:链接文件不可用
黄色:设备文件(硬盘,网卡,CPU,鼠标,键盘)
4.如何查看一个文件的详细属性?
ls -l 文件名
5.如何查看一个目录本身的详细属性?
ls -dl 目录名字
6.查看文件详细属性,并以KB、MB、GB的方式显示文件的大小?
ls -lh 文件名
7.如何查看一个文件的inode号?
ls -i 文件名
8.请写出Linux下文件和目录的三个归属关系?
u 所有者
g 所属组
o 其他人
9.请写出Linux下基本权限的表示方式?
r:读取,w写入,x执行
10.命令行以#作为结尾代表什么含义?
超级管理员
mkdir 创建目录命令
-
mkdir(英文全拼:make directory)用于创建新目录
-
命令格式:mkdir [-选项] 目录名
-
常用选项:
-
-p 递归创建多个目录
-
-
注意事项:
-
目录还是文件的名字,除了以“/”以外的任意名称,“/”根目录,路径分隔符
-
文件或目录的名字长度不能超过255个字符
-
-
mkdir命令示例
#在当前所在目录创建test目录 [root@localhost ~]# mkdir test [root@localhost ~]# ls #在当前所在目录同时创建多个目录 [root@localhost ~]# mkdir test1 test2 test3 [root@localhost ~]# ls #指定在/tmp目录下创建abc目录 [root@localhost ~]# mkdir /tmp/abc [root@localhost ~]# ls /tmp abc #在指定目录下同时创建多个目录 [root@localhost ~]# mkdir /tmp/abc1 /tmp/abc2 /tmp/abc3 [root@localhost ~]# ls /tmp #在/opt目录下创建student,在当前目录创建student1..3 [root@localhost ~]# mkdir /opt/student student1 student2 student3 [root@localhost ~]# ls /opt rh student #mkdir默认无法在一个不存在的目录下创建目录,需要通过-p选项 [root@localhost ~]# mkdir /opt/xx/oo mkdir: 无法创建目录"/opt/xx/oo": 没有那个文件或目录 [root@localhost ~]# mkdir /opt/a/b/c/d mkdir: 无法创建目录"/opt/a/b/c/d": 没有那个文件或目录 #在/opt目录下递归创建目录 [root@localhost ~]# mkdir -p /opt/xx/oo [root@localhost ~]# ls /opt rh student xx [root@localhost ~]# mkdir -p /opt/a/b/c/d [root@localhost ~]# ls /opt a rh student xx #ls -R选项可以递归目录下所有内容 [root@localhost ~]# ls -R /opt/a /opt/a: b /opt/a/b: c /opt/a/b/c: d
cd 切换工作目录命令
-
cd(英文全拼:change directory)切换目录
命令格式:cd [-选项] [目录名]
-
提示:目录名称可以是绝对路径或相对路径,如果不指定目录名称,则切换到当前用户的家目录~
绝对路径与相对路径
-
绝对路径:以/(根)为起点,到达你想去的目标目录称为绝对路径
-
相对路径:以当前路径为起点,到达你想去的目标目录
-
常用快捷操作:
-
~ 表示为家目录
-
. 表示为当前目录
-
.. 表示上一级目录
-
-
-可在两路径之间来回切换
pwd 打印当前所在目录
-
pwd(英文全拼:print work directory)打印当前所在的工作目录,执行pwd命令后,可显示当前所在的工作目录的绝对路径名称
-
命令格式:pwd [-选项]
[root@localhost ~]# cd /opt/a/b/c/d #打印当前所在目录绝对路径 [root@localhost d]# pwd /opt/a/b/c/d #切换到用户家目录 [root@localhost d]# cd ~ [root@localhost ~]# pwd /root [root@localhost ~]# cd /opt/a/b/c/d [root@localhost d]# pwd /opt/a/b/c/d [root@localhost d]# cd [root@localhost ~]# pwd /root [root@localhost ~]# cd /bin [root@localhost bin]# pwd /bin [root@localhost bin]# cd /boot [root@localhost boot]# pwd /boot [root@localhost boot]# ls [root@localhost boot]# cd /dev [root@localhost dev]# pwd /dev [root@localhost dev]# ls [root@localhost dev]# cd /etc [root@localhost etc]# pwd /etc [root@localhost etc]# ls [root@localhost etc]# ls / bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var #“.”表示当前所在目录,对于cd命令而言作用不大 [root@localhost etc]# cd . [root@localhost etc]# cd /opt/a/b/c/d [root@localhost d]# pwd /opt/a/b/c/d #“..”切换到当前目录的上一级目录 [root@localhost d]# cd .. [root@localhost c]# pwd /opt/a/b/c [root@localhost c]# cd .. [root@localhost b]# pwd /opt/a/b [root@localhost b]# cd .. [root@localhost a]# cd .. [root@localhost opt]# pwd /opt [root@localhost opt]# cd .. [root@localhost /]# cd .. [root@localhost /]# cd [root@localhost ~]# ls [root@localhost ~]# cd /opt/a/b/c/d [root@localhost d]# pwd /opt/a/b/c/d #"-"可在两个路径之间来回切换 [root@localhost d]# cd /etc/yum [root@localhost yum]# cd - /opt/a/b/c/d [root@localhost d]# pwd /opt/a/b/c/d [root@localhost d]# cd - /etc/ym [root@localhost yum]# cd - /opt/a/b/c/d [root@localhost d]# cd - /etc/yum
rmdir 删除空目录命令
-
rmdir(英文全拼:remove directory)删除空目录
-
命令格式:rmdir [-选项] 目录名
#rmdir只能删除空目录,如果目录下存在数据无法删除 [root@localhost ~]# rmdir /opt/a rmdir: 删除 "/opt/a" 失败: 目录非空 [root@localhost ~]# ls -R /opt/a /opt/a: b /opt/a/b: c /opt/a/b/c: d /opt/a/b/c/d: [root@localhost ~]# rmdir /opt/a/b/c/d [root@localhost ~]# ls -R /opt/a /opt/a: b /opt/a/b: c /opt/a/b/c: [root@localhost ~]# rmdir /opt/a/b/c [root@localhost ~]# ls -R /opt/a/b /opt/a/b: [root@localhost ~]# rmdir /opt/a/b [root@localhost ~]# ls -R /opt/a /opt/a: [root@localhost ~]# rmdir /opt/a [root@localhost ~]# ls /opt rh student xx [root@localhost ~]# rmdir /opt/ rmdir: 删除 "/opt/" 失败: 目录非空
touch 创建文件命令
-
touch 命令用于创建新的空白文件
-
命令格式:touch [-选项] 文件名
#在当前路径创建空文件 [root@localhost ~]# touch hello [root@localhost ~]# ls #在当前路径同时创建多个文件 [root@localhost ~]# touch t1 t2 t3 t4 [root@localhost ~]# ls #在指定路径同时创建多个文件 [root@localhost ~]# touch /opt/test1 /opt/test2 /opt/test3 [root@localhost ~]# ls /opt rh student test1 test2 test3 xx #如果存在同名目录时,无法创建 [root@localhost ~]# mkdir test mkdir: 无法创建目录"test": 文件已存在 #如果存在同名文件时,touch命令没有提示,但原有文件不会被覆盖 [root@localhost ~]# touch t1 #对于目录而言,只有单个目录的时候,“/”可有可无 [root@localhost ~]# ls /opt/ rh student test1 test2 test3 xx [root@localhost ~]# ls /opt rh student test1 test2 test3 xx #对于目录而言,查看目录下的内容时,必须要有“/” [root@localhost ~]# ls /opt/xx oo #对于文件而言,后边绝对不能有“/” [root@localhost ~]# ls /opt/test1 /opt/test1 [root@localhost ~]# ls /opt/test1/ ls: 无法访问/opt/test1/: 不是目录
cp 复制命令
-
cp(英文全拼:copy file)用于复制文件或目录,cp命令在复制时也可修改目录或文件名字
-
命令格式:cp [-选项] 源文件或目录 目标目录
-
常用选项:
-
-p 保留源文件属性不变(如:修改时间、归属关系、权限)
-
-r 复制目录(包含该目录下所有的子目录和文件)
-
#复制当前目录文件到/opt目录(相对路径方式复制) [root@localhost ~]# cp t1 /opt/ [root@localhost ~]# ls /opt rh student t1 test1 test2 test3 xx #复制文件到/opt目录(绝对路径方式复制) [root@localhost ~]# cp /root/t2 /opt [root@localhost ~]# ls /opt rh student t1 t2 test1 test2 test3 xx #同时复制多个文件 [root@localhost ~]# cp t3 t4 /opt/ [root@localhost ~]# ls /opt #创建目录 [root@localhost ~]# mkdir abc #使用-r对目录执行复制 [root@localhost ~]# cp -r abc /opt [root@localhost ~]# ls /opt #同时复制多个目录 [root@localhost ~]# mkdir abc1 abc2 abc3 [root@localhost ~]# cp -r abc1 abc2 abc3 /opt [root@localhost ~]# ls /opt #复制hello文件到/opt并改名为hello.txt [root@localhost ~]# cp hello /opt/hello.txt [root@localhost ~]# ls /opt #复制xxxx目录到/opt并改名xxoo [root@localhost ~]# mkdir xxxx [root@localhost ~]# cp -r xxxx /opt/xxoo [root@localhost ~]# ls /opt #使用“.”配合cp命令执行复制 [root@localhost ~]# cd /etc/sysconfig/network-scripts/ [root@localhost network-scripts]# pwd /etc/sysconfig/network-scripts [root@localhost network-scripts]# cp /root/t1 . [root@localhost network-scripts]# ls #操持属性不变复制文件 [root@localhost ~]# cp -p anaconda-ks.cfg /opt cp:是否覆盖"/opt/anaconda-ks.cfg"? y [root@localhost ~]# ls -l /opt/anaconda-ks.cfg -rw-------. 1 root root 1800 3月 13 17:34 /opt/anaconda-ks.cfg #对比以上两个文件的详细属性信息(最后一次修改时间) [root@localhost ~]# ls -l anaconda-ks.cfg -rw-------. 1 root root 1800 3月 13 17:34 anaconda-ks.cfg #这两个操作代表什么意思? [root@localhost ~]# cp -r xxxx /mnt/oooo #拷贝并改名 [root@localhost ~]# cp -r xxxx /mnt/oooo #拷贝
mv 移动命令
-
mv(英文全拼:move file)用于移动文件或目录到其他位置,也可用于修改目录或文件名
-
命令格式:mv [-选项] 源文件... 目标路径
#移动当前路径hello文件到/mnt目录 [root@localhost ~]# mv hello /mnt [root@localhost ~]# ls /mnt hello home oooo test #同时移动多个文件 [root@localhost ~]# mv t1 t2 t3 t4 /mnt [root@localhost ~]# ls /mnt hello home oooo student1 t1 t2 t3 t4 test #移动/opt目录下文件到/mnt root@localhost ~]# mv /opt/test1 /opt/test2 /opt/test3 /mnt/ [root@localhost ~]# ls /mnt hello home oooo student1 t1 t2 t3 t4 test test1 test2 test3 #移动目录 [root@localhost ~]# mv student1 /mnt [root@localhost ~]# ls /mnt hello home oooo student1 test #移动文件并改名 [root@localhost ~]# mv hello.txt /media/hello [root@localhost ~]# ls /media/ hello #移动目录并改名 [root@localhost ~]# mv test /media/testxx [root@localhost ~]# ls /media/ hello testxx
cat 查看文件内容命令
-
cat (英文全拼:concatenate)命令用于查看文本文件内容
-
命令格式:cat [选项] 文件名
-
常用选项
-
-n #查看文件时以行号的形式显示文件内容
-
#查看文件内容 [root@localhost ~]# cat anaconda-ks.cfg [root@localhost ~]# cat initial-setup-ks.cfg [root@localhost ~]# cat /etc/hosts #查看网卡文件内容,网卡配置文件 [root@localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens32 ... NAME="ens32" //网卡名 UUID="16085f4c-f690-4058-b29e-d55c73387026" DEVICE="ens32" ONBOOT="yes" IPADDR="192.168.0.50" //网卡IP地址 PREFIX="24" //子网掩码 GATEWAY="192.168.0.254" //网关 DNS1="114.114.114.114" //DNS #查看当前系统用户基本信息文件内容 [root@localhost ~]# cat /etc/passwd root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin #查看当前系统主机名配置文件内容 [root@localhost ~]# cat /etc/hostname localhost.localdomain #查看当前系统版本信息文件内容 [root@localhost ~]# cat /etc/redhat-release CentOS Linux release 7.6.1810 (Core) #查看当前系统开机自动挂载配置文件内容 [root@localhost ~]# cat /etc/fstab #查看系统组基本信息文件内容 [root@localhost ~]# cat /etc/group #使用“-n”以行号形式显示文件内容 [root@localhost ~]# cat -n /etc/passwd [root@localhost ~]# cat -n /etc/hostname [root@localhost ~]# cat -n /etc/fstab [root@localhost ~]# cat -n /etc/group [root@localhost ~]# cat -n /etc/services
less命令
-
less工具是对文件的输出进行分页显示的工具,常用于查看内容量较大的文件
-
命令格式:less [-选项] 文件
-
常用选项:
-
-N #以行号形式显示文件内容
-
-
使用技巧:
-
键盘上下键逐行查看
-
pgdn :向下翻一页(Fn + 下键)
-
pgup :向上翻一页(Fn + 上键)
-
-
/字符串 :搜索指定字符串(n从上向下搜索,N从下向上搜索)
-
G:直接跳转到文件最后一行
-
gg:直接跳转到文件行首
-
:1000 #精准的定位到某一行
-
q :退出
-
[root@localhost ~]# less -N /etc/services
head与tail命令
-
head命令:用来显示文件开头部分内容,默认显示文件开头10行内容
-
命令格式:head [选项] 参数
-
常用选项:
-
-n<行数> 指定显示的行数
-
[root@localhost ~]# head /etc/passwd [root@localhost ~]# head /etc/fstab [root@localhost ~]# head /etc/group [root@localhost ~]# head /etc/hostname [root@localhost ~]# head /etc/hosts [root@localhost ~]# head /etc/sysconfig/network-scripts/ifcfg-ens32 #查看存放DNS配置文件信息 [root@localhost ~]# head /etc/resolv.conf #使用-n指定显示文件前多少行内容 [root@localhost ~]# head -n 5 /etc/passwd [root@localhost ~]# head -n 6 /etc/passwd [root@localhost ~]# head -n 15 /etc/passwd [root@localhost ~]# head -n 20 /etc/passwd
-
tail命令:用来显示文件末尾部分内容,默认显示文件末尾10行内容
-
命令格式:tail [选项] 参数
-
常用选项:-n<行数> 指定显示的行数 -f 动态显示
[root@localhost ~]# tail /etc/passwd #使用“-n”指定显示文件末尾多少行内容 [root@localhost ~]# tail -n 5 /etc/passwd [root@localhost ~]# tail -n 5 /etc/sysconfig/network-scripts/ifcfg-ens32 IPADDR="192.168.0.50" PREFIX="24" GATEWAY="192.168.0.254" DNS1="114.114.114.114" IPV6_PRIVACY="no" #动态查看文件内容 [root@localhost ~]# touch t1 root@localhost ~]# tail -f t1 #另开一个终端向文件写入内容 [root@localhost ~]# echo 123 > t1
rm删除命令
-
rm(英文全拼:remove)命令用于删除文件或者目录。
-
命令格式:rm [-选项…] 目录或文件…
-
常用选项
-
-f 强制删除
-
-r 删除目录
-
“*”特殊字符:系统常用符号,用来代表任意所有字符
-
[root@localhost ~]# ls /opt abc abc1 abc2 abc3 anaconda-ks.cfg hello.txt home rh student t1 t2 t3 t4 xx xxoo [root@localhost ~]# ls /mnt hello home oooo student1 t1 t2 t3 t4 test test1 test2 test3 #删除指定目录下文件 [root@localhost ~]# rm /opt/anaconda-ks.cfg rm:是否删除普通文件 "/opt/anaconda-ks.cfg"?y #默认需要确认(y|n) #查看文件是否被成功删除 [root@localhost ~]# ls /opt abc abc1 abc2 abc3 hello.txt home rh student t1 t2 t3 t4 xx xxoo [root@localhost ~]# rm /opt/hello.txt rm:是否删除普通空文件 "/opt/hello.txt"?y #同时删除目录下指定文件 [root@localhost ~]# rm /opt/t1 /opt/t2 /opt/t3 /opt/t4 rm:是否删除普通空文件 "/opt/t1"?y rm:是否删除普通空文件 "/opt/t2"?y rm:是否删除普通空文件 "/opt/t3"?y rm:是否删除普通空文件 "/opt/t4"?y #查看文件是否被成功删除 [root@localhost ~]# ls /opt abc abc1 abc2 abc3 home rh student xx xxoo #使用“-f”强制删除文件(无需确认,直接删除) [root@localhost ~]# rm -f /mnt/hello [root@localhost ~]# ls /mnt home oooo student1 t1 t2 t3 t4 test test1 test2 test3 #同时强制删除多个文件 [root@localhost ~]# rm -f /mnt/t1 /mnt/t2 /mnt/t3 /mnt/t4 [root@localhost ~]# ls /mnt #删除目录 [root@localhost ~]# rm -r /opt/abc rm:是否删除目录 "/opt/abc"?y [root@localhost ~]# ls /opt abc1 abc2 abc3 home rh student xx xxoo #同时删除多个目录 [root@localhost ~]# rm -r /opt/abc1 /opt/abc2 /opt/abc3 rm:是否删除目录 "/opt/abc1"?y rm:是否删除目录 "/opt/abc2"?y rm:是否删除目录 "/opt/abc3"?y [root@localhost ~]# ls /opt home rh student xx xxoo #同时强制删除多个目录 [root@localhost ~]# rm -rf /opt/home /opt/student /opt/xx /opt/xxoo [root@localhost ~]# ls /opt rh #创建目录与文件 [root@localhost ~]# touch /opt/t1 [root@localhost ~]# mkdir /opt/test [root@localhost ~]# ls /opt rh t1 test #rm命令在删除目录时,包含改目录及目录下所有数据全部删除 [root@localhost ~]# rm -rf /opt/ [root@localhost ~]# ls / [root@localhost ~]# ls /mnt home oooo student1 test test1 test2 test3 #使用“*”通配任意所有字符,删除/mnt目录下所有数据 [root@localhost ~]# rm -rf /mnt/* [root@localhost ~]# ls /mnt
软连接与硬连接
-
Linux中的链接文件类似于windows中的快捷方式
-
软连接特点:软连接可以跨分区,可以对目录进行链接,源文件删除后,链接文件不可用
-
软连接命令格式:ln -s 源文件路径 目标路径
-
注意:创建链接时一定要写目录或文件的绝对路径,哪怕是在当前路径下,也要写绝对路径·
[root@localhost ~]# touch hello.soft [root@localhost ~]# ls #创建软连接(必须要绝对路径创建) [root@localhost ~]# ln -s /root/hello.soft /opt [root@localhost ~]# ls /opt #查看连接文件详细属性 [root@localhost ~]# ls -l /opt/hello.soft lrwxrwxrwx. 1 root root 16 3月 21 14:28 /opt/hello.soft -> /root/hello.soft #提示:链接文件的权限最终取决于源文件的权限 #普通用户验证 [lisi@localhost ~]$ ls /opt hello.soft [lisi@localhost ~]$ ls -l /opt/hello.soft lrwxrwxrwx. 1 root root 16 3月 21 14:28 /opt/hello.soft -> /root/hello.soft [lisi@localhost ~]$ cat /opt/hello.soft cat: /opt/hello.soft: 权限不够 #提示:由于源文件存放于/root目录下,而普通用户对/root目录没有任何权限,所以普通用户无法查看 #删除源文件 [root@localhost ~]# rm -f /root/hello.soft [root@localhost ~]# ls #删除源文件后,软链接文件不可用 [root@localhost ~]# ls -l /opt/hello.soft lrwxrwxrwx. 1 root root 16 3月 21 14:28 /opt/hello.soft -> /root/hello.soft #创建文件并创建软连接 [root@localhost ~]# touch hello.soft [root@localhost ~]# ln -s /root/hello.soft /opt [root@localhost ~]# ls -l /opt/hello.soft lrwxrwxrwx. 1 root root 16 3月 21 14:39 /opt/hello.soft -> /root/hello.soft #删除链接文件后,源文件仍然可用 [root@localhost ~]# rm -f /opt/hello.soft [root@localhost ~]# ls [root@localhost ~]# cat hello.soft #对目录创建软连接 [root@localhost ~]# ln -s /root/test1 /opt/ [root@localhost ~]# ls -ld /opt/test1 lrwxrwxrwx. 1 root root 11 3月 21 14:44 /opt/test1 -> /root/test1 3创建链接时一定要写目录或文件的绝对路径,哪怕是在当前路径下,也要写绝对路径 [root@localhost ~]# ln -s hello.soft /opt [root@localhost ~]# ls /opt hello.soft test1 [root@localhost ~]# ls -l /opt/hello.soft lrwxrwxrwx. 1 root root 10 3月 21 14:47 /opt/hello.soft -> hello.soft
-
硬链接特点:硬连接不可以跨分区,不可以对目录进行链接,源文件删除后,链接文件仍然可用
-
硬连接命令格式:ln 源文件路径 目标路径
#创建文件,并创建硬连接 [root@localhost ~]# touch hello.hard [root@localhost ~]# ln /root/hello.hard /opt/ [root@localhost ~]# ls /opt hello.hard hello.soft test1 #向硬连接的源文件写入内容 root@localhost ~]# echo 123 > /root/hello.hard #查看源文件内容 [root@localhost ~]# cat /root/hello.hard 123 #查看链接文件内容,以同步更新 [root@localhost ~]# cat /opt/hello.hard 123 #向链接文件写入内容,查看源文件以同步更新 [root@localhost ~]# echo xx >> /opt/hello.hard #擦看源文件,以同步更新 [root@localhost ~]# cat /root/hello.hard 123 xx #硬连接文件的特点可以保持文件属性不发生改变 [root@localhost ~]# ls -l /root/hello.hard -rw-r--r--. 2 root root 7 3月 21 14:55 /root/hello.hard [root@localhost ~]# ls -l /opt/hello.hard -rw-r--r--. 2 root root 7 3月 21 14:55 /opt/hello.hard #并且硬连接文件的i节点号相同 [root@localhost ~]# ls -i /root/hello.hard 33711090 /root/hello.hard [root@localhost ~]# ls -i /opt/hello.hard 33711090 /opt/hello.hard #硬连接不允许对目录进行连接 root@localhost ~]# ln /root/test1 /opt ln: "/root/test1": 不允许将硬链接指向目录 #硬连接源文件删除后,链接文件仍然可用 [root@localhost ~]# rm -f /root/hello.hard [root@localhost ~]# cat /opt/hello.hard 123 xx #向硬连接文件写入内容 [root@localhost ~]# echo abc >> /opt/hello.hard [root@localhost ~]# cat /opt/hello.hard 123 xx abc #硬连接不允许跨分区 [root@localhost ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 20G 0 disk ├─sda1 8:1 0 1G 0 part /boot └─sda2 8:2 0 19G 0 part ├─centos-root 253:0 0 17G 0 lvm / └─centos-swap 253:1 0 2G 0 lvm [SWAP] sr0 11:0 1 4.3G 0 rom [root@localhost ~]# ln /root/hello.soft /boot ln: 无法创建硬链接"/boot/hello.soft" => "/root/hello.soft": 无效的跨设备连接
Linux命令的分类
-
内部命令:bash程序自带的基本管理命令
-
外部命令:有独立的外部可执行程序文件命令
-
type 用于区别内部命令与外部命令
-
which 用于查找可以执行程序文件位置
[root@localhost opt]# type ls [root@localhost opt]# type cat [root@localhost opt]# type hash [root@localhost ~]# echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin [root@localhost ~]# hash 命中 命令 1 /usr/bin/cat 1 /usr/bin/ls [root@localhost opt]# hash -r [root@localhost opt]# [root@localhost opt]# hash hash: 哈希表为空 [root@localhost opt]# ls hello.hard hello.soft t1 test1 test.txt [root@localhost opt]# hash 命中 命令 1 /usr/sbin/ls
-
总结:
-
shell程序是用户和系统之间的接口,用于解释用户的命令
-
查找命令对应的程序文件所在位置:which 命令
-
shell程序大多数存放在/etc/shells文件中
-
系统默认使用的shell为/bin/bash
-
查看当前使用的shell:echo $SHELL
-
区别内部命令与外部命令的方式:typt 命令
-
shell程序查找可执行程序文件路径定义在$PATH环境变量中
-
shell查找的外部命令路径结果会记录到缓存的hash表中
-
help 命令帮助手册
-
help命令用于查看shell内部命令的帮助信息,包括使用方法、选项等…
-
命令格式:help [选项] 命令
#获取内部命令帮助信息 [root@localhost etc]# help cd #help无法获取外部命令的帮助信息 root@localhost etc]# help ls bash: help: 没有与 `ls' 匹配的帮助主题。尝试 `help help' 或者 `man -k ls' 或者 `info ls'。 [root@localhost etc]# type help help 是 shell 内嵌 #获取help命令本身的帮助信息 [root@localhost etc]# help help [root@localhost etc]# type cat cat 是 /usr/bin/cat [root@localhost etc]# help cat bash: help: 没有与 `cat' 匹配的帮助主题。尝试 `help help' 或者 `man -k cat' 或者 `info cat'。 #查看命令帮助手册(命令自带) [root@localhost etc]# cat --help [root@localhost etc]# ls --help
man 获取命令帮助手册
-
man 命令用于查看系统命令的帮助信息,包括使用方法、选项、使用例子等…,对比--help ,man 输出的信息更加详细
-
命令格式:man [-选项] 命令
-
常用快捷操作
-
向下键向下移一行
-
向上键向上移一行
-
[Page Down] 向下翻一页
-
[Page Up] 向上翻一页
-
/关键字 #搜索关键字,配合n(向下查询)、N(向上查询)
-
q 退出
-
[root@localhost etc]# man ls [root@localhost etc]# man cat [root@localhost etc]# man touch [root@localhost etc]# man mkdir
[root@localhost etc]# info ls
Linux系统的运行级别
Linux系统运行级别:linux系统有7个运行级别,不同的运行级别运行的程序和功能都不一样,而Linux系统默认是运行在一个标准的级别上,系统运行级别文件/etc/inittab文件
运行级别 0:所有进程被终止,机器将有序的停止,关机时系统处于这个运行级别(关机)
运行级别 1:单用户模式,(root用户进行系统维护),系统里运行的所有服务也都不会启动
运行级别 2:多用户模式(网络文件系统NFS服务没有被启动)
运行级别 3:完全多用户模式,(有NFS网络文件系统)标准的运行级别,命令行模式
运行级别 4:系统未使用
运行级别 5:登录后,进入带GUI的图形化界面,标准的运行级别
运行级别 6:系统正常关闭并重启
#查看当前系统运行级别 [root@localhost etc]# runlevel N 5 #解释;当前系统处于的运行级别 #解释:N代表没有从任何级别跳转过来 #切换系统运行级别 [root@localhost ~]# init N #查看运行级别文件内容 [root@localhost ~]# cat /etc/inittab # inittab is no longer used when using systemd. # # ADDING CONFIGURATION HERE WILL HAVE NO EFFECT ON YOUR SYSTEM. # # Ctrl-Alt-Delete is handled by /usr/lib/systemd/system/ctrl-alt-del.target # # systemd uses 'targets' instead of runlevels. By default, there are two main targets: # # multi-user.target: analogous to runlevel 3 #运行级别3 # graphical.target: analogous to runlevel 5 #运行级别5 # # To view current default target, run: # systemctl get-default #查看当前系统默认的运行级别 # # To set a default target, run: # systemctl set-default TARGET.target #修改当前系统默认运行级别 #查看默认运行级别 [root@localhost ~]# systemctl get-default graphical.target #默认运行级别为5 #修改默认运行级别为3 [root@localhost ~]# systemctl set-default multi-user.target [root@localhost ~]# systemctl get-default multi-user.target #修改默认运行级别为5 [root@localhost ~]# systemctl set-default graphical.target [root@localhost ~]# systemctl get-default graphical.target
关机与重启
-
linux下常用的关机命令有:shutdown、halt、poweroff、init
-
init 0 关机
-
halt #立刻关机
-
-
shutdown –h now #立刻关机
-
shutdown -h 10 #10分钟后自动关机
-
poweroff #立刻关机 (记这个)
-
[root@localhost ~]# poweroff
-
重启命令:reboot shutdown
-
reboot #立刻重启 (记这个)
-
shutdown -r now #立刻重启
-
shutdown -r 10 #过十分钟后重启
-
[root@localhost ~]# reboot
课后练习
1.请在/tmp目录下创建student目录,并在student目录下同时创建t1、t2、t3文件
mkdir /tmp/student
cd /tmp/student/
touch t1 t2 t3
touch /tmp/student/t1 /tmp/student/t2 /tmp/student/t3
2.请在/tmp目录下递归创建test1/test2/test3目录
mkdir -p /tmp/test1/test2/test3
3.切换到/tmp/test1/test2/test3目录下,并打印(查看)当前所在目录
cd /tmp/test1/test2/test3
pwd
4.请同时在/opt、/media目录下创建upload文件
touch /opt/upload /media/upload
5.请将/opt目录下的upload文件移动至/tmp/test1/test2/test3目录下,并改名为upload.bak
mv /opt/upload /tmp/test/1/test/2/test3/upload.bak
6.请将/etc/passwd文件拷贝至/opt目录下,改名为passwd.bak,并保持属性不变
cp -p /etc/passwd /opt/passwd.bak
7.请将/etc/fstab文件拷贝至/opt目录下,并改名为fstab.bak
cp -p /etc/fstab /opt/fstab.bak
8.请将/etc/sysconfig/network-scripts/ifcfg-ens32 文件拷贝至/opt目录下,并改名为ens32.bak
cp /etc/sysconfig/network-scripts/ifcfg-ens32 /opt/ens32.bak
9.请删除/etc/yum.repos.d/目录下所有内容
rm -rf /etc/yum.repos.d/*
10.请在/etc/yum.repos.d/目录下创建local.repo文件
touch /etc/yum.repos.d/local.repo
11.请查看/etc/sysconfig/network-scripts/ifcfg-ens32文件末尾5行内容
tail -5 /etc/sysconfig/network-scripts/ifcfg-ens32
tail -n 5 /etc/sysconfig/network-scripts/ifcfg-ens32
12.请查看/etc/passwd文件第1行内容
head -n 1 /etc/passwd
head -1 /etc/passwd
13.请查看/etc/hostname文件内容
cat /etc/hostname
14.请查看/etc/hosts文件内容
cat /etc/hosts
15.请说出软连接与硬连接的特点
软连接:可以跨分区,可以对目录链接,源文件删除后链接文件不可用
硬连接:不可以跨分区,不可以对目录进行连接,源文件删除后,链接文件以然可用
16.请在/opt目录下创建hello.soft文件,并创建软连接到/tmp目录下
touch /opt/hello.soft
ln -s /opt/hello.soft /tmp
17.请在/opt目录下创建hello.hard文件,并创建硬连接到/tmp目录下,并查看连接文件详细属性
touch /opt/hello.hard
ln /opt/hello.hard /tmp
18.如何获取ls命令的帮助信息?
man ls
ls --help
19.请说出Linux系统的运行级别
0:关机
1:单用户模式
2:多用户模式(没有NFS)
3:完全多用户模式,标准运行级别
4:保留
5:带GUI图形化界面,标准的运行级别
6:系统关闭并重启
20.如何重启Linux系统?
reboot
init 6
计算机硬件组成部分
-
输入设备:键盘、鼠标、触控屏等
-
主机设备:主板、中央处理器(CPU)、主存储器(内存)、网卡、声卡、显示卡等
-
输出设备:屏幕、耳机、打印机、投影仪等
-
外部存储设备:硬盘、软盘、光盘、U盘等、蓝光光驱
-
CPU缓存
-
CPU比较主流的厂商
-
AMD公司
-
Interl公司
-
-
CPU架构
-
x86架构,8086架构,80286,80386,x86称号
-
8位、16位、32位、64位,CPU一次可以处理的数据量,
-
32位CPU一次可以从内存中读取大约3.25G左右的数据量
-
64位CPU一次可以从内存中读取大约128G左右的数据量
-
-
CPU核心
-
单核心,一颗CPU只能有一个运算单元
-
多核心,一颗CPU里边有两个以上的运算单元
-
Linux系统目录介绍
-
/(根):系统所有数据都存放在根目录下
-
/bin:存放用户和管理员必备的可执行的二进制程序文件
-
/boot:存放Linux系统内核及引导系统程序所需要的文件目录
-
/dev:存放硬件设备的目录,如键盘、鼠标、硬盘、光盘等等 (记住)
-
/etc:存放服务的配置文件,用户信息文件 (记住)
-
/root:超级管理员的家目录
-
/home:系统普通用户的家目录(记住)
-
/lib:存放系统中的程序运行所需要的共享库及内核模块
-
/opt:额外安装的可选应用程序包所放置的位置
-
/srv:服务启动之后需要访问的数据目录
-
/tmp:一般用户或正在执行的程序临时存放文件的目录,任何人都可以访问,重要数据不可放置在此目录下
-
/var:存放系统执行过程中经常变化的文件,如随时都在变化的日志文件就存放/var/log/下 (记住)
-
/mnt、/media :光盘和镜像等预设的挂载点(记住)
-
/proc:Linux伪文件系统,该目录下的数据存在于内存当中,不占用磁盘空间
-
/lib64 :存放函式库
-
/run :程序或服务启动后,存放PID的目录
-
/sys:存放被建立在内存中的虚拟文件系统
-
/usr:操作系统软件资源所放置的目录
-
/usr/bin:与/bin目录相同,存放用户可以使用的命令程序
-
/usr/lib:与/lib目录相同,存放系统中的程序运行所需要的共享库及内核模块
-
/usr/etc:用于存放安装软件时使用的配置文件
-
/usr/games:与游戏比较相关的数据放置处
-
/usr/include:c/c++等程序语言的档头(header)与包含档(include)放置处
-
/usr/lib64:与/lib64目录相同,存放函式库
-
/usr/libexec:不经常被使用的执行程序或脚本会放置在此目录中
-
/usr/local: 额外安装的软件存放目录 (记住)
-
/usr/sbin:该目录与/sbin目录相同,存放用户可执行的二进制程序文件
-
/usr/share: 放置只读架构的杂项数据文件
-
/usr/src:一般软件源代码建议存放该目录下
-
查看内核信息
-
uname 命令用于显示系统内核信息
-
命令格式:uname [-选项...]
-
常用选项:
-
-s :显示内核名称
-
-r :显示内核版本
-
[root@localhost ~]# uname Linux [root@localhost ~]# uname -rs Linux 3.10.0-957.el7.x86_64 #解释: Linux #内核名称 3 #主版本 10 #次版本 0 #修改版本 957 #补丁次数 el7 #Enterprise Linux(企业版Linux) x86_64 #CPU架构 #Linux内核官网 https://www.kernel.org/
查看CPU信息
-
/proc/cpuinfo文件用于存放系统CPU信息
-
lscpu 用于显示CPU架构信息
-
命令格式:lscpu [-选项]
#查看/proc/cpuinfo文件内容 [root@localhost ~]# cat /proc/cpuinfo processor :#系统中逻辑处理核的编号。对于单核处理器,则可认为是其CPU编号,对于多核处理器则可以是物理核、或者使用超线程技术虚拟的逻辑核 vendor_id : #CPU制造商 cpu family : #CPU产品系列代号 model : #CPU属于其系列中的哪一代的代号 model name: #CPU属于的名字及其编号、标称主频 stepping : #CPU属于制作更新版本 cpu MHz : #CPU的实际使用主频 cache size : #CPU二级缓存大小 physical id : #单个CPU的标号 siblings :#单个CPU逻辑物理核数 core id :#当前物理核在其所处CPU中的编号,这个编号不一定连续 cpu cores : #该逻辑核所处CPU的物理核数 apicid :#用来区分不同逻辑核的编号,系统中每个逻辑核的此编号必然不同,此编号不一定连续 fpu : #是否具有浮点运算单元(Floating Point Unit) fpu_exception : #是否支持浮点计算异常 cpuid level : #执行cpuid指令前,eax寄存器中的值,根据不同的值cpuid指令会返回不同的内容 wp : #表明当前CPU是否在内核态支持对用户空间的写保护(Write Protection) flags : #当前CPU支持的功能 bogomips : #在系统内核启动时粗略测算的CPU速度(Million Instructions Per Second) clflush size : #每次刷新缓存的大小单位 cache_alignment : #缓存地址对齐单位 address sizes :#可访问地址空间位数 power management : #对能源管理的支持,有以下几个可选支持功能:
#使用lscpu查看cpu信息 [root@localhost ~]# lscpu Architecture: #架构 CPU(s): #逻辑cpu颗数 Thread(s) per core: #每个核心线程 Core(s) per socket: #每个cpu插槽核数/每颗物理cpu核数 CPU socket(s): #cpu插槽数 Vendor ID: #cpu厂商ID CPU family: #cpu系列 Model: #型号 Stepping: #步进 CPU MHz: #cpu主频 Virtualization: #cpu支持的虚拟化技术 L1d cache: #一级缓存(google了下,这具体表示表示cpu的L1数据缓存) L1i cache: #一级缓存(具体为L1指令缓存) L2 cache: #二级缓存
查看系统内存信息
-
/proc/meminfo文件用于存放系统内存信息
-
free 用于查看内存使用情况
-
命令格式:free [-选项]
-
常用选项:-h #以人类易读方式显示大小(KB,MB,GB)
#查看/proc/meminfo文件内容 [root@localhost ~]# cat /proc/meminfo MemTotal: 995896 kB #所有可用的内存大小,物理内存减去预留位和内核使用。系统从加电开始到引导完成,firmware/BIOS要预留一些内存,内核本身要占用一些内存,最后剩下可供内核支配的内存就是MemTotal。这个值在系统运行期间一般是固定不变的,重启会改变。 MemFree: 244196 kB #表示系统尚未使用的内存。 MemAvailable: 435080 kB #真正的系统可用内存,系统中有些内存虽然已被使用但是可以回收的,比如cache/buffer、slab都有一部分可以回收,所以这部分可回收的内存加上MemFree才是系统可用的内存 Buffers: 2132 kB #用来给块设备做缓存的内存,(文件系统的 metadata、pages) Cached: 314632 kB #分配给文件缓冲区的内存,例如vi一个文件,就会将未保存的内容写到该缓冲区 SwapCached: 0 kB #被高速缓冲存储用的交换空间(硬盘的swap)的大小 Active: 295908 kB #经常使用的高速缓冲存储器页面文件大小 Inactive: 271552 kB #不经常使用的高速缓冲存储器文件大小 Active(anon): 251528 kB #活跃的匿名内存 Inactive(anon): 13044 kB #不活跃的匿名内存 Active(file): 44380 kB #活跃的文件使用内存 Inactive(file): 258508 kB #不活跃的文件使用内存 Unevictable: 0 kB #不能被释放的内存页 Mlocked: 0 kB #系统调用 mlock 家族允许程序在物理内存上锁住它的部分或全部地址空间。这将阻止Linux 将这个内存页调度到交换空间(swap space),即使该程序已有一段时间没有访问这段空间 SwapTotal: 0 kB #交换空间总内存 SwapFree: 0 kB #交换空间空闲内存 Dirty: 4 kB #等待被写回到磁盘的 Writeback: 0 kB #正在被写回的 AnonPages: 15100 kB #未映射页的内存/映射到用户空间的非文件页表大小 Mapped: 7160 kB #映射文件内存 Shmem: 100 kB #已经被分配的共享内存 Slab: 9236 kB #内核数据结构缓存 SReclaimable: 2316 kB #可收回slab内存 SUnreclaim: 6920 kB #不可收回slab内存 KernelStack: 2408 kB #内核消耗的内存 PageTables: 1268 kB #管理内存分页的索引表的大小 NFS_Unstable: 0 kB #不稳定页表的大小 Bounce: 0 kB #在低端内存中分配一个临时buffer作为跳转,把位于高端内存的缓存数据复制到此处消耗的内存 WritebackTmp: 0 kB #FUSE用于临时写回缓冲区的内存 CommitLimit: 22980 kB #系统实际可分配内存 Committed_AS: 536244 kB #系统当前已分配的内存 VmallocTotal: 892928 kB #预留的虚拟内存总量 VmallocUsed: 29064 kB #已经被使用的虚拟内存 VmallocChunk: 860156 kB #可分配的最大的逻辑连续的虚拟内存
#使用free命令查看内存使用情况 [root@localhost ~]# free -h total used free shared buff/cache available Mem: 972M 344M 238M 13M 389M 424M Swap: 2.0G 0B 2.0G #解释:Mem 物理内存统计信息 total: #物理内存总量 used: #以使用的内存总量 free: #空闲内存总量 shared: #共享内存总量 buff/cache: #块设备与普通文件占用的缓存数量 available: #还可以被应用程序使用的物理内存大小 #解释:Swap 内存交换空间,当物理内存不足时,可以使用硬盘空间充当内存使用 total: #交换分区内存总量 used: #正在使用的交换分区内存 free: #空闲交换分区内存
查看网卡信息
-
网卡配置文件地址: /etc/sysconfig/network-scripts/网卡名
-
ifconfig 用于显示和设置网卡的参数
-
命令格式: ifconfig [网卡名]
[root@localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens32 TYPE=“Ethernet“ #网卡类型=以太 ※ PROXY_METHOD=“none“ #代理方式=关闭 BROWSER_ONLY="no“ #只是浏览器=否 BOOTPROTO=“none“ #获取IP地址的方式=固定IP ※ DEFROUTE=“yes“ #是否设置默认路由=是 IPV4_FAILURE_FATAL=“no“ #是否开启ipv4致命检测=否(如果ipv4配置失败禁用设备) NAME=“ens32“ #物理网卡设备名字 ※ UUID=“3ef0d258-f9a4-49e5-a9da-7b47bc98daa0 “#网卡UUID DEVICE=“ens32“ #网卡名字 ※ ONBOOT=“yes“ #开机或重启时是否启动网卡 ※ IPADDR=“192.168.0.210“ #IP地址 ※ PREFIX=“24“ #子网掩码 ※ GATEWAY=“192.168.0.254“ #网关 ※ DNS1=“8.8.8.8“ #dns服务器IP地址 ※ DNS2=8.8.4.4 #备用dns服务器IP地址 ※
#使用ifconfig命令查看网卡信息 [root@localhost ~]# ifconfig ens32: flags=4163mtu 1500 inet 192.168.0.29 netmask 255.255.255.0 broadcast 192.168.0.255 inet6 fe80::8d50:c4d5:97b0:9d64 prefixlen 64 scopeid 0x20 ether 00:0c:29:b0:cf:c8 txqueuelen 1000 (Ethernet) RX packets 3948 bytes 1811465 (1.7 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 2538 bytes 459113 (448.3 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 #解释: ens32: #网卡名称 ※ flags=4163: #标志 UP: #网卡处于活跃状态 ※ BROADCAST: #支持广播 RUNNING: #网线已接入 MULTICAST: #支持组播 mtu 1500: #最大传输单元(字节),表示此网卡一次能传输的最大数据包 ※ inet 192.168.0.29 #IPV4地址 ※ netmask 255.255.255.0 #子网掩码 ※ broadcast 192.168.0.255 #广播地址 ※ inet6 fe80::8d50:c4d5:97b0:9d64 #IPV6地址 prefixlen 64 scopeid 0x20 #前缀 64 作用域 0x20 ether 00:0c:29:b0:cf:c8 #网卡MAC地址 ※ xqueuelen 1000 #网卡设置的传送队列长度 (Ethernet) #网卡连接类型 RX packets 3948 #接收正确的数据包 ※ bytes 1811465 (1.7 MiB) #接收的数据量与字节 ※ RX errors 0 dropped 0 overruns 0 frame 0 #接收到的错误包、丢弃的数据包数、由于速度过快而丢失的数据包、发生frame错误而丢失的数据包数 ※ TX packets 100 #发送的正确的数据包数 ※ bytes 8116 (7.9 KiB)#发送的数据量、字节 ※ TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 #发送时产生错误的数据包数、丢弃的数据包数、由于速度过快而丢失的数据包数、发生carrier错误而丢失的数据包数、冲突信息包的数目 ※ #只查看指定的网卡 [root@localhost ~]# ifconfig ens32 lo: 本地回环网卡,不是物理网卡,通过软件虚拟出来的一个网卡,127.0.0.1,用于测试本机的联通性 [root@localhost ~]# ping 127.0.0.1 virbr0: 虚拟化的网络接口,通过软件技术虚拟出来的一个网卡,192.168.122.1,KVM虚拟化技术的时候
查看主机名及修改主机名
-
/etc/hostname文件用于存放主机名
-
hostname 命令用于显示和设置主机名
-
命令格式:hostname [新名称]
#查看主机名 [root@localhost ~]# hostname localhost.localdomain #查看主机名配置文件 [root@localhost ~]# cat /etc/hostname localhost.localdomain #临时修改主机名(立刻生效,服务器重启以后失效) [root@localhost ~]# hostname test [root@localhost ~]# hostname test #exit/loguot登出系统 [root@localhost ~]# exit [c:\~]$ ssh 192.168.0.50 [root@test ~]# [root@test ~]# hostname fhsd.jhglshdjkghjkdfhgkjhgdsahgjklhdsfjghsdhgjlhsd [root@test ~]# logout [root@fhsd ~]# hostname sdhjghsdfjkhgkjdfshkgljhsdjfhgjksdhgjkhsdjgjkl [root@fhsd ~]# exit #命令行永久修改主机名(立刻生效,不需要重启系统) [root@localhost ~]# hostnamectl set-hostname test [root@localhost ~]# exit
vi/vim文本编辑器
-
Vim是从 vi 发展出来的一个文本编辑器,vim 具有程序编辑的能力,可以主动的以字体颜色辨别语法的正确性
-
vi/vim 共分为三种模式:命令模式、输入模式、底线命令模式(末行模式)
-
命令模式:刚刚启动 vi/vim,便进入了命令模式
-
输入模式:在命令模式下按 a/i/o 就进入了输入模式
-
ESC,退出输入模式,切换到命令模式
-
底线命令模式:在命令模式下按下:(英文冒号)就进入了底线命令模式
-
-
命令格式:vim 文件名
-
若目标文件不存在,则新创建文件并编辑
-
若目标文件以存在,则打开文件并编辑
-
-
命令模式:刚刚启动 vi/vim,便进入了命令模式
-
i 切换到输入模式,在当前光标所在字符前插入
-
a 切换到输入模式,在当前光标所在字符后插入
-
o 切换到输入模式,在当前光标所在行下插入新行
-
: 切换到底线命令模式,以在最底一行输入命令
-
x 在命令模式下删除当前光标所在的单字符
-
dd 删除一整行内容,配合数字可删除指定范围内的行
-
C 删除当前光标及光标后所有内容并进入输入模式
-
u 恢复上一次修改内容,一次恢复一个操作,可多次恢复,直到恢复本次操作初始状态为止
-
$ 将光标移动至行尾
-
0(零) 将光标移动至行首
-
gg 跳转至文件第一行
-
G 跳转至文件最后一行
-
yy 复制当前行,配合数字可以同时复制多行
-
p 粘贴当前光标所在行下
-
/关键字 搜索文件内关键字,n从上向下快速定位关键字,N从下向上快速定位关键字
-
-
底线命令模式可以输入单个或多个字符的命令,可用的命令非常多。
-
:w 保存
-
:q 退出
-
:wq 保存并退出
-
:x 保存并退出
-
ZZ 保存并退出
-
:q! 强制退出不保存
-
:wq! 强制保存并退出,适用于只读文件(没有写权限)
-
:set nu 以行号形式显示文件内容
-
:set nonu 取消行号显示
-
:行号 快速跳转到指定行
-
:%s 替换文件内容,g替换全文,默认只替换每一行匹配到的第一个关键字(数字s 指定替换的行)
-
:nohl 取消高亮显示
-
[root@test ~]# vim /etc/services
修改网卡IP地址
-
网卡配置文件地址: /etc/sysconfig/network-scripts/网卡名
-
ifconfig #用于显示和设置网卡的参数
-
systemctl restart network #重启网络
-
ifup 网卡名 #启动该网卡设备
-
ifdown 网卡名 #禁用该网卡设备
#修改IP地址 [root@test ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens32 TYPE="Ethernet" PROXY_METHOD="none" BROWSER_ONLY="no" BOOTPROTO="none" DEFROUTE="yes" IPV4_FAILURE_FATAL="no" IPV6INIT="yes" IPV6_AUTOCONF="yes" IPV6_DEFROUTE="yes" IPV6_FAILURE_FATAL="no" IPV6_ADDR_GEN_MODE="stable-privacy" NAME="ens32" UUID="16085f4c-f690-4058-b29e-d55c73387026" DEVICE="ens32" ONBOOT="yes" IPADDR="192.168.0.60" #修改IP地址 PREFIX="24" GATEWAY="192.168.0.254" DNS1="114.114.114.114" IPV6_PRIVACY="no" ~ #重启网络(IP地址发生改变,当前终端会断开) [root@test ~]# systemctl restart network [c:\~]$ ssh 192.168.0.60 #关闭网卡并激活网卡 [root@localhost ~]# ifdown ens32;ifup ens32 #查看所有网卡信息 [root@test ~]# ip a
-
使用命令修改网卡IP地址
nmcli connection modify 网卡名 ipv4.method manual ipv4.addresses Ip地址/掩码 connection.autoconnect yes
解释:2
nmcli connection modify(修改)
网卡名 ipv4.method(配置ipv4地址方法)
manual (手动配置)
ipv4.addresses(ipv4地址)
Ip地址/掩码 connection.autoconnect yes(开机自动连接)
-
激活网卡:nmcli connection up 网卡名
-
关闭网卡:nmcli connection down 网卡名
-
重启网卡:nmcli connection reload 网卡名
#使用命令修改网卡IPV地址 [root@test ~]# nmcli connection modify ens32 ipv4.method manual ipv4.addresses 192.168.0.50/24 connection.autoconnect yes #激活网卡 [root@test ~]# nmcli connection up ens32 [c:\~]$ ssh 192.168.0.50
host命令
-
host用于将一个域名解析到一个IP地址
[root@test ~]# host www.baidu.com www.baidu.com has address 110.242.68.3 www.baidu.com has address 110.242.68.4 www.baidu.com is an alias for www.a.shifen.com. www.baidu.com is an alias for www.a.shifen.com.
nslookup命令
-
nslookup用于查询域名解析是否正常,在网络故障时用来诊断网络问题
[root@test ~]# nslookup www.baidu.com Server