课程目标
熟练使用VI编辑器在命令行中编辑文本文件
课程实验
使用VI完成文本文件的常规编辑和操作任务
使用VI完成修改网卡的设置,指定静态的ip地址
课堂的引入
任何一个操作系统,均需要进行编辑文本文件,比如windows中可以使用记事本,或者第三方文件编辑器notepad++,ultraedit,typora,editplus等等,事实上,任何一门程序设计语言,其源代码就是文本,
任何一个网页,其实源代码就是文本,那么在Linux的GUI界面中,也存在各类文件编辑器,但是问题来了,在命令中,我们如何进行进行文本的编辑操作呢?
授课进程
一、文本的创建与查看
cat > test.txt << EOF
[root@kali ~]# cd /opt [root@kali opt]# cat > test.txt << EOF > 欢迎来到我的世界学 > this is myhome,welcome > EOF
[root@kali opt]# more /proc/cpuinfo是分屏输出文本内容当文本的内容过多的时候无法查看之前的内容,只能查看当前屏幕的内容。
[root@kali opt]# less /proc/cpuinfo分屏输入文本内容并按照要求加载文件(适用于大文件的查看)
head /poroc/cpuinfo
[root@kali ~]# head /proc/cpuinfo processor : 0 vendor_id : AuthenticAMD cpu family : 23 model : 24 model name : stepping : 1 microcode : 0xffffffff cpu MHz : 2095.995 cache size : 512 KB physical id : 0
[root@kali ~]# head -n 15 /proc/cpuinfo processor : 0 vendor_id : AuthenticAMD cpu family : 23 model : 24 model name : stepping : 1 microcode : 0xffffffff cpu MHz : 2095.995 cache size : 512 KB physical id : 0 siblings : 1 core id : 0 cpu cores : 1 apicid : 0 initial apicid : 0
tail /proc/cpuinfo 表示查看文本文件的后十行
[root@kali ~]# tail /proc/cpuinfo cpuid level : 13 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc art rep_good nopl tsc_reliable nonstop_tsc extd_apicid eagerfpu pni pclmulqdq ssse3 fma cx16 sse4_1 sse4_2 x2apic movbe popcnt aes xsave avx f16c rdrand hypervisor lahf_lm cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw topoext retpoline_amd ssbd ibpb vmmcall fsgsbase bmi1 avx2 smep bmi2 rdseed adx smap clflushopt sha_ni xsaveopt xsavec xgetbv1 clzero virt_ssbd arat overflow_recov succor bogomips : 4191.99 TLB size : 2560 4K pages clflush size : 64 cache_alignment : 64 address sizes : 45 bits physical, 48 bits virtual power management:
tail -n 20 /proc/cpuinfo表示查看CPU文本信息后20行
[root@kali ~]# tail -n 20 /proc/cpuinfo cpu MHz : 2095.995 cache size : 512 KB physical id : 0 siblings : 1 core id : 0 cpu cores : 1 apicid : 0 initial apicid : 0 fpu : yes fpu_exception : yes cpuid level : 13 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc art rep_good nopl tsc_reliable nonstop_tsc extd_apicid eagerfpu pni pclmulqdq ssse3 fma cx16 sse4_1 sse4_2 x2apic movbe popcnt aes xsave avx f16c rdrand hypervisor lahf_lm cr8_legacy abm retpoline_amd ssbd ibpb vmmcall fsgsbase bmi1 avx2 smep bmi2 rdseed adx smap clflushopt sha_ni xsaveopt xsavec xgetbv1 clzero virt_ssbd arat overflow_recov succor bogomips : 4191.99 TLB size : 2560 4K pages clflush size : 64 cache_alignment : 64 address sizes : 45 bits physical, 48 bits virtual power management:
特殊用法:tail -f 文本文件 表示通过流的方式实时查看文件内容,用来实时监控一些日志文件。举例:tail -f ./test.txt
二、文本内容的编辑
编辑一段文本,在命令行模式下,vi是默认的编辑器,进vi界面后,有两种处理模式:命令行模式和编辑模式。默认命令模式进入,按“i”或者“a”进入编辑模式,在编辑模式下,按“ESC”进入命令模式。
三、修改IP地址为静态ip
默认情况下,Linux的IP地址为DHCP动态分配地址,面向服务器应用场景,通常建议设置为静态的ip,操作步骤如下。
1、查看默认的网关,运行route命令
[root@kali ~]# ip route default via 192.168.104.2 dev ens33 proto dhcp metric 100 192.168.106.0/24 dev ens33 proto kernel scope link src 192.168.106.134 metric 100 [root@kali ~]#
以上确定的网关地址为:192.168.106.*
2、确认动态IP地址以及网关等信息
[root@kali ~]# ip addr 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 00:0c:29:59:**:04 brd ff:ff:ff:ff:ff:ff inet 192.168.106.134/24 brd 192.168.1**.255 scope global noprefixroute dynamic ens33 valid_lft 1367sec preferred_lft 1367sec inet6 fe80::a6f7:d647:1e82:223f/64 scope link noprefixroute valid_lft forever preferred_lft forever
3、使用vi编辑静态IP地址
运行命令:vi /etc/sysconfig/network-scripts/ifcfg-ens33 其中的ens33与ip addr中看到的王章的编号一样,必须一致,并修改网上的ip地址信息如下
TYPE="Ethernet" PROXY_METHOD="none" BROWSER_ONLY="no" BOOTPROTO="dhcp" #此处注释为DHCP DEFROUTE="yes" #设置成静态的IP IPV4_FAILURE_FATAL="no" IPV6INIT="yes" IPV6_AUTOCONF="yes" IPV6_DEFROUTE="yes" IPV6_FAILURE_FATAL="no" IPV6_ADDR_GEN_MODE="stable-privacy" NAME="ens33" UUID="d53d0112-4d75-4b6d-b3e3-cdcc4aa2c922" DEVICE="ens33" ONBOOT="yes"表示启动电脑的时候网卡也会自动的启动。 "/etc/sysconfig/network-scripts/ifcfg-ens33" 15L, 310C # 下面手工指定静态IP地址,包括IP地址、子网掩码、网关、DNS服务器、广播地址(可不指定)IPADDR="192.168.112.1**" NETMASK="255.255.255.0" GATEWAY="192.168.1**.2" DNS1="192.168.1*2.12" DNS2="114.114.1*4.114" BROADCAST="192.168.112.**5" #下面的两个可以不用进行输入,使用默认值 DNS2="114.114.114.114" BROADCAST="192.168.1**.255"
需修改的地方:BOOTPROTO="dhcp"
光标选中这一行,按住“i”进入编辑模式,在这一行的前面进行添加“#”,将这代码进行注释掉,并修改成“BOOTPROTO="static"”
IPADDR="192.168.112.1**" NETMASK="255.255.255.0" GATEWAY="192.168.1**.2" DNS1="192.168.112.**" DNS2="114.114.114.114" BROADCAST="192.168.1**.255"
最后用ESC切换到vi命令模式,最后使用:wq进行保存退出
4、重启网卡,使配置生效
修改完毕网络后记得重新启动网络:systemctl restart network
使用history能够查看你敲过那些,命令行