linux
目录
在虚拟机中配置静态ip
修改配置文件/etc/sysconfig/network-scripts/ifcfg-ens33内容如下:(其他的保持默认)
BOOTPROTO="static" #改为静态ip
IPADDR=192.168.48.100 #ip地址
GATEWAY=192.168.48.2 #网关
NETMASK=255.255.255.0 #掩码
DNS1=192.168.48.2 #dns
ONBOOT="yes"
如果虚拟机是克隆出来的,那么其ip和mac地址会与原来的一样,则需要修改IP地址,并删除原有mac地址使其重新生成具体方法如下(CentOS6.5中实践通过,CentOS7中只是改个IP地址就可以了):
- VMware中:编辑虚拟机设置->网络适配器->高级->生成(生成新的mac地址);
- 开启虚拟机;
- 删除文件/etc/sysconfig/network-scripts/ifcfg-Auto_eth1;
- 编辑/etc/udev/rules.d/70-persistent-net.rules文件,删除多余配置,保留最后一个eth,修改为eth0,并复制ATTR(address)的值,即复制硬件地址;
- 编辑/etc/sysconfig/network-scripts/ifcfg-eth0文件,粘贴硬件地址到HWADDR,修改IPADDR;
- 重启网卡(
service network restart
),重启虚拟机;
虚拟机的三种连接方式
- 1)NAT网络地址转换(VMnet8),虚拟机和真实主机处在不同的网段,其使用nat方式实现联网;
- 2)bridge桥接(VMnet0),使用桥接的方式使虚拟机和真实主机在同一个网段,从而实现联网;
- 3)host-only仅主机(VMnet1),只能和主机通讯,不能和外界通讯。
虚拟机扩展磁盘
- 在VMware虚拟机上扩展磁盘;
- 查看状态:
df -h
:容量无变化,fdisk -l
:分区多了一个; - 找到扩展的分区名称,执行:
fdisk /dev/sda
; - 选择
n
添加分区,其他默认; - 选择
t
修改分区id,L查看详情,然后选择:8e
,即:Linux LVM; - 选择w保存退出;
- 执行:
partprobe
,重新加载分区; - 执行:
fdisk -l
可以看到列表中多了刚刚加的分区; - 依次执行:
pvcreate /dev/sda1
->vgs
->vgextend centos /dev/sda1
->vgs
- 依次执行:
lvs
->lvextend /dev/centos/root /dev/sda1
->lvs
- 执行:
xfs_growfs /dev/mapper/centos-root
- 完成,可以通过
df -h
查看磁盘情况了 - 说明:上面命令中的centos是vgs命令返回中的一个值,sda1是加的分区名
文件管理
- xshell自带的两个文件传输命令,需要yum install lrzsz:
rz:上传文件,
sz:下载文件。
磁盘信息和文件系统
查看已挂载的磁盘及分区信息和及使用情况:df -h、查看目录使用情况:du -h;查看磁盘及分区信息:fdisk -l、parted -l;修改swap参数:临时修改用sysctl vm.swappiness=10、永久修改在/etc/sysctl.conf文件中添加vm.swappiness=10(需要重启)。
挂载文件系统命令:mount 设备 挂载目录。卸载:umount 设备/目录。/etc/fstab文件中保存了开机自动挂载的设备和目录。
linux目录结构
说明:文件或者目录名必须小于255个字符、区分大小写、不能使用"/"。
- 家目录:/root/、/home/用户名/;
- 可执行文件目录:/bin/、/usr/bin/、/usr/local/bin/,(对应root可执行文件目录为:/sbin、/usr/sbin、/usr/local/sbin/);
- 配置文件:/etc/;
- 临时文件:/tmp/;
- 内核和启动文件:/boot/;
- 服务器数据:/var/、/srv/;
- 系统信息:/proc/、/sys/;
- 共享库:/lib/、/usr/lib/、/usr/local/lib/;
- 其他挂载点:/media/、/mnt/。
常用文件操作命令
- 切换目录:cd(参数有:当前目录"."、父目录"…"、家目录"~"、返回上一个目录"-");
- 创建目录:mkdir(选项:-p递归多层创建目录);
- 显示目录/文件:ls(选项:-l全部显示、-l详细列表、-R递归处理、-d目录、-h友好显示)、查看别名:alias;
- 复制命令:cp src des;(选项:-r递归处理);(常用于备份,备份文件一般以.bak为后缀);
- 远程复制:scp -option src des;常用选项:-c递归、-p保留权限和修改时间、-v显示详情
- 创建空文件/修改目录的时间戳:touch fileName;
- 删除命令:rm(选项:-r递归处理了、-f强制删除)、rmdir(删除空目录);(文件名可以用通配符:?、*、-);
- 移动命令:mv src des;(src与des在同一目录下时为重命名);
- 批量修改文件名:rename from to filename;(将满足filename的文件名的from改为to,filename支持通配符:?、*、[]);示例:touch file{0…20}.txt(创建file0.txt-file20.txt共21个文件)、rename file file0 file?.txt(将file0.txt - file9.txt更名为file00.txt - file09.txt);
用户和组
说明
- 用户及UID(UID即用户对应的标识号):root用户为0;系统用户为1-499;自定义用户从500开始;不同用户若uid相同则视为同一用户,但家目录,shell不同。
- 用户信息存储位置:
- 账户信息在/etc/passwd文件中,密码信息在/etc/shadow文件中,创建用户的同时,默认还会为用户创建一个同名的组,保存在/etc/group文件中;
/etc/passwd文件信息及格式为:用户名:口令:标识号:组标识号:注释:主目录:shell七个部分;用户名长度一般不超过8个字符,大小写敏感,不能包含:,最好不包含.,不用-、+开头。
用户管理
- 添加用户(useradd):
选项:-c添加注释,-d指定家目录,-g用户组,-G附加组,-s登录shell,-u用户号;查看用户信息:id 用户名;Linux中,不能登录的账户一般由系统创建,用于管理服务或进程。 - 修改用户(usermod):
选项:同添加用户; - 删除用户:userdel 用户名;
- 切换用户(su):su 用户名:切换用户; su - 用户名:切换用户的同时切换到家目录;
- 修改用户密码(passwd):不跟用户名表示修改当前用户密码,且只有root用户才能修改其他用户密码;
- 组管理类似:groupadd、groupmod、groupdel;切换用户组(newgrp)。
权限
权限有读(4r)写(2w)执行(1x)三种,Linux中,-代表普通文件,d代表目录;每个文件都有用户、组、其他用户三组权限;修改权限的命令为:chmod(可以用数字,也可以用u/g/o+r/w/x修改权限)。
物理权限:chattr命令可以锁定某个文件不能被修改(2.6以上支持),他是通过修改物理属性来提高安全性,但不能保护/、/dev、/tmp、/var;chattr设置的权限通过lsattr查看。
其他用户如果需要执行部分root用户才能执行的命令,则可以修改/etc/sudoers文件,修改成功后普通用户可以通过sudo命令和自己的密码来执行相关命令。
进程
常用命令及选项:ps aux | grep xxx
- 查看进程命令(ps):选项-aux:查看所有进程;-l:查看自己相关的进程。
- 进程列表各个选项的含义:①TTY:tty1-tty6表示物理机上登录的终端,pts/0表示远程登录的终端,?表示与终端无关的进程;②STAT:进程状态(R/S/D/T/Z);③START:启动时间;④TIME:使用CPU时间;⑤COMMAND:使用什么命令启动的。⑥RSS:占用的物理内存(Kb);⑦VSZ:用掉的虚拟内存(Kb)。
- 进程的状态:①R:正在运行;②S:休眠状态;③D不可中断;④T:停止或被追踪;⑤Z:僵尸进程。
- 动态查看进程变化(top):选项-d 秒:画面更新秒数,默认3;
- 查看进程树(pstree):
-U使用utf-8,
-p列出pid,
-u列出所属用户,
常用(pstree -Uup); - 进程管理(kill、killall):
-l显示可用的信号量,
常用信号量:-15正常方式终止(默认)、
-9强制终止(系统进程不能强制终止)、
-2终止当前(同ctrl+C)、
-1针对守护进程则重新读取配置文件,否则终止进程。
系统资源监控
内存
观察内存使用情况(free):选项-k、m、g以kb、mb、gb为单位,-t显示swap与内存总量;列含义shared共享内存,buffer将要写入磁盘的,cached以写磁盘或从磁盘读出的
核心版本
- 查阅系统与核心信息(uname):选项:-a所有系统信息,-s内核名,-r内核版本,-pcpu类型
- 正在运行的版本:
cat /proc/version
- 发行版本:
cat /etc/issue
,cat /etc/redhat-release
,lsb_release -a
(可能没有)
工作负载
- 系统启动时间与工作负载(uptime):列含义:系统时间,系统运行时间,登录用户数,系统过去1、5、15分钟的平均负载;
- top(监控系统状况):可以查看cpu、内存等资源的使用情况;
- 监控java线程数:
ps -eLf | grep java | wc -l
; - 监控网络客户连接数:
netstat -an | grep 侦听端口 | wc -l
系统资源
系统资源变化(vmstat
),列含义:
- 进程proc(r:等待运行的进程数,b:等待被唤醒的进程数;这两项越大,系统越忙碌)
- 内存memory(swpd:虚拟内存使用量,free:未使用的内存容量,buff/cache:缓冲的内存)
- 交换分区(si:内存<-磁盘;so:内存->磁盘;值越大系统效能越低)
- 磁盘(bi读磁盘、oi写磁盘)
- system(in:每秒中断次数,cs:每秒切换次数;值越大代表与接口设备通讯越频繁)
- CPU(us:用户进程cpu使用情况,sy:系统进程使用情况,id:闲置情况,wa:等待i/o情况,虚拟机使用情况)
网络监控
端口开放情况(netstat
)命令参数,(常见用法:netstat -antp | grep xxx
)
-
常用选项(-antp,-autp);
-
-a列出所有、
-
-t列出tcp、
-
-u列出udp、
-
-n以端口方式显示、
-
-l列出监听中的服务、
-
-p列出该网络服务的进程id。
网络流量监控:iftop
路由追踪:traceroute ip/域名
防火墙
CentOS6.5中:
临时操作:
- 开启:
service iptables start
或/etc/init.d/iptables start
; - 关闭:
setvice iptables stop
或者/etc/init.d/iptables stop
; - 其他:重启、状态:restart、status;
永久操作:
chkconfig iptables on
或者chkconfig iptables off
;(需要重启)- 开放端口:修改
/etc/sysconfig/iptables
文件后重启;
CentOS7中:
- 查看防火墙状态:
systemctl status firewalld
或者firewall-cmd --state
; - 开启、重启、关闭防火墙:
service firewalld start/restart/stop
; - 查看防火墙规则:
firewall-cmd --list-all
; - 查询端口开放:
firewall-cmd --query-port=8080/tcp
; - 开放端口:
firewall-cmd --permanent --add-port=80/tcp
; - 移除开放端口:
firewall-cmd --permanent --remove-port=80.tcp
; - 重启:
firewall-cmd --reload
;
任务管理
- ctrl+z:将任务暂停并放置后台;
- &:在命令后加&可使其在后台运行,任务完成会反馈Done;(有些命令不适合,如vim);
- jobs:查看后台命令;(-l显示pid);
- fg 任务号:把后台任务放到前台;
- bg 任务号:运行后台任务;(对类似vim命令无效)。
打包与软件包管理
文件的压缩与打包
linux中文件的扩展名用途不大,但是压缩或打包文件是必须的
- linux中常见的压缩文件:
.gz:gzip;
.bz2:bzip2;
.tar:tar打包,没有压缩;
.tar.gz:tar打包后经过gzip压缩;
.tar.bz2:tar打包后经过bzip2压缩; - gzip(性能较好,能处理gz、zip等文件):
-d解压、
-v压缩时显示压缩比、
-c显示压缩输出(一般用于输出重导向>,即压缩时保留原文件,解压时保留源文件用gunzip -c file.gz > file )、
-t检查数据一致性、
file->file.gz可以保留源文件;(zcat可以查看纯文本的压缩文件) - bzip2(压缩比较高):
选项在gzip的基础上多了:-k保留源文件、-f强制压缩; - tar(打包):
-c建立打包文件、
-t查看打包文件列表、
-x解打包、
-j通过bzip2压缩、
-z通过gzip压缩、
-v压缩或解压时显示处理的文件、
-f处理后的文件全名、
-C解压到指定目录、
-p保留权限(一般用于备份)、
–exclude=排除那些文件; - 常用选项(tar -zcvf file.tar.gz file或tar -jcvf file.tar.bz2 file和tar -xvf file.tar.gz -C dir和tar -ztvf file.tar.gz或tar -jtvf file.tar.bz2);
rpm软件安装
- rpm默认安装路径:
/etc:配置文件,
/usr/bin:可执行文件,
/usr/lib:动态链接库,
/usr/share/doc:使用手册与说明文件,
/usr/share/man:命令帮助文件; - 安装选项:
-i:安装,
-v:显示详细安装信息(啰嗦模式),
-h:执行过程(进度条);
一般安装使用rpm -ivh file.rpm; - 环境变量(以Java为例):
在/etc/profile文件末尾添加一下内容(修改完成后执行source /etc/profile):
#方式一:
export JAVA_HOME=/usr/java/jdk
export PATH=$JAVA_HOME/bin:$PATH
#方式二:
JAVA_HOME=/usr/java/jdk
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME PATH
- 查询选项:
☆ -qa:已安装的软件,
☆ -q:查询是否安装,
-qRPi:详细信息,
-qi:详细信息,
-ql:所有的文件与目录,
-qc:所有的配置文件,
-qd:所有的说明文件,
-qR:所有依赖,
-qf:该文件所属的已安装的软件,
-qp:加上述选项后跟包名,可查询rpm文件中的信息。
一般常用rpm -qa - 卸载选项:-e;
yum软件安装更新
- 查询选项:
查找相关软件包:yum search xxx,
查看软件包功能:yum info xxx,
查看服务器上提供的前10个软件的详细信息:yum info | head -10,
查看服务器上提供的前20个软件的名称:yum list | head -20,
查看服务器上可供本机升级的软件:yum list updates; - 安装/升级/卸载:
install(命令跟-y则可以省略安装过程中输入y)、update(后面不跟软件名则整个系统升级)、remove; - yum源:搭建yum源服务很复杂,但使用yum很简单;
shell命令
- shell是用户和linux之间的接口,提供了与操作系统之间的通讯方式,这里主要用/bin/bash;
变量
变量设置规则(name=value):
- 等号两边不能有空格,
- 变量名规则同Java,
- 变量内容若有特殊字符,可用单引号或双引号
- 单引号:全部作为一般字符,
- 双引号:特殊字符保持其原本特性,可使用转义字符\转义为一般字符;
- 全局变量一般用大写,局部变量一般使用小写,可以用local修饰,
- 变量内容由其他命令提供时使用
name=$(命令)
或者name=反引号命令
反引号, - 删除变量:unset;
- 获取变量的值:
$name
或者${name}
; - 增加变量内容:
name=$n1$n2
(变量值拼接不需要+号); - 设置全局变量:在
/etc/profile
文件中加一行:export NAME=VALUE
即可;
数据重定向:>(覆盖方式)、>>(累加方式);
命令执行判断:$?是命令的回传值,1代表标准输出、2代表标准错误输出;
cmd1 && cmd2
:cmd1正确执行完毕则执行cmd2,否则不执行,cmd1 || cmd2
:cmd1正确执行完毕则不执行cmd2,否则执行。
环境变量
- 全局环境变量是在/etc/profile文件中添加一行:
export PATH=$PATH:变量
;(也可以先export 变量=值,再export PATH=$PATH:$变量
) - 局部环境变量是在
~/bash_profile
目录做同样操作 - 生效环境变量:
source /etc/profile
常用shell命令
|
将|左边的命令的输出作为管道右边的命令输入,如:ps aux | grep tomcat,
find
搜索文件,格式:find 路径 选项 参数,常用选项如下:
-size
:按文件大小搜索,-name
:按文件名搜索(参数可以使用通配符*),-perm
:按文件权限搜索,-user
:按文件属主搜索,-group
:按文件属组搜索,-nogroup
:搜索没有属组的文件,-type
:按文件类型搜索(参数:b块设备、d目录、c字符设备、p管道文件、l链接文件、f普通文件),
grep
全面搜索正则表达式并把行打印出来,常用选项:
-i
:忽略大小写,-v
:反检索,-n
:显示行号,
tail
查看文档的最后几行内容,并实时更新,常用选项:
-n 20
:从最后20行开始显示,-n +20
:从第20行开始显示,-f
:实时展示文件内容
sort
将文件/文本每一行相互比较(按ASCII值比较,系统的编码会影响排序),常用选项如下:
-u
:不出现重复的行;-t
:指定分段符号;-k
:指定第几段;-r
:逆向排序;-n
:按数值大小排序;
sed
非交互式文本处理工具,一般在shell脚本使用;默认所有的输出行都打印在屏幕上,sed处理文件的过程如下:把当前处理的行保存在临时缓冲区(模式空间),然后处理临时缓冲区的行,处理完就打印在屏幕上并删除该临时缓冲区,接着以同样的方式处理下一行直到最后一行。常用选项如下:
- -n:仅显示脚本处理后的结果;
- -e:允许对输入数据应用多条sed命令;
- -f:直接将sed动作写在文件中,及运行文件内的sed动作;
常用的sed动作如下:
- s:匹配查找;
- i:编辑;
- d:删除;
- a:追加;
- c:替换;
- p:打印;
使用实例:
sed "s/x/y/g" 1.txt > 2.txt
:将1.txt文件每一行所有的x改为y然后写入2.txt;sed -i "s/x/y/g" 1.txt
:将1.txt文件所有x改为y;sed -i "1,$ s/x/y/2" 1.txt
:替换1到最后一行每一行的第2个匹配项;sed "1s/x/y/1;1s/x/y/1"
:替换前两个;sed "1 i word"
:在第一行添加word;sed "/qwer/d"
:匹配则删除整行;
注意:
- 重导向到文件自身时会清空文件;
- sed后面的参数表达式类似于vi编辑模式中的相关命令;
cut
剪切文件中的数据,格式为 cut -option filename;常用选项:
-b m-n
:取第m到n的字节;-c m-n
:取第m到n的字符;-d
:按指定分隔符分割列;-f n
:提取第n列;(两个选项要连用)
history
查看历史命令;常用选项:
- !!:运行上一条命令;
- !9:运行history列表中的9条命令;
- fc:编辑并运行上一条命令;
- fc 5:编辑并运行第5条命令;
- ctrl+r:搜索历史命令;
- history -c:清空历史命令;
shell脚本
是纯文本文件以固定语法组织起来的;可以执行多条命令;执行顺序是从上而下、从左而右;命令、选项与参数间的多个空格会被忽略;空白行会忽略,tab被视为空格;读取到Enter(CR)就尝试执行;第一行之后的#为注释;exit为退出脚本,exit 0:以0作为脚本的执行返回值,正常退出返回0;之后可以通过$?获取返回值;
sh:执行脚本;有两个选项:
-x
:打印执行到的内容;-n
:不执行,只检查语法;
read -p "提示:" a
:输入命令;
$(($a+$b))
:变量运算(a+b)
;
test:判断文件、字符串;选项:
-e
:文件是否存在;-fdrwx
:分别判断文件是否存在且为文件/目录/可读/可写/可执行;-z
:字符串是否存在;-ef
:是否为同一文件;
[]: 条件判断,与test类似,使用时需要与内容有空格,不能使用&&、||、<、>等符号,==、!=用于比较字符串,常用的比较字符串还有:
-o
:或;-a
:与;-lt
:小于;-le
:小于等于-gt
:大于;-ge
:大于等于;-eq
:等于;-ne
:不等;
脚本参数:
- $*:整体获取所有参数;
- $@:获取参数列表;
- $0:程序名;
- $#:参数个数;
{}:定义列表;如{a…z}、{1…10}
expect
expect是一个自动化交互套件,主要应用于执行命令和程序时,系统以交互形式要求输入指定字符串,实现交互通信。
expect自动交互流程:spawn启动指定进程—expect获取指定关键字—send向指定程序发送指定字符—执行完成退出.
安装:yum install -y expect
示例一(在redis中设置一个key):
#!/usr/bin/expect
# 注意要用双引号
spawn ./src/redis-cli
expect ">"
send "auth 123456\r"
expect "OK"
send "set k v1\r"
expect "OK"
send "exit\r"
expect eof
示例二:
#!/bin/bash
echo '====start===='
expect << EOF
spawn ./src/redis-cli
expect ">"
send "auth 1234\r"
expect {
"OK" { send "ping\r" }
"error" { send "auth 123456\r" }
}
expect "OK"
send "set k v2\r"
expect "OK"
send "exit\r"
expect eof
EOF
echo '====end===='
curl
常见用法如下:
- 无参get:
curl http://www.baidu.com
(也可用?
带一个简单参数,多了或有特殊字符会出错) - 带参get:
curl -G -d 'page=1&count=2&type=text' https://api.apiopen.top/getJoke
- post:
curl -d 'page=1&count=2' https://api.apiopen.top/getWangYiNews
- post json:
curl -d '{id: 1, name: "张三"}' -H 'Content-Type: application/json' http://localhost/test
另外:若参数中带有特殊字符,可以将-d
替换为--data-urlencode
vi/vim常用快捷键
o/O
:下/上面新建一行插入;a/A
:后面/行尾插入;i/I
:前面/行首插入;hjkl
:依次对应左、下、上、右;ctrl+b/f
:上/下一页;ctrl+u/d
:上/下半页;:1、G/:$、^、$
:依次为文章头,文章尾,行首、行尾;x/nx
:剪切(删除)一个/n个字符;dd/ndd、yy/nyy
:剪切(删除)一行/n行、复制一行/n行;p/P
在后面或下面/在前面或上面粘贴;u
:撤销;:set nu
:显示行号;/xxx
:查找字符串xxx;按n/N
查找下/上一个;:%s(:s)/xxx/yyy(/g)
:将所有行(当前行)的第一个(所有)xxx替换为yyy;:., $s/xxx/yyy/g
:当前行到最后一行的所有xxx替换为yyy,.
和$
可以数数字,代表行(注意有个空格);:e filename
:打开一个新文件;:vs/:sv filename
:打开一个新文件,且垂直/水平划分窗口(ctrl+w+w
切换窗口);v
:选择模式,可以移动光标选择需要的内容进行复制、剪切、删除;ctrl+v
:多行编辑选择,此时可以移动光标选中多行;x
:删除选中的字符;I
:输入内容,按esc
插入多行内容;
vim显示行号永久生效配置:/etc/vimrc或者~/.vimrc中添加set nu。
其他
帮助命令
如:man ls、whatis ls、info ls、ls --help、help ls等等;
免密登录
- 1)ssh-keygen命令生成证书;
- 2)ssh-copy-id root@ip,发送证书到远程服务器,第一次要输入密码,后面就无需输入了。生成的key在~/.ssh/目录下。
运行级别
- 运行级别:
- 0->关机;1->单用户;2->无网络多用户;3->命令行模式;4->未用;5->GUI桌面模式;6->重启;init:命令切换运行级别;who -r:查看运行级别;
- 作用:重启、修改运行级别、找回密码(单用户模式下可直接修改密码)、修改启动时默认运行级别(修改文件/etc/inittab);
- 关机/重启命令:shutdown -h、reboot、shutdown -h time、shutdown -h +min;
开机启动
修改/etc/rc.local
文件,在文件末尾添加需要开机执行的脚本或者命令;如:nohup service mysqld start &
(这里的脚本最好设置为后台运行,否则若脚本有问题,可能会导致卡死)
定时任务
命令:crontab -e -u root
,后面的-u root
可以省略,表示当前用户,常用的选项还有:
-e
:编辑工作表;-l
:列出工作表;-r
:删除工作表;
工作表编辑页面,每一行就是一条命令,一行的构成为是时间+动作,如:*/1 * * * * date >> ~/timer.txt
,其中时间由分、时、日、月、周五部分组成,时间的操作符有:
*
:取值范围内的所有数字;/
:每过多少时间;-
:从多少到多少的时间范围内;,
:散列数字;
附:crontab
也可以叫作业列表,可以在以下文件内找到相关配置文件:
/var/spool/cron/
:存放每个用户的定时任务,文件名就是创建者(crontab
命令操作的就是这个文件);/etc/crontab
:这个文件负责调度各种管理和维护任务;/etc/cron.d/
:存放要执行定时文件;- 还可以把脚本放在在
/etc/cron.hourly
,/etc/cron.daily
,/etc/cron.weekly
,/etc/cron.monthly
目录中,让它每小时/天/星期、月执行一次。
nc命令
可以作为server以tcp/udp方法侦听端口;可以作为客户端发起tcp/udp连接从而实现端口扫描;可以传输文件;可以网络测速等。其常用的参数如下:
-
-l:侦听模式;
-
-s:发送数据;
-
-u:使用udp协议;
-
-v:输出交互信息;
-
-w:超时秒数;
-
-z:只扫描,不发送数据;
接收数据:nc -l port > file
;
发送数据:nc ip port < file
;
测试网速:nc -l port > /dev/null
;nc ip port < /dev/zero
;
修改主机名
- 修改文件/etc/sysconfig/network的hostname的值(需要重启才生效);
- 执行命令hostname 新主机名(临时生效,重启失效);
- 修改/etc/hosts文件,每一行删除localhost后面的内容,添加一行内容为:ip 主机名;(相当于Windows中的host配置)
CentOS7修改主机名:执行命令:systemctl set-hostname name1或者修改/etc/hostname配置文件。
将iso文件作为yum源
方式一:
- VMware中设置CD/DVD的已连接和启动时连接为勾选状态;
- 在linux中挂载iso:
mount /dev/cdrom /mnt/cdrom
,要永久挂载需要在/etc/fstab
文件中添加一行:/dev/cdrom /mnt/cdrom iso9660 defaults,ro 0 0
; - 备份并删除
/etc/yum.repos.d/
下的CentOS-Base.repo
文件; - 在该目录下新建.repo文件,内容为:
[base]
name=localrepo
baseurl=file:///mnt/cdrom
enabled=1
gpgcheck=0
# 文件名称对应iso根目录的一个文件
gpgkey=file:///mnt/cdrom/RPM-GPG-KEY-CentOS-7
- 执行
yum clean all
和yum makecache
命令。
方式二:原理与方式一相同,不同之处是将iso文件直接拷贝到linux中,通过命令mount -o loop xxx.iso /mnt/cdrom
挂载文件。