开始安装linux
安装完重启 15. 进入查看许可证,接受协议 16. 可打开以太网 17. 选择汉语 18. 时区shanghaiios
安装以后最好把yum命令对应的安装源改成国内镜像,不然安装软件很慢,可是最小化安装CentOS7网络(非最小化但未打开以太网同理)是没有配置的,此时ping不通,丢包率1c++
字符系统改变终端字体,在 /lib/kbd/consolefonts下存有各类字体对应的文件,使用 setfont sun12x22 这样的命令可临时设置字体,须要持续设置可执行 echo 'setfont sun12x22' >> /etc/bashrc。sql
bashrc文件中的命令会在登入shell时执行。 yum -y update可升级全部软件包及内核(生产环境慎用)shell
我ping不通的时候显示:centos 7 No route to host 和 host unreachable等等,这是由于ifcfg-eth0文件的额配置的值须要加双引号编程
基础init 0 关机 init 1 单用户模式 init 5 图形界面 init 3 命令行界面 init 6 重启 touch xxx 新建文件xxx mkdir 建立目录 man 帮助 help 帮助 区分外部和内部复制代码文件
pwd 显示当前目录名 cd 更改目录 ls [OPTION]... [FILE]... 查看目录下文件,可查看多个 ls 加参数 (可合并写) -l 长格式显示文件 -h 显示文件大小及单位 -r 逆序显示 -a 显示隐藏文件 -t 按事件顺序显示 -R 递归显示 / 表明根目录 /root root用户的home目录 su - xxx 切换为xxx用户复制代码目录
cd cd - 回到上次目录 cd /path/to/... 绝对 cd ./path/to/... 相对(当前) cd ../path/to/... 相对(父级) rmdir 删除空目录 rm -r -f 删除非空目录复制代码
cp 复制目录、文件 参数 -r 递归地拷贝目录 mv 移动(更名) 通配符 * 单个字符 ?复制代码
文本查看 cat 文本显示到终端 head 查看文件开头 tail 查看文件结尾 -f 文件更新后显示信息同步更新(用于观察日志文件) wc 统计文件内容信息复制代码
打包、压缩 早期linux备份文件(主要备份etc中的文件)的介质时磁带,使用命令tar 打包后的磁带文件进行压缩存储,压缩的命令是gzip、bzip2 tar命令集成了gzip、bzip2,打包的时候能够进行压缩, 需带上参数 -z 或者 -j,分别对应gzip、bzip2 tar -c表示压缩 -x表解包 -f指定操做类型为文件(而非文件夹) bzip2压缩最小 在网络中可能见到 .tbz2和.tgz的后缀,这是bzip二、gzip的缩写形式复制代码vim编辑器
vi编辑器ubuntu
多模式编辑:正常模式(复制粘贴)、插入模式(文本输入)、命令模式(保存退出)、可视模式()vim
vim编辑器:在vi基础上增长了无穷步骤的重作和回退windows
通常进入vim最开始的模式就是正常模式,在此输入 i、I、a、A、o、O 均可进入插入模式centos
i 在光标当前位置进入插入模式 I 在光标当前行首进入插入模式 a 在光标的下一位进入插入模式 A 对应I,在末尾进入插入模式 o 在光标下一行进入插入模式(原有的下一行依次向下移动) O 在光标上一行进入插入模式(相似小写o) : 进入命令模式(末行) v 可视模式 h 左移动光标 j 下移动光标 k 上移动光标 l 右移动光标 在图形界面系统中使用方向键也行,但在字符系统中可能只能用hjkl esc 从其余模式回到正常模式 y 命令表示复制 yy 复制(可多行) y$ 复制光标位置到结尾的内容 d 表示剪切 dd 剪切整行 d$ 剪切光标位置到末尾 p 粘贴 u 撤销 ctrl + r 重作 x 删除单个字符(实为剪切单个字符) r 替换单个字符 :set nu 显示行数 以后按数字,而后shift + g可将光标跳转到指定行 小写g(按两次跳转到第一行) 大写G 跳转到最后一行 shift + 6 (^)光标到行首 shift + 4 ($)光标到行尾复制代码
Esc 从其余模式回到正常模式 :w 保存 :q 退出 :w path/file_name 另存 :wq 保存退出vim :q! 不保存退出 :! 临时执行shell命令(后接要执行命令) / 查找字符(后接要查找的字符) 匹配以后按回车,再按n向下一个匹配字符移动光标 shift + n 向上一个匹配字符移动 :s/old/new 对当前行中的文本中的old字符替换为new :%s/old/new 对整个文本进行替换 :%s/old/new 对整个文本内匹配的old进行替换 :x,ys/old/new 再x到y行进行替换 :set 设置命令复制代码
三种进入方法 v 字符可视模式 V 行可视模式 ctrl + v 块可视模式 配合d和I可进行块的便利操做 d是剪切、I是在光标位置插入 在使用I插入后只是在光标位置插入了,要应用到选中的块中须要按esc,这样会应用到选中的块中复制代码用户管理
useradd 新建用户 userdel 删除用户 加上-r直接删除用户在home下的文件夹 好比userdel -r hui passwd 修改用户密码 groupadd 新建用户组 groupdel 删除用户组 新建用户组以后可使用usermod -g 组名 用户名 把已有的用户加入到用户组中 也能够在建立用户的同时直接加入到用户组中 useradd -g groupdemo hui2 groupdemo用户组是已有的复制代码
ubuntu root密码忘记怎么办?加入普通用户具备sudo权限,那么直接sudo su root改密码就行了,不然重置或者重装。su仅仅取得root权限,工做环境不变,仍是在切换以前用户的工做环境;sudo是彻底取得root的权限和root的工做环境。
新建用户会建立 /home/username/下面的目录,可以使用ls -a查看隐藏文件 使用tail -10 /etc/shadow 查看密码文件 使用tail -10 /etc/passwd 查看密码?? 建立时若没有指定用户组,则会建立与用户名同名的用户组复制代码
su 是切换用户 sudo 是以其余用户身份执行命令 visudo 设置须要使用sudo的用户组,好比要给普通用户设置某一命令权限,就是用visudo,而后修改文件 好比关机命令,默认只有root用户才有,不过可能须要受权给其余用户,可是又不能暴露root的密码,因此可把这条指令受权给普通用户 在切换用户是经常临时切换,否则切回root(可能)须要输密码比较麻烦 su - tempUserName复制代码文件含义
/etc/passwd 格式:username:切换要不要密码:userID:user组:注释:家目录:user登陆命令解释器 root:x:0:0:root:/root:/bin/bash yama:x:1000:1000:yama:/home/yama:/bin/bash Linux识别用户不是根据用户名,而是根据userID,因此当有用户ID相同,好比yama的ID为0,则yama会变为root用户;加入把命令解释器设置为 /sbin/nologin 则表明不让用户登陆,好比tcpump用户。复制代码
/etc/shadow 保存用户密码文件 格式:userName:加密后的密码::::: yama:$6$7LKCrS2L5rGfUCbw$rU1BXreBwFPF6To6q1NB7UPkvr2XTvWCh64QmVfgR Wu.J6yPcUDJZ4GUX1Xjkm0LEnHVy0y5g3AOiLaIrRWAz/::0:99999:7:::复制代码
/etc/group 格式:组name:是否须要密码验证(x表示须要?):组的gid:其余组设置 root:x:0: 其中第四个字段表明其余组设置,好比一个用户属于两个组,那么能够在另外一个组的第四个字段处声明(在第四个字段写入username便可)复制代码
/bin是系统的一些指令。bin为binary的简写主要放置一些系统的必备执行档例如:cat、cp、chmod df、dmesg、gzip、kill、ls、mkdir、more、mount、rm、su、tar等。
/sbin通常是指超级用户指令。主要放置一些系统管理的必备程式例如:cfdisk、dhcpcd、dump、e2fsck、fdisk、halt、ifconfig、ifup、 ifdown、init、insmod、lilo、lsmod、mke2fs、modprobe、quotacheck、reboot、rmmod、 runlevel、shutdown等。
/usr/bin 是你在后期安装的一些软件的运行脚本。主要放置一些应用软体工具的必备执行档例如c++、g++、gcc、chdrv、diff、dig、du、eject、elm、free、gnome*、 gzip、htpasswd、kfm、ktop、last、less、locale、m四、make、man、mcopy、ncftp、 newaliases、nslookup passwd、quota、smb*、wget等。
/usr/sbin 放置一些用户安装的系统管理的必备程式例如:dhcpd、httpd、imap、in.*d、inetd、lpd、named、netconfig、nmbd、samba、sendmail、squid、swap、tcpd、tcpdump等。
若是新装的系统,运行一些很正常的诸如:shutdown,fdisk的命令时,悍然提示:bash:command not found。那么首先就要考虑root 的$PATH里是否已经包含了这些环境变量。 能够查看PATH,若是是:PATH=$PATH:$HOME/bin则须要添加成以下:PATH=$PATH:$HOME/bin:/sbin:/usr/bin:/usr/sbin
使用ls加参数可查看文件的各类信息 好比: -rw-rw-r--. 1 yama yama 52 12月 20 12:51 de.c dr-xr-xr-x. 17 root root 224 12月 14 16:29 .. lrwxrwxrwx. 1 root root 7 5月 11 2019 bin -> usr/bin 文件权限表示方法 -rw-r-xr--. 1 userName groupName mTime fileName (容易发现左边的权限和右边的属X一一对应,第一个字符-表示文件类型) rw- 文件属主的权限 r-x 文件属组的权限 r-- 其余用户的权限 目录权限表示方法 x 进入目录 rx 显示目录内的文件名 wx 修改目录内的文件名 建立新文件有默认权限,根据umask值计算,属主和属组根据当前进程的用户来设定复制代码
vim对文件的修改保存其实是一种对原有文件的替换
类型: - 普通文件 d 目录文件(一切皆文件,目录也是文件) b 块特殊文件 c 字符特殊文件 l 符号连接 f 命名管道 s 套接字文件 字符权限: r 读 w 写 x 执行(好比ls、cat等命令其实都是可执行的文件,对于一个文件使用vim打开也须要执行权限) 数字权限表示方法:(八进制) r = 4 w = 2 x = 1 特殊权限s对应4,t对应1复制代码修改权限
chmod 修改文件、目录权限 因为权限可用字符、数字表示,因此修改方法也有两种chmod u+x fileNamechmod 755 fileName
u、g、o、a分别表明修改上图中粉色、蓝色、绿色、所有
chmod u+ 增长权限 chmod u- 减小权限 chmod u= 直接设置权限复制代码
以下更改de.c文件的权限:
[root@localhost]# ls -ld de.c -rw-rw-r--. 1 yama yama 52 12月 20 12:51 de.c [root@localhost]# chmod u-w,g+x,o=rwx de.c [root@localhost]# ls -ld de.c -r--rwxrwx. 1 yama yama 52 12月 20 12:51 de.c复制代码
还有一种方法是使用数字来表示,数字467分别表明读、读写、读写执行,也就是权限值相加 好比 chmod 446 de.c 表明给de.c文件设置属主读权限,属组读权限,其余用户读写权限 [root@localhost]# ls -ld de.c -rw-rw-r--. 1 yama yama 52 12月 20 12:51 de.c [root@localhost]# chmod 446 de.c [root@localhost]# ls -ld de.c -r--r--rw-. 1 yama yama 52 12月 20 12:51 de.c [root@localhost]# chmod 664 de.c [root@localhost]# ls -ld de.c -rw-rw-r--. 1 yama yama 52 12月 20 12:51 de.c复制代码
在Linux里面建立文件默认是666权限,可是会减去umask文件掩码(0022),也就是022,因此新建文件默认权限是644,也就是 rw-r--r--。
chown 更改属组、属主
经本身的centos8测试,属主及属组为yama的文件不能被yama用户更改属组和属主,这可能和本身的配置有关,root用户不受限制
chown yama ./de.c 表示更改de.c文件的属主为yama, 若是要更改属组须要使用 chown :groupName fileName
chgrp 能够单独更改属组(不经常使用)
在terminal使用 ctrl + r 能够搜索以前使用过的命令
尽可能不要使用root用户作权限的修改,由于它是不受任何限制的,即使一个文件只有属主才有读权限,root用户也能对其进行写入等等操做。 在教程中都是用root用户,这是为了减小练习环境不一致致使的错误解读,并且只是练习环境,因此可使用root,在生产环境中不要这么作。
echo 显示(对比编程语言中的print) echo huidt > fileA 表示把本来的输出‘huidt’ 重定向至fileA文件中 > 这个符号会把本来文件中的内容所有清空 当文件权限出现冲突,好比: user1用户属于group1用户组,文件fileA的权限是----w----,也就是说只有用户组李的用户对其才有写权限 而属主user1并无任何权限,可是user1又属于group1, 此时user1对文件fileA是没有任何权限的,这时候冲突的权限要以属主为准,而不是属组复制代码
对于目录文件,通常的权限组合是x、rx、wx 对于系统目录,下面的目录权限可能不同,文件确是同样的 对于这样的权限叫作特殊权限,有如下几种 SUID:用于二进制可执行文件,执行命令时取得文件属主权限。如 /usr/bin.passwd SGID:用于目录,在改目录下建立新的文件和目录,权限自动改成该目录的属组 SBIT:用于目录,该目录下新建的文件和目录,仅root和本身能够删除。如 /tmp 以下:有一个特殊的s权限,指的是SUID,表明无论是root用户仍是普通用户在执行这个文件时都会以文件的属主进行操做 [yama@localhost demo]$ ls -l /usr/bin/passwd -rwsr-xr-x. 1 root root 33600 4月 7 2020 /usr/bin/passwd复制代码
SUID的意思是 set user id,好比普通用户执行 passwd 命令的时候,对应的密码文件保存在/etc/shadow 下 ----------. 1 root root 1489 12月 20 13:52 /etc/shadow 这个文件任何用户都是没有权限的(root除外,它的属主也是root),因此 s 表明当普通用户,好比 yama 执行的时候,会自动取得属主root的权限,这使得普通用户也有了操做系统文件的部分权限
还有SBIT,能够看到末尾的其余用户有一个t权限,由于/tmp是临时目录,任何用户均可以在此操做,但为了防止其余用户删掉当前的文件,因此设置t权限
[root@localhost demo]# ls -ld /tmp drwxrwxrwt. 31 root root 4096 12月 21 15:59 /tmp复制代码
在修改特殊权限的时候再也不使用权限数字相加,而是将特殊权限单独列在数字开头,好比s对应4,t对应1,那么 /usr/bin/passwd 文件的权限就是4755,/tmp 权限就是1777,就是在原有数字的前面加上特殊权限数字。
网络管理net-tools VS iproute2
ifconfig eth0 第一块网卡(网络接口) 第一个网络接口也可能叫其余名字: eno1 板载网卡 ens33 PCI-E网卡 enp0s3 没法获取物理信息的PCI-E网卡 CentOS 7使用了一致性网络设备命名,以上不匹配则使用eth0复制代码
以下为 ifconfig 的结果 ens33即为个人设备网卡名,inet 表IP地址,netmask 表子网掩码,inet6 表MAC地址,RX、TX表发送和接受的数据。其中还有一个 lo 网卡表示本地环回,IP地址永远是127.0.0.1,用来开发测试,virbr0 网卡通常是Linux虚拟化出来的一些网关
[yama@localhost demo]$ ifconfig ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.43.127 netmask 255.255.255.0 broadcast 192.168.43.255 inet6 fe80::1744:b082:b9d8:f881 prefixlen 64 scopeid 0x20<link> ether 00:0c:29:f4:9f:76 txqueuelen 1000 (Ethernet) RX packets 47 bytes 9571 (9.3 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 81 bytes 9273 (9.0 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10<host> loop txqueuelen 1000 (Local Loopback) RX packets 48 bytes 4080 (3.9 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 48 bytes 4080 (3.9 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 virbr0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500 inet 192.168.122.1 netmask 255.255.255.0 broadcast 192.168.122.255 ether 52:54:00:02:6f:c5 txqueuelen 1000 (Ethernet) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 0 bytes 0 (0.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0复制代码
查看网线链接 [root@localhost yama]# mii-tool eth0 eth0: negotiated 1000baseT-FD flow-control, link ok复制代码
当网络通讯时须要链接其余网络地址范围时就须要配置网关,也可称做配置路由。 网关Gateway又叫网间链接器、协议转换器,在网络层以上实现网络互连。 网关实质上是一个网络通向其余网络的IP地址,访问某个网站时把包首先发送到哪一个IP地址(这个IP地址是网关), 而后由这个IP地址上的设备负责分发数据包。
route命令,使用n参数不解析主机名
[root@localhost yama]# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 192.168.43.1 0.0.0.0 UG 100 0 0 eth0 192.168.43.0 0.0.0.0 255.255.255.0 U 100 0 0 eth0 192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0 [root@localhost yama]# route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface default _gateway 0.0.0.0 UG 100 0 0 eth0 192.168.43.0 0.0.0.0 255.255.255.0 U 100 0 0 eth0 192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0复制代码
上面的default表示默认网关192.168.43.1,除默认网关以外还可配置器明细路由,也叫静态路由
ifconfig <接口> <IP地址> [netmask] 表修改网络配置 ifup <接口> 启用网卡,好比ifup eth0 ifdown <接口> 禁用网卡 添加网关 添加默认网关 route add default gw <Gateway IP> 添加指定网关 route add -host <指定IP> gw <Gateway IP> 在访问特定主机ip时走指定的网关 添加指定网段的网关 route add -net <指定网段> netmask <子网掩码> gw <Gateway IP> 在访问指定网段时的路由 删除网关 route del default gw <Gateway IP>复制代码
修改网关通常是删除旧的再增长新的
网络命令集合:ip命令
ip addr lsxxxx ......对应:ifconfig ip link set dev eth0 up 设置网卡启停对应:ifup eth0 和 ifdown eth0 ip addr add 10.0.0.1/24 dev eth1 对应:ifconfig eth1 10.0.0.1 netmask 255.255.255.0(设置ip和子网掩码) ip route add 10.0.0.1/24 via 192.168.0.1 对应:route add -net 10.0.0.0 netmask 255.255.255.0 gw 192.168.0.1复制代码
在对大量网络设备进行操做时若是设备网卡名不一样,则批量化操做起来就会比较麻烦,因此须要修改成一致的网卡名。
网卡命名规则受两个参数的影响:biosdevname 和 net.ifnames
以下是CentOS_8的grub文件的内容,其中GRUB_CMDLINE_LINUX表示系统启动时linux须要作的一些内容(引导内核kernel),相似于启动菜单,在quiet以后设置参数便可,设置后不会当即生效,由于这个文件只是用来用户读取的
GRUB_TIMEOUT=5 GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)" GRUB_DEFAULT=saved GRUB_DISABLE_SUBMENU=true GRUB_TERMINAL_OUTPUT="console" GRUB_CMDLINE_LINUX="crashkernel=auto resume=/dev/mapper/cl-swap rd .lvm.lv=cl/root rd.lvm.lv=cl/swap rhgb quiet" GRUB_DISABLE_RECOVERY="true" GRUB_ENABLE_BLSCFG=true复制代码
步骤总结:
biosdevname | net.ifnames | NIC name | |
---|---|---|---|
default | 0 | 1 | ens33 |
Combination 1 | 1 | 0 | em1 |
Combination 2 | 0 | 0 | eth0 |
复制代码
见网络配置命令
见iproute2
ping traceroute mtr nslookup telnet tcpdump netstat ss复制代码
traceroute可加参数w,好比 traceroute -w 1 www.baidu.com ,表示若是其中的一个ip长时间超时,则只等待最多1s
[yama@localhost ~]$ traceroute -w 1 yama.thdong.top traceroute to yama.thdong.top (47.103.10.22), 30 hops max, 60 byte packets 1 _gateway (192.168.43.1) 6.442 ms 6.479 ms 7.087 ms 2 * * * 3 10.138.76.213 (10.138.76.213) 57.145 ms 57.087 ms 57.167 ms 4 * * * 其中的*号表示主机不支持traceroute追踪复制代码
mtr直接执行,当主机间通讯时会显示比traceroute更加详细的信息。
nslookup可从域名获得ip [yama@localhost ~]$ nslookup yama.thdong.top Server: 192.168.43.1 Address: 192.168.43.1#53 Non-authoritative answer: Name: yama.thdong.top Address: 47.103.10.22 server默认是DNS [root@centos8 demo]# nslookup > server Default server: 172.18.6.89 Address: 172.18.6.89#53 Default server: 114.114.114.114 Address: 114.114.114.114#53 Default server: 172.18.6.88 Address: 172.18.6.88#53复制代码
telnet可用于检测与目标主机的某端口是否畅通,是常见的控制远程服务器的方法,ctrl + ] 中止,quit退出telnet [yama@localhost ~]$ telnet www.baidu.com 80 Trying 36.152.44.95... Connected to www.baidu.com. Escape character is '^]'. ^] telnet> quit Connection closed. [yama@localhost ~]$ 复制代码
tcpdump通常做为网络抓包工具 [root@localhost demo]# tcpdump -i any -n port 80 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on any, link-type LINUX_SLL (Linux cooked), capture size 262144 bytes ^C 0 packets captured 0 packets received by filter 0 packets dropped by kernel -i any表示抓取任意网卡,-n表示不解析成域名(以IP显示),port 80表示80端口 还能够捕获某一主机,使用host参数 tcpdump -i any -n host 10.0.0.1 若是向指定某一ip的端口,则同时使用host和port tcpdump -i any -n host 10.0.0.1 and port 80 可以使用-w 以及文件路径及文件名把捕获到的结果保存下来复制代码
netstat用于显示各类网络相关信息,如网络链接,路由表,接口状态 (Interface Statistics),masquerade 链接,多播成员 (Multicast Memberships) 等等 [root@localhost demo]# netstat -ntpl Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1/systemd tcp 0 0 192.168.122.1:53 0.0.0.0:* LISTEN 1705/dnsmasq tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1118/sshd tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 1115/cupsd tcp6 0 0 :::111 :::* LISTEN 1/systemd tcp6 0 0 :::22 :::* LISTEN 1118/sshd tcp6 0 0 ::1:631 :::* LISTEN 1115/cupsd n显示ip t表以tcp方式 p表进程 l表tcp状态(listen)复制代码
ss命令使用与netstat基本相同,显示格式不一样 [root@localhost demo]# ss -ntpl State Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN 0 128 0.0.0.0:111 0.0.0.0:* users:(("rpcbind",pid=879,fd=4),("systemd",pid=1,fd=37)) LISTEN 0 32 192.168.122.1:53 0.0.0.0:* users:(("dnsmasq",pid=1705,fd=6)) LISTEN 0 128 0.0.0.0:22 0.0.0.0:* users:(("sshd",pid=1118,fd=5)) LISTEN 0 5 127.0.0.1:631 0.0.0.0:* users:(("cupsd",pid=1115,fd=10)) LISTEN 0 128 [::]:111 [::]:* users:(("rpcbind",pid=879,fd=6),("systemd",pid=1,fd=39)) LISTEN 0 128 [::]:22 [::]:* users:(("sshd",pid=1118,fd=7)) LISTEN 0 5 [::1]:631 [::]:* users:(("cupsd",pid=1115,fd=9)) 复制代码
网络服务管理程序分为两种:Sysv和systemd
有关配置文件为/etc/sysconfig/network-scripts/ifcfg-eth0 和 /etc/hosts
在centos7中使用 service network status 查看网络状态,其实已经使用了systemctl来进行控制,在7中处理network,还有NetworkManager这样一个服务,而centos8 已经用NetworkManager替换了network,使用 systemctl status NetworkManager查看网络状态,不过NetworkManager服务彻底是由systemctl来警醒控制的。
以下查看网络状态
[root@localhost demo]# systemctl status NetworkManager ● NetworkManager.service - Network Manager Loaded: loaded (/usr/lib/systemd/system/NetworkManager.service; enabled; vendor pr> Active: active (running) since Fri 2020-12-25 16:56:47 CST; 35min ago Docs: man:NetworkManager(8) Main PID: 5109 (NetworkManager) Tasks: 3 (limit: 11154) Memory: 4.5M CGroup: /system.slice/NetworkManager.service └─5109 /usr/sbin/NetworkManager --no-daemon 12月 25 17:26:49 centos8.yama101 NetworkManager[5109]: <info> [1608888409.6276] dhcp> 12月 25 17:26:49 centos8.yama101 NetworkManager[5109]: <info> [1608888409.6276] dhcp> 12月 25 17:26:49 centos8.yama101 NetworkManager[5109]: <info> [1608888409.6276] dhcp> 12月 25 17:26:49 centos8.yama101 NetworkManager[5109]: <info> [1608888409.6276] dhcp> 12月 25 17:26:49 centos8.yama101 NetworkManager[5109]: <info> [1608888409.6276] dhcp> 12月 25 17:26:49 centos8.yama101 NetworkManager[5109]: <info> [1608888409.6276] dhcp> 12月 25 17:26:49 centos8.yama101 NetworkManager[5109]: <info> [1608888409.6276] dhcp> 12月 25 17:26:49 centos8.yama101 NetworkManager[5109]: <info> [1608888409.6276] dhcp> 12月 25 17:26:50 centos8.yama101 NetworkManager[5109]: <info> [1608888410.7571] agen> 12月 25 17:30:49 centos8.yama101 NetworkManager[5109]: <info> [1608888649.6596] audi> [root@localhost demo]# 复制代码
查看NetworkManager服务
[yama@centos8 demo]$ systemctl list-unit-files NetworkManager.service UNIT FILE STATE NetworkManager.service enabled 1 unit files listed.复制代码
这样理解network服务,NetworkManager服务,network服务是centos6的网络默认管理工具, centos7重写了一遍就是NetworkManage服务,由于network只能支持service来管理, 而centos7默认的服务管理工具换成了systemctl(centos7中的network和NetworkManager都是用它实现的)
在centos7中若是须要沿用之前的控制方式就须要禁用新的方式(NetworkManager),反之在使用新的方式进行控制的时候建议禁用旧的方式;不要两套一块儿用。
在centos7中使用 chkconfig --list network 能够查看network在不一样运行级别中的使用状况(在centos8中已经查不到), 而后可以使用 chkconfig --level xxxx(数字级别) network off|on 进行启用或禁用 使用 systemctl enable|disable NetworkManager 启用或禁用NetworkManager服务复制代码
ifconfig 和 ip 是一样的状况,他们均可以查询网络状态,均可以设置ip,可是设置了以后只能保存在内存中,重启以后配置就没有了。要想重启以后还须要保持配置须要写入配置文件, 经过service network restart 从新加载配置文件来让网络配置生效,记住在centos8中只有systemctl restart NetworkManager了
/etc/sysconfig/network-scripts/ifcfg-* 以及 /etc/hosts,前者是各个网卡的配置文件
[root@localhost demo]# hostname centos8-101.yama 临时修改主机名 [root@localhost demo]# hostnamectl set-hostname centos8.yama101 永久修改,永久修改记得同时更改 /etc/hosts 文件 中本机地址127.0.0.1的对应关系,以下 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 127.0.0.1 centos8.yama101复制代码软件安装
CentOS、RedHat、Fedora使用yum包管理器,软件安装包格式为rpm,(RedHat Package Manager) Debian、Ubuntu使用apt包管理器,软件安装格式为deb
rpm命令经常使用参数 -q 查村软件包 -i 安装软件包 -e 卸载软件包 查询时可以使用 -a | more 进行分屏,例如 rpm -qa | more 分屏后空格看下一屏,q退出复制代码
能够下载到光盘中,插入光驱,而后在Linux中识别,/dev/ 文件夹下的块设备(指b开头的文件,没法使用cat、cp等命令操做,详见文件含义),而后执行
把真的光盘作成光盘镜像 dd if=/dev/file of=/xxx/xxx.iso 可以使用mount(挂载)命令对这种块特殊文件进行操做,特别是在字符界面不会有像windows那样插入U盘弹出盘符的提示,因此必须手动操做。 mount /dev/sr0 /mnt rpm包在复制代码
虚拟机软件可以使用VirtualBox,免费,轻量 新建用户 [root@centos8 yama]# useradd 2017218049 useradd:无效的用户名“2017218049” [root@centos8 yama]# useradd thd2017218049 [root@centos8 yama]# passwd thd2017218049 更改用户 thd2017218049 的密码 。 新的 密码: 无效的密码: 密码少于 8 个字符 从新输入新的 密码: passwd:全部的身份验证令牌已经成功更新。 [root@centos8 yama]# su thd2017218049 [thd2017218049@centos8 yama]$ 经常使用指令 [thd2017218049@centos8 ~]$ cd /home/thd2017218049 [thd2017218049@centos8 ~]$ mkdir 2017218049 [thd2017218049@centos8 ~]$ touch index.c [thd2017218049@centos8 ~]$ man vim [thd2017218049@centos8 ~]$ vim index.c [thd2017218049@centos8 ~]$ mv ./index.c ./buble.c [thd2017218049@centos8 ~]$ ls 2017218049 buble.c [thd2017218049@centos8 ~]$ ls -lhd ./* drwxrwxr-x. 2 thd2017218049 thd2017218049 6 12月 28 12:14 ./2017218049 -rw-rw-r--. 1 thd2017218049 thd2017218049 566 12月 28 12:20 ./buble.c [thd2017218049@centos8 ~]$ mv ./buble.c ./2017218049/buble.c [thd2017218049@centos8 ~]$ cd 2017218049 [thd2017218049@centos8 2017218049]$ ls buble.c [thd2017218049@centos8 2017218049]$ chmod 754 buble.c [thd2017218049@centos8 2017218049]$ ls -lh * -rwxr-xr--. 1 thd2017218049 thd2017218049 566 12月 28 12:20 buble.c [thd2017218049@centos8 2017218049]$ mii-tool ens33 SIOCGMIIPHY on 'ens33' failed: Operation not permitted [thd2017218049@centos8 2017218049]$ su - root 密码: 上一次登陆:一 12月 28 12:08:13 CST 2020pts/0 上 [root@centos8 ~]# mii-tool ens33 ens33: negotiated 1000baseT-FD flow-control, link ok [root@centos8 ~]# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 192.168.43.1 0.0.0.0 UG 100 0 0 ens33 192.168.43.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33 192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0 [root@centos8 ~]# vim /etc/default/grub [root@centos8 ~]# cd /etc/default [root@centos8 default]# ls grub nss useradd [root@centos8 default]# cd /etc/sysconfig/network-scripts [root@centos8 network-scripts]# ls ifcfg-ens33 ifdown-ppp ifup-ib ifup-Team ifcfg-lo ifdown-routes ifup-ippp ifup-TeamPort ifdown ifdown-sit ifup-ipv6 ifup-tunnel ifdown-bnep ifdown-Team ifup-isdn ifup-wireless ifdown-eth ifdown-TeamPort ifup-plip init.ipv6-global ifdown-ib ifdown-tunnel ifup-plusb network-functions ifdown-ippp ifup ifup-post network-functions-ipv6 ifdown-ipv6 ifup-aliases ifup-ppp ifdown-isdn ifup-bnep ifup-routes ifdown-post ifup-eth ifup-sit [root@centos8 network-scripts]# mv ./ifcfg-ens33 ./ifcfg-eth0 [root@centos8 network-scripts]# ls ifcfg-eth0 ifdown-ppp ifup-ib ifup-Team ifcfg-lo ifdown-routes ifup-ippp ifup-TeamPort ifdown ifdown-sit ifup-ipv6 ifup-tunnel ifdown-bnep ifdown-Team ifup-isdn ifup-wireless ifdown-eth ifdown-TeamPort ifup-plip init.ipv6-global ifdown-ib ifdown-tunnel ifup-plusb network-functions ifdown-ippp ifup ifup-post network-functions-ipv6 ifdown-ipv6 ifup-aliases ifup-ppp ifdown-isdn ifup-bnep ifup-routes ifdown-post ifup-eth ifup-sit [root@centos8 network-scripts]# grub2-mkconfig -o /boot/grub2/grub.cfg Generating grub configuration file ... Found linux image: /boot/vmlinuz-3.10.0-1160.el7.x86_64 Found initrd image: /boot/initramfs-3.10.0-1160.el7.x86_64.img Found linux image: /boot/vmlinuz-0-rescue-d7a82457455c4d0798c57d3f4632b8e8 Found initrd image: /boot/initramfs-0-rescue-d7a82457455c4d0798c57d3f4632b8e8.img done [root@centos8 network-scripts]# ifconfig ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.43.235 netmask 255.255.255.0 broadcast 192.168.43.255 inet6 fe80::33fb:dc46:4fc0:7864 prefixlen 64 scopeid 0x20<link> inet6 2409:8930:b4d3:228b:b373:3115:8bc6:d393 prefixlen 64 scopeid 0x0<global> ether 00:0c:29:6b:6f:d6 txqueuelen 1000 (Ethernet) RX packets 2261 bytes 1891625 (1.8 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 1041 bytes 81817 (79.8 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10<host> loop txqueuelen 1000 (Local Loopback) RX packets 323 bytes 28152 (27.4 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 323 bytes 28152 (27.4 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 virbr0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500 inet 192.168.122.1 netmask 255.255.255.0 broadcast 192.168.122.255 ether 52:54:00:2e:20:25 txqueuelen 1000 (Ethernet) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 0 bytes 0 (0.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 [root@centos8 network-scripts]# pwd /etc/sysconfig/network-scripts [root@centos8 network-scripts]# ls ifcfg-eth0 ifdown-ppp ifup-ib ifup-Team ifcfg-lo ifdown-routes ifup-ippp ifup-TeamPort ifdown ifdown-sit ifup-ipv6 ifup-tunnel ifdown-bnep ifdown-Team ifup-isdn ifup-wireless ifdown-eth ifdown-TeamPort ifup-plip init.ipv6-global ifdown-ib ifdown-tunnel ifup-plusb network-functions ifdown-ippp ifup ifup-post network-functions-ipv6 ifdown-ipv6 ifup-aliases ifup-ppp ifdown-isdn ifup-bnep ifup-routes ifdown-post ifup-eth ifup-sit [root@centos8 network-scripts]# vim ifcfg-eth0 [root@centos8 network-scripts]# grub2-mkconfig -o /boot/grub2/grub.cfg Generating grub configuration file ... Found linux image: /boot/vmlinuz-3.10.0-1160.el7.x86_64 Found initrd image: /boot/initramfs-3.10.0-1160.el7.x86_64.img Found linux image: /boot/vmlinuz-0-rescue-d7a82457455c4d0798c57d3f4632b8e8 Found initrd image: /boot/initramfs-0-rescue-d7a82457455c4d0798c57d3f4632b8e8.img done [root@centos8 network-scripts]# hostname centos8.yama102 [root@centos8 network-scripts]# hostnamectl set-hostname centos7.yama102 [root@centos8 network-scripts]# hostname centos7.yama102 [root@centos8 network-scripts]# cd /home/thd2017218049/2017218049 [root@centos8 2017218049]# ls buble.c [root@centos8 2017218049]# mv ./buble.c ./2017218049.c [root@centos8 2017218049]# ls 2017218049.c [root@centos8 2017218049]# gcc -v bash: gcc: 未找到命令... [root@centos8 2017218049]# mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak [root@centos8 2017218049]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo --2020-12-28 12:47:21-- http://mirrors.aliyun.com/repo/Centos-7.repo 正在解析主机 mirrors.aliyun.com (mirrors.aliyun.com)... 112.29.211.20, 112.28.200.242, 112.30.160.147, ... 正在链接 mirrors.aliyun.com (mirrors.aliyun.com)|112.29.211.20|:80... 已链接。 已发出 HTTP 请求,正在等待回应... 200 OK 长度:2523 (2.5K) [application/octet-stream] 正在保存至: “/etc/yum.repos.d/CentOS-Base.repo” 100%[======================================>] 2,523 --.-K/s 用时 0s 2020-12-28 12:47:22 (5.94 MB/s) - 已保存 “/etc/yum.repos.d/CentOS-Base.repo” [2523/2523]) [root@centos8 2017218049]# yum makecache 已加载插件:fastestmirror, langpacks Determining fastest mirrors * base: mirrors.aliyun.com * extras: mirrors.aliyun.com * updates: mirrors.aliyun.com base | 3.6 kB 00:00 extras | 2.9 kB 00:00 updates | 2.9 kB 00:00 (1/10): extras/7/x86_64/filelists_db | 224 kB 00:01 base/7/x86_64/primary_db FAILED http://mirrors.cloud.aliyuncs.com/centos/7/os/x86_64/repodata/6d0c3a488c282fe537794b5946b01e28c7f44db79097bb06826e1c0c88bad5ef-primary.sqlite.bz2: [Errno 14] curl#6 - "Could not resolve host: mirrors.cloud.aliyuncs.com; Unknown error" 正在尝试其它镜像。 (2/10): extras/7/x86_64/primary_db | 222 kB 00:00 (3/10): base/7/x86_64/group_gz | 153 kB 00:02 (4/10): base/7/x86_64/other_db | 2.6 MB 00:02 (5/10): updates/7/x86_64/other_db | 334 kB 00:00 (6/10): updates/7/x86_64/filelists_db | 2.7 MB 00:01 (7/10): base/7/x86_64/primary_db | 6.1 MB 00:03 base/7/x86_64/filelists_db FAILED http://mirrors.aliyuncs.com/centos/7/os/x86_64/repodata/d6d94c7d406fe7ad4902a97104b39a0d8299451832a97f31d71653ba982c955b-filelists.sqlite.bz2: [Errno 12] Timeout on http://mirrors.aliyuncs.com/centos/7/os/x86_64/repodata/d6d94c7d406fe7ad4902a97104b39a0d8299451832a97f31d71653ba982c955b-filelists.sqlite.bz2: (28, 'Connection timed out after 30000 milliseconds') 正在尝试其它镜像。 extras/7/x86_64/other_db FAILED http://mirrors.aliyuncs.com/centos/7/extras/x86_64/repodata/2e9fd48ed164af0d6a80c2a07dc67c09d733ea94fbde75f81cc7076405c90124-other.sqlite.bz2: [Errno 12] Timeout on http://mirrors.aliyuncs.com/centos/7/extras/x86_64/repodata/2e9fd48ed164af0d6a80c2a07dc67c09d733ea94fbde75f81cc7076405c90124-other.sqlite.bz2: (28, 'Connection timed out after 30000 milliseconds') 正在尝试其它镜像。 (8/10): base/7/x86_64/filelists_db | 7.2 MB 00:03 (9/10): extras/7/x86_64/other_db | 134 kB 00:01 updates/7/x86_64/primary_db FAILED http://mirrors.aliyuncs.com/centos/7/updates/x86_64/repodata/54834ed57c7c2b0259f68aa900001055256475f9349907045268aacc586f0875-primary.sqlite.bz2: [Errno 12] Timeout on http://mirrors.aliyuncs.com/centos/7/updates/x86_64/repodata/54834ed57c7c2b0259f68aa900001055256475f9349907045268aacc586f0875-primary.sqlite.bz2: (28, 'Connection timed out after 30002 milliseconds') 正在尝试其它镜像。 (10/10): updates/7/x86_64/primary_db | 4.7 MB 00:01 元数据缓存已创建 [root@centos8 2017218049]# rpm -q gcc 未安装软件包 gcc [root@centos8 2017218049]# yum install gcc -y 已加载插件:fastestmirror, langpacks Loading mirror speeds from cached hostfile * base: mirrors.aliyun.com * extras: mirrors.aliyun.com * updates: mirrors.aliyun.com 正在解决依赖关系 --> 正在检查事务 ---> 软件包 gcc.x86_64.0.4.8.5-44.el7 将被 安装 --> 正在处理依赖关系 cpp = 4.8.5-44.el7,它被软件包 gcc-4.8.5-44.el7.x86_64 须要 --> 正在处理依赖关系 glibc-devel >= 2.2.90-12,它被软件包 gcc-4.8.5-44.el7.x86_64 须要 --> 正在检查事务 ---> 软件包 cpp.x86_64.0.4.8.5-44.el7 将被 安装 ---> 软件包 glibc-devel.x86_64.0.2.17-317.el7 将被 安装 --> 正在处理依赖关系 glibc-headers = 2.17-317.el7,它被软件包 glibc-devel-2.17-317.el7.x86_64 须要 --> 正在处理依赖关系 glibc-headers,它被软件包 glibc-devel-2.17-317.el7.x86_64 须要 --> 正在检查事务 ---> 软件包 glibc-headers.x86_64.0.2.17-317.el7 将被 安装 --> 正在处理依赖关系 kernel-headers >= 2.2.1,它被软件包 glibc-headers-2.17-317.el7.x86_64 须要 --> 正在处理依赖关系 kernel-headers,它被软件包 glibc-headers-2.17-317.el7.x86_64 须要 --> 正在检查事务 ---> 软件包 kernel-headers.x86_64.0.3.10.0-1160.11.1.el7 将被 安装 --> 解决依赖关系完成 依赖关系解决 ================================================================================ Package 架构 版本 源 大小 ================================================================================ 正在安装: gcc x86_64 4.8.5-44.el7 base 16 M 为依赖而安装: cpp x86_64 4.8.5-44.el7 base 5.9 M glibc-devel x86_64 2.17-317.el7 base 1.1 M glibc-headers x86_64 2.17-317.el7 base 690 k kernel-headers x86_64 3.10.0-1160.11.1.el7 updates 9.0 M 事务概要 ================================================================================ 安装 1 软件包 (+4 依赖软件包) 总下载量:33 M 安装大小:59 M Downloading packages: 警告:/var/cache/yum/x86_64/7/base/packages/cpp-4.8.5-44.el7.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID f4a80eb5: NOKEY cpp-4.8.5-44.el7.x86_64.rpm 的公钥还没有安装 (1/5): cpp-4.8.5-44.el7.x86_64.rpm | 5.9 MB 00:03 (2/5): glibc-devel-2.17-317.el7.x86_64.rpm | 1.1 MB 00:00 (3/5): glibc-headers-2.17-317.el7.x86_64.rpm | 690 kB 00:00 (4/5): gcc-4.8.5-44.el7.x86_64.rpm | 16 MB 00:08 kernel-headers-3.10.0-1160.11.1.el7.x86_64.rpm 的公钥还没有安装 32 MB 00:00 ETA (5/5): kernel-headers-3.10.0-1160.11.1.el7.x86_64.rpm | 9.0 MB 00:04 -------------------------------------------------------------------------------- 总计 3.5 MB/s | 33 MB 00:09 从 http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7 检索密钥 导入 GPG key 0xF4A80EB5: 用户ID : "CentOS-7 Key (CentOS 7 Official Signing Key) <security@centos.org>" 指纹 : 6341 ab27 53d7 8a78 a7c2 7bb1 24c6 a8a7 f4a8 0eb5 来自 : http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7 Running transaction check Running transaction test Transaction test succeeded Running transaction 正在安装 : cpp-4.8.5-44.el7.x86_64 1/5 正在安装 : kernel-headers-3.10.0-1160.11.1.el7.x86_64 2/5 正在安装 : glibc-headers-2.17-317.el7.x86_64 3/5 正在安装 : glibc-devel-2.17-317.el7.x86_64 4/5 正在安装 : gcc-4.8.5-44.el7.x86_64 5/5 验证中 : glibc-devel-2.17-317.el7.x86_64 1/5 验证中 : gcc-4.8.5-44.el7.x86_64 2/5 验证中 : kernel-headers-3.10.0-1160.11.1.el7.x86_64 3/5 验证中 : glibc-headers-2.17-317.el7.x86_64 4/5 验证中 : cpp-4.8.5-44.el7.x86_64 5/5 已安装: gcc.x86_64 0:4.8.5-44.el7 做为依赖被安装: cpp.x86_64 0:4.8.5-44.el7 glibc-devel.x86_64 0:2.17-317.el7 glibc-headers.x86_64 0:2.17-317.el7 kernel-headers.x86_64 0:3.10.0-1160.11.1.el7 完毕! [root@centos8 2017218049]# rpm -q gcc gcc-4.8.5-44.el7.x86_64 [root@centos8 2017218049]# pwd /home/thd2017218049/2017218049 [root@centos8 2017218049]# ls 2017218049.c [root@centos8 2017218049]# touch Makefile [root@centos8 2017218049]# vim Makefile [root@centos8 2017218049]# vim Makefile [root@centos8 2017218049]# make clean rm -rf hello *.elf *.gdb *.o [root@centos8 2017218049]# make make: *** 没有规则能够建立“hello”须要的目标“hello.o”。 中止。 [root@centos8 2017218049]# vim Makefile [root@centos8 2017218049]# make clean Makefile:1: *** 遗漏分隔符 。 中止。 [root@centos8 2017218049]# vim Makefile [root@centos8 2017218049]# make clean Makefile:1: *** 遗漏分隔符 。 中止。 [root@centos8 2017218049]# gcc -o 2017218049 2017218049.c 2017218049.c: 在函数‘main’中: 2017218049.c:14:5: 错误:只容许在 C99 模式下使用‘for’循环初始化声明 for(int i = 0;i < 10;i++){ ^ 2017218049.c:14:5: 附注:使用 -std=c99 或 -std=gnu99 来编译您的代码 2017218049.c:19:9: 错误:‘i’重声明为没有外部连接 int i; ^ 2017218049.c:14:13: 附注:‘i’的上一个定义在此 for(int i = 0;i < 10;i++){ ^ [root@centos8 2017218049]# vim 2017219049.c [root@centos8 2017218049]# ls 2017218049.c Makefile [root@centos8 2017218049]# vim 2017218049.c [root@centos8 2017218049]# vim 2017218049.c [root@centos8 2017218049]# gcc -o 2017218049 2017218049.c [root@centos8 2017218049]# ls 2017218049 2017218049.c Makefile [root@centos8 2017218049]# ./2017218049 3 4 5 2 6 8 78 34 12 9 2 3 4 5 6 8 9 12 34 78 [root@centos8 2017218049]# 复制代码Makefile参考