联网之后执行:sudo yum groupinstall chinese-support,安装完语言包之后修改
/etc/sysconfig/i18n文件,修改LANG=”zh_CN.UTF-8”。如果只想对当前登录用户有效请编辑
~/.bashrc文件,在最后加入:export LANG=”zh_CN.UTF-8”
netstat -nltp 比如可以看3306是否存在来确定mysql是否启动
service network status 可以查看某个服务的运行状态
pstree
每新开一个命令行窗口都有一个新的bash
set会显示当前环境中所有的变量包含系统变量和用户变量。export 变量名 会将这个变量提升为全局环境变量,供其它shell使用,完事之后source会把export指令输出一遍,比如source /etc/profile
VMware虚拟机三种联网方法及原理
这一种联网方式最简单,在局域网内,你的主机是怎么联网的,你在虚拟机里就怎么连网。把虚拟机看成局域网内的另一台电脑就行了! (备注:我在公司用这种方式连接,配置静态IP无法上网,动态获取ip可以)
提示:主机网卡处在一个可以访问Internet的局域网中,虚拟机才能通过Bridge访问Internet。
NAT 是 Network address translate的简称。NAT技术应用在internet网关和路由器上,比如192.168.0.123这个地址要访问internet,它的数据包就要通过一个网关或者路由器,而网关或者路由器拥有一个能访问internet的ip地址,这样的网关和路由器就要在收发数据包时,对数据包的IP协议层数据进行更改(即 NAT),以使私有网段的主机能够顺利访问internet。此技术解决了IP地址稀缺的问题。VMWare的NAT上网也是同样的道理,它在主机和虚拟机之间用软件伪造出一块网卡,这块网卡和虚拟机的ip处于一个地址段。同时,在这块网卡和主机的网络接口之间进行NAT。虚拟机发出的每一块数据包都会经过虚拟网卡,然后NAT,然后由主机的接口发出。
联网方式:
- 动态IP地址:
主机是静态IP或动态IP,都无所谓,将虚拟机设置成使用DHCP方式上网,Windows下选择“自动获取IP“,linux下开启DHCP服务即可。(这种方法最简单,不用过多的设置,但要在VMware中进行“编辑→虚拟网络设置”,将NAT和DHCP都开启了。一般NAT默认开启,DHCP默认关闭)
- 静态IP地址:
如果不想使用DHCP,也可以手动设置:IP设置与vmnet1同网段,网关设置成vmnet8的网关(在“虚拟网络设置”里的Net选项卡里能找到Gateway)通常是xxx.xxx.xxx.2,子网掩码设置与VMnet8相同(设置好IP地址后,子网掩码自动生成),DNS设置与主机相同。
#### 3.3Host-Only——私有网络共享主机:默认使用VMnet1
只想让虚拟机和主机之间有数据交换,而不想让虚拟机访问Internet,就要采用这个设置了。
联网方法:
- 动态IP地址:
像上面那样开启DHCP后,虚拟机直接自动获取IP地址和DNS。就可以和主机相连了。当然,还要进行一些局域网共享的操作,这里不再赘述。
- 方法2、静态IP地址:
也可以手动设置,将虚拟机IP设置与VMnet1同网段,网关设置成VMnet1的网关相同,其余设置与VMnet1相同,DNS设置与主机相同。
例如:VMnet1 IP:172.16.249.1 Gateway :172.16.249.2
那么虚拟机 IP:172.16.249.100 Gateway: 172.16.249.2
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes #是否开机启用
BOOTPROTO=static #ip地址设置为静态
IPADDR=192.168.0.101
NETMASK=255.255.255.0
service network restart 修改之后重启
- 修改主机
vi /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=server1.catchu.me
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.0.101 server1.catchu.me
service iptables stop 关闭防火墙
service iptables status 查看防火墙状态
service iptables start 开启防火墙
service iptables restart 重启防火墙
chkconfig iptables on 设置防火墙开机启动
chkconfig iptables off 设置防火墙开机不启动
注意:如果在xshell中可以ping通你的linux主机,却无法连接,多半是被防火墙拦截了。
通过chkconfig指令可以查询哪些进程是开机自启动的
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
mysql:x:496:493:MySQL server:/var/lib/mysql:/bin/bash
magic:x:500:500:HAir:/home/magic:/bin/bash
root,密码是占位符x,用户id是0,组id是0,root是别名,/root是家目录,/bin/bash默认用的shell解析器。
用户id为0的超级用户,大于等于500的是超级用户,小于500的是伪用户,不能登录,但是它操作的时候也是以一个用户的身份,比如mysql就是以mysql用户的身份。
cat /etc/group 可以查看所有的组
linux查看帮助:ls –help wc –help
iptables也叫netfilter,从字面上也不难理解,它是对网络进行过滤的。防火墙(iptables)可以对流入,流出,流经服务器的数据包进行精细的控制。它的底层由四张表构成,分别是filter,nat,mangle和raw,每一张表都包含不同的链,最常用的是filter表。我一般把防火墙理解成过滤ip的表。
service iptables status
或者下面这命令也是同样的效果
列出iptables规则
iptables -L -n
列出iptables规则并显示规则编号
iptables -L -n --line-numbers
service iptables start
service iptables stop
chkconfig iptables --list
chkconfig iptables on
chkconfig iptables off
查看帮助
iptables -h
iptables -help
man iptables
iptables -F
-重启iptables发现规则依然存在,那是因为没有保存
service iptables restart
service iptables save
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
解释一下含义
-A, --append 追加到规则的最后一条
-D, --delete 从规则中删除
-I, --insert 插入,添加到规则的第一条
-p, --proto 协议,常用协议有tcp、udp、icmp、all
-j, --jump 常见的行为有ACCEPT、DROP和REJECT三种,但一般不用REJECT,会带来安全隐患,ACCEPT接受,表示可以访问;DROP扔掉,表示不能访问
INPUT数据流入,OUTPUT数据流出
注意:INPUT和DROP这样的关键字需要大写
其它还有一些规则比如匹配某些端口范围或者多个端口的,可以去网上搜,不记太多不常用的命令。
1.内部命令:echo
查看内部命令帮助:help echo 或者 man echo
2.外部命令:ls
查看外部命令帮助:ls –help 或者 man ls 或者 info ls
3.man文档的类型(1~9)
man 7 man
man 5 passwd
4.快捷键:
ctrl + c:停止进程
ctrl + l:清屏
ctrl + r:搜索历史命令
ctrl + q:退出
5.善于使用tab键
-a all全部的,包含隐藏文件
-l long长的,表示详细信息
-d directory目录,查看目录的信息
文件类型
drwxr-xr-x 2 root root 4096 10月5 08:24 bin
第一个表示文件类型
d directory 目录
-binary 二进制文件
l link 软链接文件
rwx r-x r-x
r read 读
w write 写
x execute 执行
三组代表三种权限
所有者u(user,onwer,谁创建谁是所有者) 所属组g(group) 其他人o(others)
2代表硬链接数
第一个root代表所有者
第二个root代表所属组
4096代表文件大小,不是准确数值,数据块,存储数据的最小单位,默认512字节
10月5 08:24 创建时间或最后修改时间
bin 文件名或目录类名
cd change directory 切换目录
cd / 切换到根目录
cd .. 切换到上级目录
pwd print working directory 打印当前所在的目录
touch 创建空文件
touch newFile
mkdir make directories 创建目录
mkdir newDir
cp copy复制文件
cp 原文件地址 目标文件地址
cp /etc/servers /test 将etc目录下的servers文件复制到test目录下;
cp -R /etc /test 使用-R是复制目录的,将etc目录复制到test目录下;
scp sourecFile romoteUserName@remoteIp:remoteAddr 远程拷贝,scp是远程拷贝命令
mv a.txt /ect/ 移动
mv b.txt a.txt 改名
mv a.txt ../b.txt 移动并改名
rm remove删除文件
rmdir 删除空目录(使用较少)
rm file1 删除文件1
rm -r dir1 删除目录1,记得加-r
ln link产生链接文件
ln -s 产生软链接,不加-s产生硬链接
ln -s /etc/issue /issue.soft
创建issue文件的软链接issue.soft,软链接相当于windows系统的快捷方式
ln /etc/issue /issue.hard
创建issue的硬链接issue.hard,硬链接相当于拷贝,除了时间不同
cat fileName 不能分页,一次展示文件内容
more 分页显示文件
more /etc/services
空格或f 显示下一页
Enter 显示下一行
q或Q 退出
head 显示文件前几行
head -20 /etc/services 显示services文件前20行 不加默认显示前十行
tail 显示文件后几行
tail -30 /etc/services
tail -f logs.log 一直滚动显示logs.log的后几行(f follow)用于查看日志
比more功能更强大,可以搜索,可以直接进入vi编辑器中
回车键 向下移动一行
空格键 向下滚动一屏
b 向上滚动一屏
g 跳到第一行
G 跳到最后一行
/pattern 搜索pattern ,比如 /MAIL表示在文件中搜索MAIL单词
v 进入vi编辑器
q 退出less
hostname
(重启后无效)
hostname magic
修改主机名(重启后永久生效)
vi /ect/sysconfig/network
(重启后无效)
ifconfig eth0 192.168.12.22
修改IP(重启后永久生效)
vi /etc/sysconfig/network-scripts/ifcfg-eth0
uname -a
uname -r
date
date +%Y-%m-%d
date +%T
date +%Y-%m-%d” “%T
cal 2012
mount
umount
加载windows共享
mount -t cifs //192.168.1.100/tools /mnt
du -h
du -ah
df -h
shutdown -h now /init 0/halt 关机命令
shutdown -r now /reboot 重启命令
分步完成:useradd tom
usermod -g users tom
usermod -c “hr tom” tom
一步完成:useradd -g users -c “hr tom” tom
passwd tom
usermod -l tomcat tom
usermod -G sys,root tomcat
groups tomcat
useradd jerry
passwd jerry
groupadd america
usermod -g america jerry
gpasswd -d tomcat root
gpasswd -d tomcat sys
groupmod -n am america
chmod change the permissions mode of a file改变文件或者目录的权限
chmod u+r 给所有者增加读权限
g-w 给所属组减去写权限
o=x 不管其他人是什么权限,置为执行权限
u 代表所有者 g所属组 o其他人
例如 chmod u+r a 给a文件的所属者添加读权限
但是,通常使用数字表示
r-4 w-2 x-1
rwxr-xr– 代表的就是754
例如:
将/apps目录下的所有文件与子目录皆设为任何人可读取
chmod -R a+r /apps (a代表的就是all)
将/apps目录下的所有文件与子目录的拥有者设为root,用户拥有组为users
chown -R root:users /apps
对于文件来说
r 查看文件内容,命令 cat,more,head,tail
w 修改文件内容,命令echo,vi
x 执行文件,包括命令或者脚本
对于目录来说
r 列出目录中的内容,命令ls
w 在目录中创建和删除文件,想要删除文件,即使对这个文件有写权限也不行,只能修改文件,必须要对目录有w权限,才可以删除目录下的文件,命令mkdir,touch,rm
x 可以进入目录,命令cd.所以可以看到对于一个目录文件一般都由rwx权限,不然死活都进不去的
chown change file ownership 改变文件或目录的所有者
chown nobody file1 改变file1的所有者nobody 注意所有者不能随便写,必须是系统中存在的用户,例如nobody就是系统自带的用户,类似于windows的guest
引入知识点
- 切换用户,命令:su - 用户名 例如su - root 切换到root用户
- 添加用户,命令:useradd 用户名 例如useradd hair 添加hair用户之后设置密码让他登陆,命令:passwd 密码
chgrp change file group owership 改变文件或目录的所属组
chgrp adm file1 改变file1的所属组为adm adm是系统自带的缺省组
umask 显示或折这文件的缺省权限
直接umask显示的结果:0022
解析0022
首个0是特殊权限位
后面的022为权限掩码值
777-022=755 表示所有者有读写执行权限,所属组和其他人有读执行权限。
可以使用这样来修改创建文件的默认权限,例如umask -027 则新创建的文件或者目录所有者是读写执行,用户组是读,执行,其他人什么权限也没有
还可以直接使用umask -S命令,结果u=rwx,g=rx,o=rx
which 命令名称 显示命令所在目录
which ls 查找可执行的命令
whereis 命令名称 显示命令所在目录,二者的区别是which可以显示出命令的别名,whereis可以显示出命令所在的帮助文档。使用这个命令可以查看目录所在位置,进而知道命令是超级用户(sbin)或者普通用户(bin)可以执行的。
whereis ls 查找可执行的命令和帮助的位置
语法:find 搜索路径 搜索关键字 查找文件或目录
find /etc -name init 在etc目录下面查找名称为init的文件,还可以使用通配符,init*表示以init开头的文件,init表示包含init的文件
find / -size +204800 在根目录下查找大于100MB的文件,是以block块为单位算的,一个block块是512字节,即0.5kb,100MB=102400kb=204800个0.5kb.
find / -user hair 在根目录下查找所有者为hair的文件
find /etc -ctime -1 在etc目录下查找24小时之内被修改过属性的文件和目录
-ctime -atime -mtime 以天为单位
-cmin -amin -mmin 以分钟为单位
c change修改过文件的属性,比如所有者,所属组等属性信息
a access访问过文件
m modify修改过文件的内容
-之内,+超过
find /etc -mmin -120 在etc目录下查找两小时之内被修改过的文件
find /etc -size +163840 -a -size -204800 在etc目录下查找大于80MB小于100MB的文件
-a and表示逻辑与
-o or表示逻辑或
find /etc -name inittab -exec ls -l {} \;在etc目录下查找名称为inittab的文件并列出它的详细信息
exec执行,固定格式find … -exec 命令 {} \;
解析:{}代表前面find到的文件的集合。\代表执行命令本身。 ;代表语句结束。-exec可以换成-ok,只是ok执行之前会询问
locate 寻找文件或目录
locate file 列出所有跟file相关的文件
例如:
locate test.txt 查找文件(需要更新库:updatedb)
grep 在文件中搜索字符串匹配的行并输出
grep ftp /etc/services 在services文件中搜索包含ftp的行
gzip GNU zip的缩写,用于压缩文件,且只能压缩文件,不能压缩目录,压缩完成之后原文件消失,压缩后的文件以.gz结尾
gzip newfile1 压缩newfile1文件
gunzip GUN unzip解压.gz的压缩文件
gunzip newfile1.gz
bzip2 与一般的压缩命令不同,这个可以大大提高压缩比,将文件压缩的更小,压缩后文件后缀.bz2
bzip2 -k file1 压缩文件file1,压缩后为文件名为file1.bz2,去掉-k压缩完之后将不保留原文件
bunzip2 解压文件
bunzip2 -k file1.bz2 解压file1.bz2文件。解压之后保留原文件,如果不想要原文件,去掉-k
注意:.gz和.bz2的命令不能压缩目录,只能压缩文件
tar 将目录打包成文件后再压缩
tar 选项 打包后的名字 待打包的目录
选项有以下几种
-c 产生.tar打包文件
-v 显示详细信息
-f 指定压缩后的文件名
-z 打包同时压缩
压缩后的文件格式.tar.gz
tar -zcvf dir1.tar.gz dir1 将dir1文件打包并压缩
tar解压命令
-x 解包.tar文件
-v 显示详细信息
-f 指定解压文件
-z 解压
tar -zxvf dir1.tar.gz 解压dir1文件
zip 可以压缩文件也可以压缩目录,不同的是压缩目录要加上-r,同样要把压缩后的文件名写在前面,待压缩的文件写在后面,zip比gzip的好处是压缩后原文件并不会消失,同时对于大的文件会显示压缩比。.zip格式的压缩文件是唯一的windows和linux通用的压缩文件
zip services.zip /etc/services 压缩文件,将etc目录下的services文件压缩成services.zip
zip -r test.zip /test 压缩目录,将test目录压缩成test.zip,记得加-r
unzip 解压缩命令
unzip 文件名
unzip test.zip 解压test.zip文件
write 用户名 向另外一个用户发信息,Ctrl+D结束
write root 向root发送信息
wall 信息 向所有用户发送广播信息
wall happy new year 系统中的所有用户均会收到happy new year的消息
ping ip地址,测试与给定的ip是否连通,如果未连通,测试ping 本机地址,如果依然不能ping通,ping 127.0.0.1
ping -s 60000 127.0.0.1 向本机发送60000个数据包(少可能看不出来效果,现在明显看到时间有延迟)
ping -c 4 127.0.0.1 发送4次之后自动停止,不加-c 4的话会一直ping,知道按ctrl+c
ifconfig 查看网络设置信息
eth0 实际的物理网卡
lo 会话地址网卡
ifconfig eth0 192.168.1.1 可以临时改变本机的物理网卡,但是下次启动时会显然显示原来的网卡,这就涉及到linux系统的一般规律,只要改变了配置文件信息,下次才依然生效,命令行修改的只在临时有效。
last
lastlog
df
du
free
ps -e | grep nginx 查看所有进程并从中选出nginx的进程信息
ps –ef | grep tomcat 查看所有有关tomcat的进程
kill 1234
kill -9 4333
linux软件包分为二进制软件包管理(RPM,Yum),源代码包安装,脚本安装(shell或java),Debian系软件包管理
RPM软件命令示例
sudo-1.7.2pl-5.el5.i386.rpm
sudo软件名
1.7.2pl版本号
5.el5更新号
i386硬件平台
命令:rpm -e sudo
如果与其他软件包有依赖关系,卸载时会有提示信息,可以使用–nodeps命令
no dependent 没有依赖关系
rpm -e –nodeps sudo
安装sudo-1.7.2pl-5.el5.i386.rpm
1.挂在光盘,虚拟机让他关联系统管盘,在mnt目录下创建目录cdrom,mkdir /mnt/cdrom,之后使用mount命令挂载
mount /dev/cdrom /mnt/cdrom,将系统光盘挂在在刚才创建的cdrom下,使用命令ll | grep sudo,查看是否有sudo文件,答案是存在sudo文件。安装命令:rpm -ivh sudo-1.7.2pl-5.el5.i386.rpm
i install安装
v view安装时查看
h hash安装时显示详情信息
i是必须的
命令:rpm -q sudo查看sudo软件是否安装了
命令:rpm -qa|grep samba
a all全部前半部分,查询所有安装的软件包,后半部分,在这些软件包中包含samba关键字
命令:rpm -ivh –test sudo-1.8.6p3-24.el6.x86_64.rpm
test测试,不真实的安装,只测试一下
命令:rpm -ivh –replacepkgs sudo-1.8.6p3-24.el6.x86_64.rpm
覆盖原有的基础上安装
命令:rpm -qa|grep vim 查看所有安装的包含vim文件的文件(all)
命令:rpm -ql sudo查询sudo安装后的文件所在位置(location)
命令:rpm -qi sudo查询sudo文件的相关信息介绍(information)
命令:rpm -qc sudo查询sudo的配置文件信息(conf)
命令:rpm -qd sudo查询sudo的帮助文档信息(document)
我首先修改sudo文件的配置文件,vim /etc/sudo.conf,修改文件
命令:rpm -V sudo校验sudo文件,控制台显示的结果是
S.5….T. c /etc/sudo.conf
S size文件大小改变
5 md5文件md5的校验值改变
L link链接改变
T time创建时间改变
D device设备文件改变
U user文件的用户改变
G group文件的用户组改变
M 文件权限改变
命令:yum list | grep sudo列出yum源上所有包含文件sudo的文件
命令:yum install sudo使用yum方式安装文件sudo
命令:yum check-update sudo检查sudo有无更新
命令:yum update sudo更新sudo
命令:yum info sudo获取sudo软件包信息
命令:yum remove sudo卸载sudo
命令:yum -help或man yum获取yum的帮助信息
以proftpd为例:
去http://www.proftpd.org/ 官网下载.tar.gz的源代码文件到本地,通过xshell上传到服务器
1.解压压缩包,命令:tar -xzvf proftpd-1.3.5b.tar.gz
2.进入文件内,命令:cd proftpd-1.3.5b
3.配置安装位置,命令:./configure –prefix=/test/proftpd/proftpdinstall
中间它提示我缺少c编译器,安装无法继续,我就使用yum方法安装gcc用于编译c语言写的文件
rpm -q gcc提示gcc未安装
yum list|grep gcc
yum install gcc到此安装gcc完毕
4.编译,命令:make
5.安装,命令:make install