Linux是由Unix演变而来。
UNIX操作系统,是一个强大的 多用户
、 多任务
、 高安全性
操作系统,支持多种处理器架构,按照操作系统的分类,属于分时操作系统,最早由Ken Thompson、Dennis Ritchie和Douglas McIlroy于1969年在AT&T的贝尔实验室开发。
1971年,Dennis Ritchie发明了C语言,1973年,Unix系统的绝大部分源代码用C语言重写,提高了Unix系统的可移植性。
Linux是一套 免费使用
和 自由传播
的类Unix操作系统。它诞生于1991年,由芬兰大学生李纳斯(Linus Torvalds)和后来陆续加入的众多爱好者共同开发完成。
Linux内核官网:www.kernel.org,目前最新稳定版本为4.17.8
如果想在已装的系统上查询系统内核,可使用uname -a命令
主要发行版本介绍:http://www.cnblogs.com/lcword/p/5865533.html
Linux是开源免费的,它Github上的托管地址:https://github.com/torvalds/linux
开源项目特点:
- 使用的自由,绝大多数开源软件免费
- 研究的自由,可以获得软件源代码
- 散布及改良的自由,可以自由传播、改良甚至销售
除了VMware,Oracle的 VitrualBox也是较常用的虚拟机!
第1步,创建虚拟机
第2步,选择典型安装;
第3步,选择稍后安装操作系统
第4步,选择客户机操作系统与版本
第5步,给创建的虚拟机命名,并选择要存储的位置
第6步,在指定磁盘容量处,直接点击下一步
第7步,单击完成创建虚拟机
快照生成
系统克隆
注:以上两种方式克隆出来的系统,网卡都变成eth1,因此需要将eth1修改成eth0:
https://www.cnblogs.com/zhangjxblog/p/6479740.html
点击虚拟机屏幕可操作虚拟机,按CTRL+ALT可退出操作虚拟机
如果虚拟机有更改,在重新导入并启动时,可能会有弹出提示”我已移动该虚拟机”或“我已复制该虚拟机”:
百度上偷了3篇文章:
CentOS 7安装:https://jingyan.baidu.com/article/20095761d65c67cb0721b4a8.html
CentOS 7与6的不同:http://blog.51cto.com/liuqun/2044542
CentOS7网络连接配置:https://jingyan.baidu.com/article/6b1823098a4d9eba58e159ea.html
CentOS7防火墙配置:https://www.cnblogs.com/moxiaoan/p/5683743.html
第1步,打开虚拟机设置,点击cd/dvd,选择使用iso映像,并确定
第2步,开启虚拟机准备安装
如果在这一步有VMware 报错“Intel VT-x处于禁止状态”, 需要开启进入本机的bios开启虚拟化支持
第3步,在安装选项界面选择“Install or upgrade an existing system”
第4步,接下来选择skip
第5步,在接下来显示屏幕的右下角,点击next进行安装
第6步,选择English,然后点击next
第7步,选择美国英文式键盘,然后点击next
第8步,选择基本存储设备,然后点击next
第9步,在弹出框中选择“是,忽略所有数据”
第10步,设置主机名,然后点击next
第11步,默认时区,然后点击next
第12步,设置根帐号(root)的密码,然后点击next
第13步,点击创建自定义布局,然后点击next
第14步,设置分区,然后点击next,基本分区规则如下:
推荐分区
/boot(启动分区,200MB以上) 我的是20G
必须分区
第15步,在弹出框中选择格式化
第16步,在弹出框中选择将修改写入磁盘
第17步,点击next
第18步,选择Basic Server,然后点击next
第19步,等安装完成…,安装完成后点击重新引导
第20步,等启动完成,便可使用Linux。
root登录默认进入/root,普通用户登录将进入/home
//永久性的修改主机名称,重启后能保持修改后的。
hostnamectl set-hostname xxx
//删除hostname
hostnamectl set-hostname ""
hostnamectl set-hostname "" --static
hostnamectl set-hostname "" --pretty
reboot 重启生效
还有一种方法是直接修改主机名文件,vi /etc/hostname,这种方法修改也是永久是生效的:
重要目录介绍:
- /boot,系统引导程序
- /root,根用户目录,root用户登录默认进入此目录
- /home,普通用户目录,普通用户登录默认进入此目录
- /bin,普通用户命令
- /sbin,管理员命令
- /etc,系统配置目录
- /tmp,临时目录,系统重启后tmp目录会清空
- /dev,设备目录,配合mnt目录挂载外部设备
- /mnt,挂载目录
- /lib,程序运行时使用的共享库
- /var,程序运行时要改变的数据
- /usr,系统级的程序目录,类似Windows的c://windows,另外还有几个重要的子目录:
- /usr/lib,类似Windows的c://sytem32;
- /usr/local,用户级的程序目录,类似Windows的c://Program Files;
- /usr/src,系统级的源码目录;
- /usr/local/src:用户级的源码目录;
- /opt,存放可选的三方程序,如尝新或临时使用的软件等
- …
重要配置文件介绍:
/etc/profile,全局环境变量配置文件
/etc/inittab,运行等级配置文件
/etc/rc.d/init.d/,系统现有的服务目录
/etc/sysconfig/network,查看网络和机器名的配置文件
/etc/sysconfig/network-scripts/ifcfg-eth0,IP地址配置文件
/etc/sysconfig/iptables,防火墙配置文件
/etc/hosts,hosts配置文件
设置用户名:vi /etc/hostname如果上线的项目运行时有“java.net.UnknownHostException: xxx: 未知的名称或服务”异常,可参考修改hosts文件解决:https://blog.csdn.net/yuxuan_08/article/details/52925993?locationNum=6&fps=1
…
仅主机模式:虚拟机只能和本机通信,使用VMnet1虚拟网卡通信。
优点:适合于电脑没插网线时,当前系统与虚拟机里的Linux连接。
缺点:虚拟机只能和本机通信,并且不能配置虚拟机上网。
NAT 模式:虚拟机可以和本机通信,还可以配置连接上网,使用VMnet8虚拟网卡通信。
推荐使用静态IP配置连接上网,这样可以做到网络变化时,虚拟机IP仍然保持不变,具体实现步骤:
- 第3步,进入网络配置文件
vim /etc/sysconfig/network-scripts/ifcfg-ens33
并配置网络信息(我修改的地方都有注释标注):
TYPE=Ethernet PROXY_METHOD=none BROWSER_ONLY=no # 把默认的自动分配IP(dhcp)改成手动指定IP(static) BOOTPROTO=static DEFROUTE=yes 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=100cb451-54f9-4b74-80d8-d8d9b098b926 DEVICE=ens33 # 把ONBOOT参数改成随系统启动(yes) ONBOOT=yes # 指定IP,需要在刚才查看的网关地址段 IPADDR=192.168.26.26 # 指定子网掩码 NETMASK=255.255.255.0 # 指定刚才查看的网关地址 GATEWAY=192.168.26.2 # 指定一个DNS服务器地址,这里是用的Google的,你也可以改成其它的。 # 注:DNS1的1千万不能少,少了就配置无效,之前我掉这个坑了。 DNS1=8.8.8.8 ZONE=public
- 第4步,指定虚拟机所在主机的VMnet8虚拟网卡
- 第5步,全部配置完成后,测试主机是否能够ping通虚拟机,虚拟机是否又能够ping通百度。
桥接模式:虚拟机只要与本机同在一个网段就会使用真实网卡与本机进行通信。
优点:配置连接上网简单,只要在同一个网段即可。
缺点:此方式会占用本机所在网段的IP。
虚拟机VMware3种网络模式(桥接、NAT、Host-only)的工作原理
https://www.cnblogs.com/hehexiaoxia/p/4042583.html
注意:
- 临时设置IP的命令:ifconfig eth0 192.168.1.2
- 只有先保证与本机同在一个IP段,才能进一步实现远程登录。
相关设置:
第1步,解决Putty中文显示乱码问题,Category->Window->Translation -> UTF-8;
第2步,解决Putty3分钟不动需要重登的问题,putty->Connection->Seconds between keepalives ( 0 to turn off ), 默认为0, 改为60
第3步,save 此 session,保存此设置。
命令格式说明: 命令 [-选项] [参数],如ls -la /etc
命令:ls,原意list -
语法:ls [-alhi] [文件或目录]
-rw-r–r--. 1 root root 27K 9月 8 22:52 install.log
drwxr-xr-x. 2 root root 4.0K 9月 8 23:38 test
- rwx(所有者,可读可行可执行)
- r-x(其他人,可读可执行)
在Linux中除了 / 不可以用作文件名外,其它都可以但是最好不要以一些怪异符号。另外Linux下以.开关的文件都是隐藏文件!
命令:rm,原意remove
语法:rm [-rf] 文件或目录…
- 如果使用rm -rf还可以递归删除带有文件的目录!
- 删除还支持模糊匹配模式,如:rm -rf *、rm -rf *b*
命令:cp,原意copy
语法:cp [-rfp] 原文件或目录… 目标目录
复制时-f强制覆盖的命令无效的解决方法是\cp -f …
命令:touch
语法:touch 文件…
可以使用echo “内容” >|>> 文件位置,给文件添加内容。
命令:cat
语法:cat [-n] 文件
如果需要反向显示文件内容,请用tac,如tac /etc/issue
命令:more
语法:more 文件
空格向后翻页、回车向后换行、q退出
命令:less
语法:less 文件
- PageUp向上一页,PageDown向下一页;
- 先按[ESC],再按[ > ],显示最后一行;
- 先按[ESC],再按[ < ],显示第一行;
- 上下键换行;
- q退出。
命令:ln,原意link
语法:ln [-s] 原文件 目标文件
- 在创建链接时,原文件一定要指定完全路径,如/root/a;
- 软链接lrwxrwxrwx. 1 root root 1 9月 9 00:57 a->/root/a;
- 硬链接cp -p + 同步更新,可通过i节点识别。
命令:grep
语法:grep [-i] 指定字符串 文件 --color
- 在搜索结果中过滤:ls -al /etc | grep sys
- 查询tomcat所占的进程:ps -ef | grep tomcat
- 查看占用8080端口的程序:netstat -ant | grep 8080
命令:find
语法:find [搜索范围] [匹配条件]
- find /etc -name “init”
- find /home -user “hsu”
- find /etc -name “init*”
- find /etc -type l|d|f
更多用法:http://blog.csdn.net/u012408083/article/details/51754616
命令:chmod,原意change the permissions mode of a file
语法:chmod [-R] 权限数字 文件或目录
权限数字表示:r-4,w-2,x-1,因此rwxrw-r–的权限数字为764
命令:who|w
语法:who|w
如果想列出登录过的用户信息可使用last或lastlog -u 用户名
命令:su, 原意switch user
语法:su 用户名
如果用su切换了用户,可以使用exit命令退出当前用户,返回原来用户。
logout
命令:wall,原意write all
语法:wall 信息内容
如果发送的内容比较长,可以事先将内容保存在文件中,然后使用读取文件命令:wall msgfile
发送:
第一步,在控制台输入mail 其它用户名;
第二步,在控制台输入标题和内容信息;
第三步,按ctrl + d执行发送。
接收:
在控制台直接输入mail查看信息:
命令:ifconfig,原意interface configure CentOS7 用 ip addr
语法:ifconfig 网卡名称 IP地址,如ifconfig eth0 ip
可以使用ifconfig -a查看有哪些网卡。
命令:ping
语法:ping [-c] 对方ip或域名
如果目标地址为外网,需要使用桥接模式或NAT模式并配置网络!
第1步,输入setup命令进入更改;
第2步,然后输入vim /etc/sysconfig/network-scripts/ifcfg-eth0, 将ONBOOT改为yes,再重启网络;
第3步,重启网络服务service network restart。
压缩语法:gzip 文件
- gzip只能压缩文件(并且只能压缩一个文件),不能压缩目录
- 压缩后不保留原文件
解压语法:gunzip 压缩文件
压缩语法:tar -zcf 压缩后的文件名 文件或目录…
相关参数介绍:
- z 打包时同时压缩;
- c 打包;
- f 指定文件名
解压语法:tar -zxvf 压缩文件 [-C 其它目录]
相关参数介绍:
- z 解压缩;
- x 解包;
- v 显示详细信息;
- f 指定压缩文件
*.tar.gz是使用最多的一种压缩格式,tar为打包,gz为压缩!
压缩语法:zip [-r] 压缩后的文件名 文件或目录…
r 表示递归压缩目录文件
zip的相关特点:
- 压缩后能保留原文件
- 能压缩目录
- 能与windows上的zip文件通用
- zip的压缩比比较差
解压语法:unzip 压缩后的文件名
挂载
mount [-t 文件系统] 设备文件名 挂载点
以iso镜像文件挂载到Linux为例:
第1步,在虚拟机设置 -> CD/DVD -> 选择指定的iso镜像文件
第2步,在mnt目录下创建cdrom目录
第3步,执行mount -t iso9660 /dev/cdrom /mnt/cdrom进行挂载
第4步,挂载完成后就可以到/mnt/cdrom浏览器光盘中的文件
可以直接mount命令查看系统上所有的挂载情况!
取消挂载
umount /dev/cdrom
不要在正在挂载的目录下执行取消挂载命令!
Vim是一个功能强大、Linux/Unix上最常用的文本编辑器,它的作用是建立、编辑、显示文本文件,整个操作过程全是由命令完成!
软件包分类:
二进制包(RPM包、系统默认包)
Redhat系列和Debian系列的最明显的区别就是在软件包格式上,Redhat默认为*.rpm,Debian默认为*.deb
windows上的软件包不可以在linux上运行!
源码包
mysql-connector-odbc-5.1.5r1144-7.el6.x86_64.rpm
参数组成:
mysql-connector-odbc 软件名
5.1.5r1144 软件版本
7 软件的发布次数
el6 适合的Linux平台
x86_64 适合的硬件平台
rpm 包扩展名
依赖安装测试:
第1步,先挂载CentOS-6.5-x86_64-bin-DVD1
第2步,cd /mnt/cdrom/Packages
第3步,rpm -ivh mysql-connector-odbc-5.1.5r1144-7.el6.x86_64.rpm
注:rpm包安装不需要指定目录,安装后将默认生成到相关目录!
测试使用CentOS 6.5里自带的rpm包,手工处理依赖安装Apache!
第1步,yum -y install httpd;
第2步,service httpd start|restart|stop;
第3步,开启服务器后,测试服务器是否开启成功。
测试方式有:
本地:curl http://localhost
外部:在浏览器上输入服务器的ip测试
需要注意的是,如果在外部无法访问,需要设置防火墙开启80端口:
第1步,打开防火墙配置:vi /etc/sysconfig/iptables
第2步,开启80端口:-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEP
第3步,重启防火墙,配置生效:service iptables restart
当然也可以直接关闭防火墙service iptables stop,这在生产环境中是不允许的!
另外,也可以在Windows上使用telnet命令查看80端口是否开启:telnet 192.168.0.24 80
安装完成后,输入httpd -v可查看apche的安装版本!
RPM包安装的服务可通过系统服务命令来启动
service httpd start|restart|stop
/etc/rc.d/init.d/httpd start|restart|stop
可通过/etc/rc.d/init.d和setup查看系统安装了哪些服务!
源码包安装的服务,没有安装到默认路径中,只能由绝对路径启动
Makefile方式
以Makefile方式安装Apache为例(大致步骤):http://www.cnblogs.com/zhuque/archive/2012/11/03/2763352.htmlhttp://blog.csdn.net/u011214505/article/details/48130533
第1步,安装C语言编译器yum -y install gcc (实际安装时可能还需要三方依赖)
第2步,下载httpd-2.4.27.tar.gz,并传至linux的/usr/local/src下,再解压
第3步,进入解压目录,然后vi INSTALL,根据INSTALL提示进行安装
$ ./configure --prefix=/usr/local/apache,生成Makefile文件
$ make,编译
$ make install,安装
$ /usr/local/apache/bin/apachectl start,启动
脚本安装包方式
脚本安装包是人为把安装过程写成了自动安装的脚本,只要执行脚本,定义简单的参数,就可以完成安装。如webmin、mysql等软件
绿色版方式安装
解压即安装完成。如jdk、tomcat等软件
第1步,卸载CentOS自带的Java环境
先查看安装rpm -qa | grep java,再做对应卸载yum -y remove java
第2步,下载jdk-8u144-linux-x64.tar.gz,并传至linux的/usr/local/src下
第3步,解压tar -zxvf jdk-8u144-linux-x64.tar.gz -C /usr/local
第4步,配置环境变量
vim /etc/profile,在最后加入以下几行,并保存退出:
export JAVA_HOME=/usr/local/jdk1.8.0_144
export PATH=$PATH:/usr/local/jdk1.8.0_144/bin
需要刷新配置环境变量;source /etc/profile
第5步,source /etc/profile,并在控制台输入javac测试安装是否完成
第1步,在安装前要安装JDK,并一定要配置环境变量JAVA_HOME!
第2步,下载apache-tomcat-8.0.46.tar.gz,并传至linux的/usr/local/src下
第3步,解压tar -zxvf apache-tomcat-8.0.46.tar.gz -C /usr/local
第4步,转至/usr/local/apache-tomcat-8.0.46/bin目录
第5步,启动Tomcat:./startup.sh
Tomcat的两种启动方式:
./startup.sh
,默认为后台启动查看控制台的输出:more /usr/local/apache-tomcat-8.0.46/logs/catalina.out
./catalina.sh run
,默认为前台启动(可以看到控制台)
不能访问这可能是没有开启端口,可关闭防火墙或者开启相关的端口
第1步,MySQL数据库安装(CentOS操作系统/tar.gz方式)
具体安装步骤:http://www.cnblogs.com/sybblogs/p/5633956.html
第2步,配置环境变量
vim /etc/profile,在PATH后追加MySQL的bin目录路径:
export PATH=$PATH:/usr/local/jdk1.8.0_144/bin:/usr/local/mysql/bin
第3步,source /etc/profile
第4步,连接数据库,mysql -u用户名 -p密码
登录成功后可查询MySQL的字符集:show variables like ‘character%’;
允许MySQL的远程访问:GRANT ALL PRIVILEGES ON *.* TO root@’%’ IDENTIFIED BY ‘root’ WITH GRANT OPTION;
操作完后切记执行以下命令刷新权限:FLUSH PRIVILEGES;
第5步,停止服务,/usr/local/mysql/support-files/mysql.server stop
参考5.2.5. 使用yum安装apache
useradd 添加一个用户
useradd test 添加test用户
useradd test -d /home/t1 指定用户home目录
passwd 设置、修改密码
passwd test 为test用户设置密码
切换登录:
ssh -l test -p 22 192.168.19.128
su – 用户名
userdel 删除一个用户
userdel test 删除test用户(不会删除home目录)
userdel –r test 删除用户以及home目录
当在创建一个新用户user时,若没有指定他所属于的组,就建立一个和该用户同名的私有组
创建用户时也可以指定所在组
groupadd 创建组
groupadd public 创建一个名为public的组
useradd u1 –g public 创建用户指定组
groupdel 删除组,如果该组有用户成员,必须先删除用户才能删除组。
groupdel public
【id命令】
功能:查看一个用户的UID和GID
用法:id [选项]… [用户名]
直接使用id
直接使用id 用户名
【su命令】
功能:切换用户。
用法:su [选项]… [-] [用户 [参数]… ]
示例:
su u1 切换到u1用户
su - u1 切换到u1用户,并且将环境也切换到u1用户的环境(推荐使用)
【账户文件】
/etc/passwd 用户文件
/etc/shadow 密码文件
/etc/group 组信息文件
【用户文件】
root❌0:0:root:/root:/bin/bash
账号名称: 在系统中是唯一的
用户密码: 此字段存放加密口令
用户标识码(User ID): 系统内部用它来标示用户
组标识码(Group ID): 系统内部用它来标识用户属性
用户相关信息: 例如用户全名等
用户目录: 用户登录系统后所进入的目录
用户环境: 用户工作的环境
【密码文件】
shadow文件中每条记录用冒号间隔的9个字段组成.
用户名:用户登录到系统时使用的名字,而且是惟一的
口令: 存放加密的口令
最后一次修改时间: 标识从某一时刻起到用户最后一次修改时间
最大时间间隔: 口令保持有效的最大天数,即多少天后必须修改口令
最小时间间隔: 再次修改口令之间的最小天数
警告时间:从系统开始警告到口令正式失效的天数
不活动时间: 口令过期少天后,该账号被禁用
失效时间:指示口令失效的绝对天数(从1970年1月1日开始计算)
标志:未使用
【组文件】
root❌0:
组名:用户所属组
组口令:一般不用
GID:组ID
用户列表:属于该组的所有用户
…
属主(user) | 属组(group) | 其他用户 | ||||||
---|---|---|---|---|---|---|---|---|
r | w | x | r | w | x | r | w | x |
4 | 2 | 1 | 4 | 2 | 1 | 4 | 2 | 1 |
普通文件: 包括文本文件、数据文件、可执行的二进制程序文件等。
目录文件: Linux系统把目录看成是一种特殊的文件,利用它构成文件系统的树型结构。
设备文件: Linux系统把每一个设备都看成是一个文件
普通文件(-)
目录(d)
符号链接(l)
* 进入etc可以查看,相当于快捷方式
字符设备文件(c)
块设备文件(s)
套接字(s)
命名管道(p)
chmod 变更文件或目录的权限。
chmod 755 a.txt
chmod u=rwx,g=rx,o=rx a.txt
chmod 000 a.txt / chmod 777 a.txt
chown 变更文件或目录改文件所属用户和组
chown u1:public a.txt :变更当前的目录或文件的所属用户和组
chown -R u1:public dir :变更目录中的所有的子目录及文件的所属用户和组
…
…
…
…
…
…
…