操作系统(英语:Operating System,简称OS)是管理和控制计算机硬件与软件资源的计算机程序,是直接运行在“裸机”上的最基本的系统软件,任何其他软件都必须在操作系统的支持下才能运
操作系统是用户和计算机的接口,同时也是计算机硬件和其他软件的接口。操作系统的功能包括管理计算机系统的硬件、软件及数据资源,控制程序运行,改善人机界面,为其它应用软件提供支持等,使计算机系统所有资源最大限度地发挥作用,提供了各种形式的用户界面,使用户有一个好的工作环境,为其它软件的开发提供必要的服务和相应的接口。
操作系统按应用领域划分主要有三种:桌面操作系统、服务器操作系统和嵌入式操作系统
桌面操作系统主要用于个人计算机上。个人计算机市场从硬件架构上来说主要分为两大阵营,PC机与Mac机,从软件上可主要分为两大类,分别为类Unix操作系统和Windows操作系统
微软公司1985年推出的MS-DOS之下的桌面环境,
而后其后续版本逐渐发展成
为个人电脑和服务器用户设计的操作系统,
最终获得了个人电脑操作系统软件的垄断地位。
成为了最受欢迎的个人电脑操作系统
系统面向个人用户,所以操作上会更加便捷
面向专业计算机技术人员,黑客,专业机构的,
简洁,安全,高效的计算机操作系统
开放、免费的操作系统。
基于Unix操作系统发展而来,也称之为类Unix系统。
• 虚拟机软件在一台机器上,虚拟了多个硬件设备,
可以在同一台机器上运行两个或多个操作系统。
工作中一般用于做系统测试
•目录pwd : 打印系统目录
cd : 改变目录
ls : 查看目录中的文件
-l 列出详细信息
-a 显示隐藏文件
mkdir xxx : 创建xxx目录
mkdir –p /aaa/bbb/ccc : 创建目录树
rm –f xxx : 删除文件
rmdir : 删除目录
rm –rf xxx : 删除指定目录及子目录
•文件mv : 移动
cp : 复制
rpm –ivh xxxx.rpm : 打包和安装工具
tar : 压缩和解压缩
•系统kill : 杀掉进程
reboot : 重启
halt : 关机
CentOS如何挂载硬盘
第一步:列出所有磁盘 命令: ll /dev/disk/by-path
正在上传…重新上传取消
正在上传…重新上传取消
tmpfs介绍
tmpfs是一种虚拟内存文件系统,而不是块设备。是基于内存的文件系统,创建时不需要使用mkfs等初始化
它最大的特点就是它的存储空间在VM(virtual memory),VM是由linux内核里面的vm子系统管理的。
linux下面VM的大小由RM(Real Memory)和swap组成,RM的大小就是物理内存的大小,而Swap的大小是由自己决定的。
Swap是通过硬盘虚拟出来的内存空间,因此它的读写速度相对RM(Real Memory)要慢许多,当一个进程申请一定数量的内存时,如内核的vm子系统发现没有足够的RM时,就会把RM里面的一些不常用的数据交换到Swap里面,如果需要重新使用这些数据再把它们从Swap交换到RM里面。如果有足够大的物理内存,可以不划分Swap分区。
VM由RM+Swap两部分组成,因此tmpfs最大的存储空间可达(The size of RM + The size of Swap)。 但是对于tmpfs本身而言,它并不知道自己使用的空间是RM还是Swap,这一切都是由内核的vm子系统管理的。
tmpfs默认的大小是RM的一半,假如你的物理内存是1024M,那么tmpfs默认的大小就是512M
一般情况下,是配置的小于物理内存大小的。
tmpfs配置的大小并不会真正的占用这块内存,如果/dev/shm/下没有任何文件,它占用的内存实际上就是0字节;如果它最大为1G,里头放有100M文件,那剩余的900M仍然可为其它应用程序所使用,但它所占用的100M内存,是不会被系统回收重新划分的。
当删除tmpfs中文件,tmpfs 文件系统驱动程序会动态地减小文件系统并释放 VM 资源。
#########################
tmpfs的用途
例如:
Oracle 中的Automatic Memory Management特性就使用了/dev/shm。
LINUX中可以把一些程序的临时文件放置在tmpfs中,利用tmpfs比硬盘速度快的特点提升系统性能。
调整tmpfs大小大致有以下三种方法:
1.直接挂载到需要的目录--比如系统的临时目录-可以根据实际需要挂载某个程序的临时文件的目录
[root@bys3 ~]# mount -t tmpfs -o size=20m tmpfs /tmp
[root@bys3 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 16G 10G 4.7G 69% /
/dev/sda1 99M 21M 74M 22% /boot
tmpfs 502M 0 502M 0% /dev/shm
tmpfs 20M 0 20M 0% /tmp
由于没有挂载之前/tmp目录下的文件也许正在被使用,因此挂载之后系统也许有的程序不能正常工作。可以写入/etc/fstab,这样重启后也有效。
2./etc/fstab文件来修改/dev/shm的容量(增加size=100M选项即可),修改后,重新挂载即可:
[root@bys3 ~]# cat /etc/fstab
LABEL=/ / ext3 defaults 1 1
LABEL=/boot /boot ext3 defaults 1 2
tmpfs /dev/shm tmpfs defaults,size=600M 0 0
tmpfs /tmp tmpfs defaults,size=25M 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
LABEL=SWAP-sda3 swap swap defaults 0 0
/dev/sda5 swap swap defaults 0 0
[root@bys3 ~]# mount -a --测试/etc/fstab无错误,重启OS系统
[oracle@bys3 ~]$ df -h --重启后的信息如下,tmpfs文件系统的对应条目已经改变为配置的
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 16G 10G 4.7G 69% /
/dev/sda1 99M 21M 74M 22% /boot
tmpfs 600M 0 600M 0% /dev/shm
tmpfs 25M 0 25M 0% /tmp
3./dev/shm建一个tmp目前,并与/tmp绑定。 --这方法有点烦琐,不如方法1方便快捷。
[root@bys3 ~]# mkdir /dev/shm/tmp
[root@bys3 ~]# chmod 1777 /dev/shm/tmp
[root@bys3 ~]# mount --bind /dev/shm/tmp /tmp -注意mount --bind 这里bind前是两个-
[root@bys3 ~]# ls -ld /tmp
drwxrwxrwt 2 root root 40 Dec 8 12:15 /tmp
[root@bys3 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 16G 10G 4.7G 69% /
/dev/sda1 99M 21M 74M 22% /boot
tmpfs 600M 0 600M 0% /dev/shm
tmpfs 600M 0 600M 0% /tmp ----可以看到/tmp使用到了 /dev/shm的空间。
提示:如果无法确认数据盘设备名称,请使用df命令来确认系统盘的名称,从而排除挂错盘的情况。
第二步:格式化硬盘 命令: fdisk /dev/vdb
常见的硬盘一般分为三类。IDE硬盘,SCSI硬盘和SATA硬盘。通常我们电脑上的硬盘都是IDE和SATA,而服务器一般用SCSI硬盘。SCSI的硬盘接口设备叫sd,第一块硬盘就是sda,第二块硬盘是sdb...以此类推。Linux规定,一块硬盘上最多存在四个主分区。命名方式分别是sd1,sd2,sd3,sd4。而逻辑分区从sd5开始,没有数量限制,命名方式为sd5,sd6...sd无穷大。主分区可以简单的理解为windows下的C盘,也就是系统分区,是引导操作系统必要的分区。而逻辑分区可以简单的理解为windows下的CDE盘等等。
说完硬盘分区,我们再回头说一下目录,很多朋友一键安装完linux系统,看着种类繁多的目录可能头疼异常,每个目录看起来都不明觉厉的样子。下面我们就简单的看一下Linux系统的主要目录及其内容。常见的目录有,
/bin ##存放系统的核心最常用的命令
/boot ##内核与启动文件
/dev ##各种设备文件
/etc ##系统软件的配置文件
/home ##用户的主目录,比如你新建一个用户zhang,home下一般自动生成zhang目录,用来记录zhang的一些操作和内容
/lib ## C编译器的库
/root ##超级用户root的目录
/proc ##进程的映像
/tmp ##临时文件存放点
/usr ##非系统的程序和命令
/var ##数据目录,一般数据库文件也存放在此目录下
正在上传…重新上传取消
注意:图中箭头标注处续手动键入
第三步:创建分区 命令: mkfs.ext3 /dev/vdb1
正在上传…重新上传取消
第四步:挂载分区 命令: mkdir /data
mount /dev/vdb1 /data # 将sdb这个硬盘挂载成为/data
正在上传…重新上传取消
第五步:将信息写入fstab,让系统开启自动挂载。
命令: echo "/dev/sdb1 /data ext3 defaults 0 0" >> /etc/fstab
正在上传…重新上传取消
Percona Server 5.6 Install (基于RPM包)
分类: Mysql/postgreSQL
MySQL的安装方式一般分三种:基于RPM包安装,基于二进制包安装,基于源代码安装。不同的安装方式,
所有的知识面不一样。其实基于RPM包安装方便快捷,目录结构固定。因此,对于一般使用来说已足够。
1.安装RPM包
[root@localhost PerconaServerRPM]# rpm -ivh Percona-Server-shared-56-5.6.28-rel76.1.el6.x86_64.rpm
[root@localhost PerconaServerRPM]# rpm -ivh Percona-Server-client-56-5.6.28-rel76.1.el6.x86_64.rpm
[root@localhost PerconaServerRPM]# rpm -ivh Percona-Server-server-56-5.6.28-rel76.1.el6.x86_64.rpm
编辑配置my.cnf文件
#vim /etc/my.cnf
注:文件中涉及到的路径需求手动创建
Java jdk
[root@linux1 ~]# rpm -qa | grep java
tzdata-java-2016c-1.el6.noarch
java-1.6.0-openjdk-1.6.0.38-1.13.10.4.el6.x86_64
java-1.7.0-openjdk-1.7.0.99-2.6.5.1.el6.x86_64
卸载系统自带的java
[root@linux3 ~]# rpm -qa | grep java | xargs rpm -e --nodeps
查看卸载结果
[root@linux3 ~]# java -version
bash: /usr/bin/java: No such file or directory
卸载成功
jdk-7u79-linux-x64.rpm
第一种方法:rpm包安装
rpm包导入用户root目录下
[root@linux2 ~]# ls
anaconda-ks.cfg id_dsa.pub install.log install.log.syslog
jdk-7u79-linux-x64.rpm
赋予权限
[root@linux2 ~]# chmod 755 jdk-7u79-linux-x64.rpm
安装
[root@linux2 ~]# rpm -ivh jdk-7u79-linux-x64.rpm
Preparing... ########################################### [100%]
1:jdk ########################################### [100%]
Unpacking JAR files...
rt.jar...
jsse.jar...
charsets.jar...
tools.jar...
localedata.jar...
jfxrt.jar...
安装完成
设置环境变量
[root@localhost java]# vi /etc/profile
在打开的profile文件中添加如下内容
JAVA_HOME=/usr/java/jdk1.7.0_80
CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
PATH=$PATH:$JAVA_HOME/bin
export JAVA_HOME
export PATH
export CLASSPATH
让修改生效
[root@localhost java]# source /etc/profile
最后检测一下已经安装的jdk
[root@linux3 java]# java -version
java version "1.7.0_79"
Linux在centos6.8上安装gcc
打开命令行
输入gcc -v,然后输入命令安装
如果提示command not found 证明没有安装
然后输入 yum install gcc 进行安装gcc(注意:其中会有提示yes/no的操作,一定要看清没有报错就y,连续两次y ,最后提示Complete!成功)
看到安装后的字样complete
然后输入gcc -v
输出目标target等信息就成功了
........
........
........
gcc version 4.4.7 20120313 (Red Hat 4.4.7-17) (GCC)
linux下centOS系统让tomcat以service方式运行
原创 2015年12月03日 17:10:27
- 标签:
- linux /
- service /
- tomcat /
- centos
- 4219
1. 在/etc/init.d目录下新建文件,命名为tomcat
2. 对tomcat文件进行编辑,执行
# cd /etc/init.d/
# vi tomcat
将下面代码粘上去
#!/bin/sh
# chkconfig: 2345 20 80
# description: simple example to start tomcat
JAVA_HOME=/usr/java/jdk1.7.0_80
CATALINA_HOME=/usr/local/tomcat1
CATALINA_OPTS="-Dfile.encoding=UTF8 -Dsun.jnu.encoding=UTF8 -Xms1024m -Xmx3072m -XX:PermSize=256m -XX:MaxPermSize=512m"
RETVAL=0
prog="tomcat1"
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
3. 按ESC退出,并#:wq
4. 设置tomcat的文件属性,把tomcat 修改为可运行的文件,命令参考如下
#chmod a+x tomcat
5. 设置服务运行级别
#chkconfig --add tomcat
6. 服务就添加成功了
然后用 chkconfig --list 查看,在服务列表里就会出现自定义的服务了
# chkconfig --list
7. 测试
service tomcat start
service tomcat stop
service tomcat restart
service tomcat status
Tomcat 学习笔记(2) - 使用 jsvc 启动tomcat
- jsvc
- java
- tomcat
jsvc 是个什么是么高端武器呢
全称:Java Service
还是没有弄明白是什么,那就继续往下看。
我们赞不讨论 tomcat 应不应该运行在80端口上。
假如我们有需求,需要 tomcat 运行在 80 端口上。
那么一个限制就出现了。*nix操作系统只用root权限才能监听1024已下的端口。
虽然我们可以让 tomcat 启动后 以 tomcat用户的权限工作。这样安全性就可以得到保障。
但是还有更强的方案。他就是 jsvc 当然 jsvc 可不仅仅就这么一点功能。
我们通过 jsvc 可以很简单的 封装我们自己的 启动脚本,
还可以 随意制定 tomcat 运行用户和组,还可以指定 jvm 的运行参数例如内存控制,语言,字符编码。
我们还可以指定 tomcat 启动是的 pidfile 总之我们可以更精细的控制tomcat的运行方式。比原始脚本拥有无法比拟的优势。
既然 jsvc 的有点有那么多。那到底怎么做呢。
jsvc是一套用c编写的程序,是tomcat发行版自带的一套代码。是Jakarta Commons Daemon 工程的一个复制品。只有该版本的jsvc是绑定到tomcat二进制发行版中。这意味着它要与该版本的Tomcat一同使用。
在 tomcat 8.0 版本中 jsvc 的源代码包 tomcat/bin/commons-daemon-native.tar.gz
我们找到该tar包,准备编译成二进制文件
$ tar -zxvf commons-daemon-native.tar.gz
$ cd commons-daemon-1.0.15-native-src
$ ./configure --with-java=$JAVA_HOME$ make
编译完成以后,会产生一个jsvc的二进制可执行文件
$ ./jsvc --help
Usage: jsvc [-options] class [args...]
Where options include:
-help | --help | -? show this help page (implies -nodetach)
-jvmuse a specific Java Virtual Machine. Available JVMs:
'server'
-client use a client Java Virtual Machine.
-nodetach don't detach from parent process and become a daemon
-debug verbosely print debugging information
-check only check service (implies -nodetach)
-useruser used to run the daemon (defaults to current user)
-verbose[:class|gc|jni] enable verbose output
-cwd set working directory to given location (defaults to /)
........
........
jsvc (Apache Commons Daemon) 1.0.15-dev
Copyright (c) 1999-2013 Apache Software Foundation.
相信看到 现象以后大家大概已猜出jsvc到底是干什么的了。对他就是tomcat的守护进程管理工具
怎么使用呢?
如果你的 tomcat 还在运行那么他大概会是这样的
$ ps auwx | grep java/usr/bin/java -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.endorsed.dirs=/usr/local/tomcat/endorsed -classpath /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar -Dcatalina.base=/usr/local/tomcat -Dcatalina.home=/usr/local/tomcat -Djava.io.tmpdir=/usr/local/tomcat/temp org.apache.catalina.startup.Bootstrap start
我们想换做 jsvc 管理的话,只需要将 java 换成jsvc就可以了
$ ./jsvc -user tomcat -pidfile /var/run/jsvc.pid -Djvm=tomcat -Xmx50M -Xms50M -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.endorsed.dirs=/usr/local/tomcat/endorsed -classpath /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar -Dcatalina.base=/usr/local/tomcat -Dcatalina.home=/usr/local/tomcat -Djava.io.tmpdir=/usr/local/tomcat/temp org.apache.catalina.startup.Bootstrap start
我指定了 tomcat 运行的用户身份是tomcat用户指定了pidfile在/var/run/jsvc.pid同时限制了tomcat运行的内存限制
小伙伴们看到这儿了。就不用我多说了。有了 jsvc tomcat 控制tomcat就完全不在话下了。
可能小伙伴么已经发现了 jsvc 的 -stop 选项。对的,jsvc 可以关闭tomcat.也很简单
$ ./jsvc -stop -pidfile /var/run/jsvc.pid org.apache.catalina.startup.Bootstrap stop
有趣的是 最后的 stop 不加 也可以正常停止 tomcat
你可以这么理解。应为我们使用了jsvc -stop 选项 关闭 tomcat,此时完全不需要再多余指定一个 stop 参数了。
到这里 小伙伴们 应该 对tomcat更有把握了。
Linux忘记 root密码的解决办法?这种情况虽然不是很常见,但是有些粗心的管理员长时间没有登录系统,还真会忘记密码。这时候,如果是远程管理,那就真没辙了。如果linux主机就在你身边,那还是有救的。只要你按以下步骤来操作:
解决方法
-
重启系统后出现GRUB界面在引导装载程序菜单上,用上下方向键选择你忘记密码的那个系统键入“e” 来进入编辑模式。
正在上传…重新上传取消
接下来你可以看到如下图所示的画面,然后你再用上下键选择最新的内核(这里是第二行,kernel.......),然后继续按“e”键。
正在上传…重新上传取消
然后在编辑界面rhgb quiet后面加“空格”,然后键入“single”,或者直接输入数字的“1”并回车确定。
正在上传…重新上传取消
回车后,按“b”键启动进入单用户模式,在这里修改root的密码。
正在上传…重新上传取消
这样重启之后root密码就已经被修改了!



