1.Linux安装中文环境(可选)
联网之后执行:sudo yum groupinstall chinese-support,安装完语言包之后修改/etc/sysconfig/i18n文件,修改LANG="zhCN.UTF-8"。如果只想对当前登录用户有效请编辑~/.bashrc文件,在最后加入:export LANG="zhCN.UTF-8"
2. 一些杂项
2.1 监听网络端口
netstat -nltp 比如可以看3306是否存在来确定mysql是否启动
service network status 可以查看某个服务的运行状态
2.2 查看进程树
pstree每新开一个命令行窗口都有一个新的bash
2.3 set命令
set会显示当前环境中所有的变量包含系统变量和用户变量。export 变量名 会将这个变量提升为全局环境变量,供其它shell使用,完事之后source会把export指令输出一遍,比如source /etc/profile
3.网络连接方式
VMware虚拟机三种联网方法及原理
3.1Brigde——桥接:默认使用VMnet0
这一种联网方式最简单,在局域网内,你的主机是怎么联网的,你在虚拟机里就怎么连网。把虚拟机看成局域网内的另一台电脑就行了! (备注:我在公司用这种方式连接,配置静态IP无法上网,动态获取ip可以)提示:主机网卡处在一个可以访问Internet的局域网中,虚拟机才能通过Bridge访问Internet。
3.2NAT——网络地址转换 :默认使用VMnet8
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
4.修改网络和主机配置
修改ip地址 vi /etc/sysconfig/network-scripts/ifcfg-eth0
修改之后重启 service network restart
修改主机 vi /etc/sysconfig/network
修改ip地址和主机名的映射关系 vi /etc/hosts
关闭iptables(防火墙)并设置其开机启动/不启动
注意:如果在xshell中可以ping通你的linux主机,却无法连接,多半是被防火墙拦截了。
通过chkconfig指令可以查询哪些进程是开机自启动的
5.查询用户密码
cat /etc/passwd
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
6.防火墙iptables
iptables也叫netfilter,从字面上也不难理解,它是对网络进行过滤的。防火墙(iptables)可以对流入,流出,流经服务器的数据包进行精细的控制。它的底层由四张表构成,分别是filter,nat,mangle和raw,每一张表都包含不同的链,最常用的是filter表。我一般把防火墙理解成过滤ip的表。
6.1基本操作
查看iptables状态
开启/关闭iptables
查看iptables是否开机启动
设置iptables开机启动/不启动
查看帮助
6.2规则配置
清除所有规则
-重启iptables发现规则依然存在,那是因为没有保存
保存配置规则
使用vim编辑器编辑规则 vim /etc/sysconfig/iptables
解释一下含义
其它还有一些规则比如匹配某些端口范围或者多个端口的,可以去网上搜,不记太多不常用的命令。
7.帮助命令
1.内部命令:echo查看内部命令帮助:help echo 或者 man echo
2.外部命令:ls查看外部命令帮助:ls --help 或者 man ls 或者 info ls
3.man文档的类型(1~9)man 7 manman 5 passwd
4.快捷键:ctrl + c:停止进程ctrl + l:清屏ctrl + r:搜索历史命令ctrl + q:退出
5.善于使用tab键
8.文件相关命令
8.1 ls命令
-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-xr read 读w write 写x execute 执行三组代表三种权限所有者u(user,onwer,谁创建谁是所有者) 所属组g(group) 其他人o(others)2代表硬链接数第一个root代表所有者第二个root代表所属组4096代表文件大小,不是准确数值,数据块,存储数据的最小单位,默认512字节10月5 08:24 创建时间或最后修改时间bin 文件名或目录类名
8.2 cd命令
cd change directory 切换目录
cd / 切换到根目录
cd .. 切换到上级目录
8.3 pwd命令
pwd print working directory 打印当前所在的目录
8.4 touch命令
touch 创建空文件touch newFile
8.5 mkdir命令
mkdir make directories 创建目录mkdir newDir
8.6 cp命令
cp copy复制文件cp 原文件地址 目标文件地址
cp /etc/servers /test 将etc目录下的servers文件复制到test目录下;
cp -R /etc /test 使用-R是复制目录的,将etc目录复制到test目录下;
scp sourecFile romoteUserName@remoteIp:remoteAddr 远程拷贝,scp是远程拷贝命令
8.7 mv命令
mv a.txt /ect/ 移动mv b.txt a.txt 改名mv a.txt ../b.txt 移动并改名
8.8 rm命令
rm remove 删除文件
rmdir 删除空目录(使用较少)
rm file1 删除文件1
rm -r dir1 删除目录1,记得加-r
8.9 ln命令
ln link 产生链接文件
ln -s 产生软链接,不加-s产生硬链接
ln -s /etc/issue /issue.soft 创建issue文件的软链接issue.soft,软链接相当于windows系统的快捷方式
ln /etc/issue /issue.hard 创建issue的硬链接issue.hard,硬链接相当于拷贝,除了时间不同
9.文件查看编辑命令
9.1cat命令
cat fileName 不能分页,一次展示文件内容
9.2 more命令
more 分页显示文件
more /etc/services 空格或f 显示下一页Enter 显示下一行q或Q 退出
9.3 head命令
head 显示文件前几行
head -20 /etc/services 显示services文件前20行 不加默认显示前十行
9.4 tail命令
tail 显示文件后几行tail -30 /etc/servicestail -f logs.log 一直滚动显示logs.log的后几行(f follow)用于查看日志
9.5 less命令
比more功能更强大,可以搜索,可以直接进入vi编辑器中回车键 向下移动一行空格键 向下滚动一屏b 向上滚动一屏g 跳到第一行G 跳到最后一行/pattern 搜索pattern ,比如 /MAIL表示在文件中搜索MAIL单词v 进入vi编辑器q 退出less
9.6 vim命令
最基本用法 vi somefile
1、首先会进入“一般模式”,此模式只接受各种快捷键,不能编辑文件内容
2、按i键,就会从一般模式进入编辑模式,此模式下,敲入的都是文件内容
3、编辑完成之后,按Esc键退出编辑模式,回到一般模式;
4、再按:,进入“底行命令模式”,输入wq命令(或者shift+z+z),回车即可
一些有用的快捷键(在一般模式下使用): a 在光标后一位开始插入 A 在该行的最后插入 I 在该行的最前面插入 gg 直接跳到文件的首行 G 直接跳到文件的末行 dd 删除行,如果 5dd ,则一次性删除光标后的5行 yy 复制当前行, 复制多行,则 3yy,则复制当前行附近的3行 p 粘贴 v 进入字符选择模式,选择完成后,按y复制,按p粘贴 ctrl+v 进入块选择模式,选择完成后,按y复制,按p粘贴 shift+v 进入行选择模式,选择完成后,按y复制,按p粘贴 :set number 显示行号 :set nonumber 不显示行号 查找并替换(在底行命令模式中输入) %s/sad/88888888888888 效果:查找文件中所有sad,替换为88888888888888 /you 效果:查找文件中出现的you,并定位到第一个找到的地方,按n可以定位到下一个匹配位置(按N定位到上一个)
10.系统相关命令
10.1查看主机名
hostname
10.2 修改主机名
(重启后无效) hostname magic
(重启后永久生效) vi /ect/sysconfig/network
10.3 修改IP
(重启后无效) ifconfig eth0 192.168.12.22
(重启后永久生效) vi /etc/sysconfig/network-scripts/ifcfg-eth0
10.4 查看系统信息
uname -auname -r
10.5 日期
datedate +%Y-%m-%ddate +%Tdate +%Y-%m-%d" "%T
10.6 日历
cal 2012
10.7 挂载硬盘
mountumount 加载
windows 共享
mount -t cifs //192.168.1.100 /tools /mnt
10.8 查看文件大小
du -hdu -ah
10.9 查看分区
df -h
10.10 ssh连接其它服务器10.11关机和重启
shutdown -h now /init 0/halt 关机命令
shutdown -r now /reboot 重启命令
11 用户和用户组相关命令
11.1 添加一个tom用户,设置它属于users组,并添加注释信息
分步完成:useradd tomusermod -g users tomusermod -c "hr tom" tom
一步完成:useradd -g users -c "hr tom" tom
11.2 设置tom用户的密码
passwd tom
11.3修改tom用户的登陆名为tomcat
usermod -l tomcat tom
11.4 将tomcat添加到sys和root组中
usermod -G sys,root tomcat
11.5 查看tomcat的组信息
groups tomcat
11.6 添加一个jerry用户并设置密码
useradd jerrypasswd jerry
11.7 添加一个名为america的组
groupadd america
11.8 将jerry添加到america组中
usermod -g america jerry
11.9 将tomcat用户从root组和sys组删除
gpasswd -d tomcat rootgpasswd -d tomcat sys
11.10 将america组名修改为am
groupmod -n am america
12 权限相关命令
12.1 chmod命令
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,用户拥有组为userschown -R root:users /apps
12.2 rwx权限解析
对于文件来说 r 查看文件内容,命令 cat,more,head,tailw 修改文件内容,命令echo,vix 执行文件,包括命令或者脚本对于目录来说 r 列出目录中的内容,命令lsw 在目录中创建和删除文件,想要删除文件,即使对这个文件有写权限也不行,只能修改文件,必须要对目录有w权限,才可以删除目录下的文件,命令mkdir,touch,rmx 可以进入目录,命令cd.所以可以看到对于一个目录文件一般都由rwx权限,不然死活都进不去的
12.3 chown命令
chown change file ownership 改变文件或目录的所有者chown nobody file1 改变file1的所有者nobody 注意所有者不能随便写,必须是系统中存在的用户,例如nobody就是系统自带的用户,类似于windows的guest引入知识点
切换用户,命令:su - 用户名 例如su - root 切换到root用户
添加用户,命令:useradd 用户名 例如useradd hair 添加hair用户之后设置密码让他登陆,命令:passwd 密码
12.4 chgrp命令
chgrp change file group owership 改变文件或目录的所属组
chgrp adm file1 改变file1的所属组为adm adm是系统自带的缺省组
12.5 umask命令
umask 显示或折这文件的缺省权限直接umask显示的结果:0022解析0022首个0是特殊权限位后面的022为权限掩码值777-022=755 表示所有者有读写执行权限,所属组和其他人有读执行权限。可以使用这样来修改创建文件的默认权限,例如umask -027 则新创建的文件或者目录所有者是读写执行,用户组是读,执行,其他人什么权限也没有还可以直接使用umask -S命令,结果u=rwx,g=rx,o=rx
13 查找相关命令
13.1 which命令
which 命令名称 显示命令所在目录
which ls 查找可执行的命令whereis 命令名称 显示命令所在目录,二者的区别是which可以显示出命令的别名,whereis可以显示出命令所在的帮助文档。使用这个命令可以查看目录所在位置,进而知道命令是超级用户(sbin)或者普通用户(bin)可以执行的。whereis ls 查找可执行的命令和帮助的位置
13.2 find命令
语法: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执行之前会询问
13.3 locate命令
locate 寻找文件或目录
locate file 列出所有跟file相关的文件
例如:locate test.txt 查找文件(需要更新库:updatedb)
13.4 grep命令
grep 在文件中搜索字符串匹配的行并输出
grep ftp /etc/services 在services文件中搜索包含ftp的行
14 打包与压缩指令
14.1 gzip命令
gunzip newfile
14.2gunzip命令
gunzip GUN unzip解压.gz的压缩文件
gunzip newfile1.gz
14.3 bzip2命令
bzip2 与一般的压缩命令不同,这个可以大大提高压缩比,将文件压缩的更小,压缩后文件后缀.bz2bzip2 -k file1 压缩文件file1,压缩后为文件名为file1.bz2,去掉-k压缩完之后将不保留原文件
14.4 bunzip2命令
bunzip2 解压文件bunzip2 -k file1.bz2 解压file1.bz2文件。解压之后保留原文件,如果不想要原文件,去掉-k注意:.gz和.bz2的命令不能压缩目录,只能压缩文件
14.5 tar命令(重要)
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文件
14.6 zip命令
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
14.7 unzip命令
unzip 解压缩命令 unzip 文件名 unzip test.zip 解压test.zip文件
15 网络通信相关指令
15.1 write命令
write 用户名 向另外一个用户发信息,Ctrl+D结束write root 向root发送信息
15.2 wall命令
wall 信息 向所有用户发送广播信息
wall happy new year 系统中的所有用户均会收到happy new year的消息
15.3 ping命令
ping ip地址,测试与给定的ip是否连通,如果未连通,测试ping 本机地址,如果依然不能ping通,
ping 127.0.0.1ping -s 60000 127.0.0.1 向本机发送60000个数据包(少可能看不出来效果,现在明显看到时间有延迟)
ping -c 4 127.0.0.1 发送4次之后自动停止,不加-c 4的话会一直ping,知道按ctrl+c
15.4 ifconfig命令
ifconfig 查看网络设置信息eth0 实际的物理网卡lo 会话地址网卡
ifconfig eth0 192.168.1.1 可以临时改变本机的物理网卡,但是下次启动时会显然显示原来的网卡,这就涉及到linux系统的一般规律,只要改变了配置文件信息,下次才依然生效,命令行修改的只在临时有效。
16 进程控制相关指令
16.1 查看用户最近登录情况
lastlastlog
16.2 查看硬盘使用情况
df
16.3 查看文件大小
du
16.4 查看内存使用情况
free
16.5 查看进程
ps -e grep nginx 查看所有进程并从中选出nginx的进程信息
ps –ef grep tomcat 查看所有有关tomcat的进程
16.6 结束进程
kill 1234kill -9 4333
17 Linux的软件包管理
linux软件包分为二进制软件包管理(RPM,Yum),源代码包安装,脚本安装(shell或java),Debian系软件包管理
17.1 RPM软件包管理
RPM软件命令示例sudo-1.7.2pl-5.el5.i386.rpmsudo软件名1.7.2pl版本号5.el5更新号i386硬件平台
17.1.1 卸载
命令:rpm -e sudo如果与其他软件包有依赖关系,卸载时会有提示信息,可以使用--nodeps命令no dependent 没有依赖关系rpm -e --nodeps sudo
17.1.2 安装
安装sudo-1.7.2pl-5.el5.i386.rpm1.挂在光盘,虚拟机让他关联系统管盘,在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.rpmi install 安装
v view安装时查看 h hash安装时显示详情信息 i是必须的
命令:rpm -q sudo 查看sudo软件是否安装了
命令:rpm -qagrep sambaa all 全部前半部分,查询所有安装的软件包,后半部分,在这些软件包中包含samba关键字
命令:rpm -ivh --test sudo-1.8.6p3-24.el6.x8664.rpmtest 测试,不真实的安装,只测试一下
命令:rpm -ivh --replacepkgs sudo-1.8.6p3-24.el6.x8664.rpm 覆盖原有的基础上安装
17.1.3 RPM其他命令
命令:rpm -qagrep vim 查看所有安装的包含vim文件的文件(all)
命令:rpm -ql sudo查询sudo安装后的文件所在位置(location)
命令:rpm -qi sudo查询sudo文件的相关信息介绍(information)
命令:rpm -qc sudo查询sudo的配置文件信息(conf)
命令:rpm -qd sudo查询sudo的帮助文档信息(document)
17.1.4 RPM文件的校验
我首先修改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 文件权限改变
17.2 Yum包管理
命令: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的帮助信息
17.3 源代码包管理
以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 listgrep gccyum install gcc 到此安装gcc完毕
4.编译,
命令:make
5.安装,
命令:make install