初识Linux和一些简单的环境搭建
Linux简介
特点:
开放性,多用户,多任务,丰富的网络功能,可靠的系统安全,良好的可移植性,具有标准兼容性
环境准备
Vmware虚拟机化技术
2.1安装教程见文档
2.2网络配置
进入vi模式: vi /etc/sysconfig/network-scripts/ifcfg-eth0
按 i 键进入 insert 模式后可以输入
DEVICE=eth0 #网卡设备名,请勿修改名字
TYPE=Ethernet #网络类型,以太网
BOOTPROTO=static #启用静态IP地址
ONBOOT=yes #开启自动启用网络连接
IPADDR=192.168.235.100 #设置IP地址
NETMASK=255.255.255.0 #设置子网掩码
GATEWAY=192.168.235.2 #设置网关
设置结束退出后重启一定要: service network restart
2.3Nut与桥接的区别
桥接模式:
结构:网络与物理机同一个网段(会占用外部IP)
特点:1.外网能够访问
2.能够访问外网
注意:桥接模式下的虚拟机网关必须改为与物理机网关一致
NAT模式:
结构:构成一个以物理机为网关的子网
特点:1.子网的所有的服务器对外不可见
2.子网能够正常访问外网
- 文件系统操作
3.1目录操作
3.1.1切换
命令:cd + 目录的路径
查看当前目录的完整路径:pwd
cd .. 返回到父目录
cd /
cd /路径 /路径
3.1.2新建
命令:mkdir + 目录名字
查看当前目录下拥有的子目录和文件: ls ll = ls –l
导入man 包: yum –y install man
3.1.3 拷贝
cp test test02 –r
cp test /home/ -r
3.1.4 删除
rmdir directory
rm -r dir
注意:rmdir只能删除空目录,若要删除非空目录则用rm命令
3.1.5移动/更改
移动文件或目录:mv + 目录/文件名字 + 其他路径
mv test /
更改文件或目录的名字:mv + 旧目录名字 + 新目录名字
mv test02 test01
3.2文件操作
3.2.1新建文件:(一切皆文件)
不仅普通的文件,目录、字符设备、块设备、 套接字等在 Unix/Linux 中都是以文件被对待;它们虽然类型不同,但是对其提供的却是同一套操作面。
touch web.log 创建一个空文件
3.2.2 复制文件
cp web.log web_cp.log -r
复制文件【文件 文件夹目录】,加个-r 参数,代表遍历复制,此时可用于复制一个目录。
3.2.3 删除文件
rm –rf web_cp.log
此时需要手动输入y ,代表确认删除。可加 –f参数,直接删除,无需确认。当需要一个目录下所有东西时,加-r参数,代表遍历删除。
3.2.4 查看
3.2.4.1查看目录下的东西
ls / ll 命令 ls -l 等价于 ll
查看目录下的所有东西(包括隐藏文件)
命令:ls –al 等价于 ll –a
3.2.4.2查看文件内容
cat filename : 一次性显示整个文件的内容
3.2.4.3打印文件
head -10 filename (从头部)打印文件1到10行
tail -10 filename (从尾部)打印文件最后10行
3.2.5查找文件或目录
find pathname –name filename
find /etc -name pro*
该命令表示为:在/etc目录下查找以pro开头的文件或目录
pathname越精确,查找的范围越小,速度越快。
四、文本编辑
4.1.vi
编辑模式
vi filename :打开或新建文件,并将光标置于第一行首
vi +n filename :打开文件,并将光标置于第n行首
vi + filename :打开文件,并将光标置于最后一行首
vi +/pattern filename:打开文件,并将光标置于第一个与 pattern匹配的串处
命令行模式
w保存
q退出
q!:不保存文件并退出vi
在VI的命令模式下输入“:set nu”,就有行号了。
搜索及替换命令
:s/p1/p2/g 将当前行中所有p1均用p2替代
:n1,n2s/p1/p2/g 将第n1至n2行中所有p1均用p2替代
:g/p1/s//p2/g 将文件中所有p1均用p2替换
一般模式
• yy 复制光标所在行(常用)
• nyy 复制光标所在行的向下n行,例如, 20yy则是复制20行(常用)
• p|P p为复制的数据粘贴在光标下一行, P则为粘贴在光标上一行(常用)
G:光标移至第最后一行
nG:光标移动至第N行行首
n+:光标下移n行
n-:光标上移n行
H :光标移至屏幕顶行
M :光标移至屏幕中间行
L :光标移至屏幕最后行
• dd:删除 行
x或X:删除一个字符,x删除光标后的,而X删除光标前的
• u 恢复前一个动作(常用)
删除第N行到第M行:N,Md
,$-1d 删除当前光标到倒数第一行数据
4.2.vim
拥有vi的所有功能,且视图更清晰化
yum install vim –y
五.远程传输
5.1拷贝
5.1.1将本地文件/目录复制到远程机器
scp -r test 192.168.2.5:/home/
scp -r test 192.168.2.5:`pwd` (将test文件考到另一个虚拟机的相同目录下)
5.1.2将远程机器上的文件/目录复制到本地
scp –r 192.168.2.5:/home/test /root/
5.2.上传/下载
需先安装好lrzsz : yum install lrzsz –y
rz上传 sz下载
5.3.host配置
Windows端:C:\Windows\System32\drivers\etc\hosts 文件
添加你的ip和节点,例如下:
#192.168.94.101node1
#192.168.94.102node2
Linux端:vi/etc/sysconfig/network
六、磁盘指令
6.1.查看硬盘信息
df (默认-k ,可加-m -h)
6.2.查看文件/目录的大小
du 文件名字/目录名字 (默认-k ,可加-m -h -a)
du /etc/profile
七、网络指令
查看网络配置信息命令: ifconfig
测试与目标主机的连通性: ping 192.168.2.163
显示各种网络相关信息: netstat
测试远程主机的网络端口
需安装telnet : yum install telnet -y
命令: telnet ip port
http请求模拟
命令: curl [option] [url]
curl -X GET http://www.baidu.com/
八.系统管理
8.1.用户操作
8.1.1创建用户
useradd/adduser username
passwd username 修改密码
8.1.2删除用户
userdel -r username
8.1.3修改用户
usermod
usermod不允许你改变正在线上的使用者帐号名称。当usermod用来改变user时,必须确认这名user没在电脑上执行任何程序。
8.1.3.1修改用户名
usermod -l new_name old_name
8.1.3.2锁定账号
usermod -L username
8.1.3.3解除锁定
usermod -U mytest
8.1.4查看用户
whoami 查看当前登录用户名
普通用户可查看cat /etc/passwd
root用户可查看cat /etc/shadow
8.2.用户组操作(增删改查)
8.2.1创建用户组
groupadd groupname
8.2.2删除用户组
groupdel groupname
8.2.3修改用户组
groupmod -n new_name old_name
8.2.4查看用户组
groups username 查看指定用户所在的组
注意:创建用户时,系统默认会创建一个和用户名字一样的主组。用户名修改,但是主组名却不会更改.
usermod -g 组名 用户 —— 把用户的主组改为其他的组
usermod –g group username
usermod -G 组名 用户 —— 把用户添加到附加组当中
usermod –G group username
8.3.系统权限
查看/usr 目录下的每个文件或目录的权限
命令: ll /usr
8.3.1权限类别
r(读取) w(写入) x(执行)
8.3.2UGO模型
第一个字符代表文件(-)、目录(d),链接(l)
Linux权限基于UGO模型进行控制
U代表User, G代表Group, O代表other
每一个文件的权限基于UGO进行设置
权限三个一组(rwx), 对应UGO分别设置
每个文件都有一个拥有者/用户(User), 用户的所属组即(Group), 不属于上面的都是other
8.3.3修改权限
8.3.3.1修改文件/目录的拥有者
修改所有者
chown username 文件/目录
命令:chown username:groupname 文件/目录
同时修改一个文件或目录的所有者和属组。
如果要递归修改整个目录下的所有者或属组,加参数-R.
如:chown -R mytest:test 目录名字
8.3.3.2修改文件/目录的属组
chgrp groupname name
8.3.3.3修改文件/目录的权限
命令:chmod ugo+rwx name
+ 赋予权限 - 取消权限
另外一种修改方式: r=4,w=2,x=1 (二进制)
chmod 700 file 文件的所有者才有读写和执行的权限
九.系统设置
9.1.DNS配置
hosts文件的作用相当于DNS,提供IP地址hostname的对应,可在这个文件里添加映射。域名解析 vi /etc/hosts
/etc/resolv.conf 为DNS服务器的地址文件
9.2.sudo权限配置
root的权限太过大了,慎用!!
vim /etc/sudoers(只读)
注意:在使用命令时,需要加sudo 然后在敲命令,且第一次使用时需要mytest用户密码,接下来每隔15分钟需要一次密码验证。
如果不需要密码直接运行命令的,应该加NOPASSWD:参数
(编辑时用) visudo
sudo -l 列出该用户所有sudo权限
9.2.系统时间
date 查看当前系统时间
date -s 2012-08-02 只修改系统的日期
date -s 10:08:00 修改时间不修改日期
date -s "2018-01-01 04:53:00" 同时修改日期和时间
同步ntp时间(http://www.ntp.org.cn/pool.php)
需要事先安装ntp服务:yum install ntp -y
命令:ntpdate cn.ntp.org.cn
十、重定向与管道
10.1.重定向符号
10.1.1输出重定向
> 输出重定向到一个文件或设备覆盖原来的文件
>> 输出重定向到一个文件或设备追加原来的文件
ls > shsxt.log ,这个命令会将ls的查看结果输出到shsxt这个文件里,不再将内容打印到屏幕上。
命令:echo “shsxt is good” >> shsxt.log
将“shsxt is good”追加到shsxt.log文件里
10.1.2输入重定向
< 输入重定向到一个程序
cat < shsxt.log ,将shsxt .log文件里的内容当作是cat 命令的输入
10.2 标准/错误输出重定向
10.2.1 标准输出重定向
符号为: 1>
该符号含义为:输出重定向时,只有正确的输出才会重定向到指定文件,否则如果是错误的输出则不会。输出重定向默认是1。即符号“1>”等价于”>”
cat sxt > test.log (目录下没有sxt这个文件)
所以,会显示错误日志 cat: sxt: No such file or directory并没有重定向到 test.log 文件里,而是直接打印到屏幕上
10.2.2 错误输出重定向
符号“2>”
该符号含义为:把错误的输出日志重定向到指定文件里,正确的日志则不会。
10.2.3 结合使用
符号“2>&1”
2>&1 将一个标准错误输出重定向到标准输出 ,即无论是正确的输出还是错误的输出都重定向到指定文件里。
以上重定向符号都是覆盖的,若想追加则用”>>”
cat sxt >>test.log 2>&1 全都重定向到test.log文件夹里
10.3 管道|
命令“|” 表示把前一个输出当做后一个输入
| 和 grep 命令结合使用: netstat -anp | grep 22
命令含义:把netstat –anp 命令的输出当做是grep 命令的输入。
上面的命令就是:先用netstat –anp 命令查出本机的端口信息,然后把netstat输出的端口信息,用作grep命令的输入进行匹配搜,并且匹配的是22 ,即查看22端口是否开着。
10.4 命令执行控制
命令:&& 前一个命令执行成功才会执行后一个命令
cat shsxt && ping www.baidu.com
命令:|| 前一个命令执行失败才会执行后一个命令
cat shsxt || ping www.baidu.com
会先显示没有shsxt文件夹,再去连接网址
10.5 信息黑洞
写入它的内容都会永远丢失,说白了就是不显示任何信息
/dev/null
ls > /dev/null
十一.服务操作
11.1 列出所有服务
chkconfig
查询操作系统在每一个执行等级中会执行哪些系统服务,其中包括各类常驻服务。
11.2服务操作
service 服务名 start/stop/status/restart
防火墙的服务名为:iptables
service iptables start/stop (临时)打开/关闭
service iptables /status 防火墙的状态
chkconfig iptables on/off (永久)打开/关闭
11.3.添加服务
/etc/init.d 目录包含许多系统各种服务的启动和停止脚本
每个软连接前面都有一个以S或K开头+数字的前缀名,代表了这个脚本在开机时的启动顺序,或关机时的杀死顺序。(S为启动,K为杀死)
kill -9 1806 强制关闭1806端口的进程
添加服务:
vim myservice
#chkconfig: 2345 80 90
#description:auto_run
result=’ntpdate cn.ntp.org.cn’
echo $result > /root/logs
chkconfig --add myservice 添加服务
service myservice start 开启服务
重启下服务器,验证一下。系统时间成功修改,且在/usr目录下有log产生。
11.4 删除服务
chkconfig --del name
chkconfig ipatables on/off 开启/关闭防火墙(永久)
十二.定时调度
crond 是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动crond进程,crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。
crontab –e 打开crontab定时配置文件,然后我们在里面编辑定时任务。
* * * * * echo ‘helloworld’ (年月日时分-à5个 * )
“*”任意的数字, “/”代表”每隔多久”, “-”代表从某个数字到某个数字, “,”分开几个离散的数字
该提示只有我们操作其他的命令后才会出现,如果一直放着是不会有此提示的。
/var/spool/mail/root 文件里查看root用户定时任务的执行情况
/var/spool/mail 目录下放各用户定时任务,执行后的信息
/var/spool/cron 目录存放每个用户的定时任务
contab –l 可以直接查看当前用户的定时任务
十三、linux安全
13.1 selinux
建议关闭SeLinux
•enforcing:强制模式,代表SELinux 运作中,且已经正确的开始限制domain/type了;
•permissive:宽容模式:代表SELinux 运作中,不过仅会有警告讯息并不会实际限制。这种模式可以运来作为SELinux 的debug 之用;•disabled:关闭,SELinux没有实际运作
查看SELinux状态:
sestatus -v ##如果SELinux status参数为enabled即为开启状态
关闭SELinux:
临时关闭(不用重启机器):
setenforce 0 设置SELinux 成为permissive模式
setenforce 1 设置SELinux 成为enforcing模式
修改配置文件需要重启机器:
修改/etc/selinux/config 文件,将selinux关闭掉。
将SELINUX=enforcing改为SELINUX=disabled
十四、其他常用命令
14.1 yum
yum是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。
由于centos系统的yum默认是到国外网站下载,有时下载速度会很慢,故我们可以换一个yum的下载源,这里我们换一个国内的下载源阿里云镜像。
第一步:备份你的原镜像文件,以免出错后可以恢复。
cp /etc/yum.repos.d/CentOS-Base.repo.backup
第二步:下载新的CentOS-Base.rep到/etc/yum.repos.d/
wget O /etc/yum.repos.d/CentOSBase.repo http://mirrors.aliyun.com/repo/Centos-6.repo
下载完之后,vim /etc/yum.repos.d/CentOS-Base.repo 查看一下文件内容。
第三步:运行yum makecache生成缓存
查看当前源
yum list | head -50
14.2 wget
需先安装 yum install wget –y
wget用法:wget [option] 网址-O 指定下载保存的路径
wget www.baidu.com –O baidu.html
14.3 rpm
安装 rpm –ivh rpm包
查找rpm已安装的软件 rpm -q ntp
卸载 rpm –e ntp-4.2.6p5-10.el6.centos.2.x86_64(全名)
14.4 tar
解压命令:tar -zvxf xxxx.tar.gz
压缩命令:tar -zcf 压缩包命名压缩目标
例子:tar -zcf tomcat.tar.gz apache-tomcat-7.0.61
将apache-tomcat-7.0.61 目录压缩成tomcat.tar.gz包。
14.5 zip
需先安装zip:yum install zip –y
压缩命令:zip -r 包名目标目录
解压 unzipfilename
需先安装 unzip,yum install unzip –y
十五.配置JDK(局部)环境变量
以 jdk-7u80-linux-x64.rpm 格式的jdk文件为例
- 上传并解压一个rmp格式的jdk文件到/home
rpm –ivh jdk-7u80-linux-x64.rpm
(默认解压到 /usr/java 目录下)
- 配置局部环境变量
root目录下 vim ~/.bash_profile
(下面两句复制要小心)
export JAVA_HOME=/usr/java/ jdk1.7.0_80
export PATH=$PATH:$JAVA_HOME/bin
重新加载环境变量
source ~/.bash_profile
验证是否成功 java –version
注意:配置环境变量时,很容易发生错误,所以虚拟器拍照很重要.
十六.部署Tomcat
1.配置Tomcat
以 apache-tomcat-7.0.61.tar.gz 格式的tar文件为例
1.上传并解压一个tar格式的Tomcat文件到 /home目录
tar –zvxf apache-tomcat-7.0.61.tar.gz (默认在/home目录下)
2.启动 tomcat
cd apache-tomcat-7.0.61
tomcat的bin目录下有个startup.sh脚本可以直接启动tomcat服务.
(启动前需要关闭防火墙 service iptables stop)
./bin/startup.sh
关闭tomcat服务,可以用shutdown.sh命令。
./bin/shutdown.sh
2.修改端口号
cd apache-tomcat-7.0.61
cd conf/ ----->在conf文件里的都是配置文件
vim service.xml
/8080找到默认的端口号,将connector port=8080,改为80
:wq保存退出
.
3.给host取别名
Windows端:
C:\Windows\System32\drivers\etc下有个hosts文件,可在最后添加:
192.168.18.5 node01
192.168.18.6 node02
192.168.18.7 node03
vim /etc/sysconfig/network 里面的hostname=node01,此node01指的是当前主机的名称,也就是[[email protected] ~]中@后的.
Linux端:
vim /etc/hosts
按o键可在最后添加: 192.168.18.5 node01
192.168.18.6 node02
192.168.18.7 node03
4. 克隆虚拟机
修改配置:
修改网卡 vi /etc/sysconfig/network-scripts/ifcfg-eth0
改hostname vi /etc/sysconfig/network
重启网络 service network restart
删除网络规则 rm -rf /etc/udev/rules.d/70-persistent-net.rules
重启虚拟机 reboot