Linux那点事
来源:互联网 发布:矩阵如何计算 编辑:程序博客网 时间:2024/05/20 23:37
在ubuntu中设置root密码
用当前登录用户打开终端,在终端输入命令 sudo passwd,输入当前用户的密码然后回车
会提示输入新密码,输入完成后回车
init命令级别:
0:停机
1:单用户形式,只root进行维护
2:多用户,不能使用net file system
3:完全多用户
5:图形化
4:安全模式
6:重启
修改计算机名:
vi /etc/sysconfig/network
linux 配置网络连接:
CentOS
设置静态ip
使用root用户:
vi /etcIP/sysconfig/network-scripts/ifcfg-eth0
按i进入编辑模式
修改ONBOOT=no为
ONBOOT=yes
BOOTPROTO=static
添加下列配置:
IPADDR=192.168.11.200
NETMASK=255.255.255.0
GATEWAY=192.168.11.2
DEVICE=eth0 #描述网卡对应的设备别名
BOOTPROTO=static #设置网卡获得ip地址的方式,选项可以为为static,dhcp或bootp
BROADCAST=192.168.1.255 #对应的子网广播地址
HWADDR=00:07:E9:05:E8:B4 #对应的网卡物理地址
IPADDR=12.168.1.80 #只有网卡设置成static时,才需要此字段
NETMASK=255.255.255.0 #网卡对应的网络掩码
NETWORK=192.168.1.0 #网卡对应的网络地址,也就是所属的网段
ONBOOT=yes #系统启动时是否设置此网络接口,设置为yes时,系统启动时激活此设备
按esc键退出编辑模式
按:wq回车保存文件更改并退出
设置网关:
命令:
添加内容:
nameserver 192.168.11.2
重启网络:
service network restart
关闭防火墙
nginx安装环境
nginx是C语言开发,建议在linux上运行,本教程使用Centos6.5作为安装环境。
n gcc
安装nginx需要先将官网下载的源码进行编译,编译依赖gcc环境,如果没有gcc环境,需要安装gcc:
yum install gcc-c++
n PCRE
PCRE(Perl Compatible Regular Expressions)是一个Perl库,包括 perl 兼容的正则表达式库。nginx的http模块使用pcre来解析正则表达式,所以需要在linux上安装pcre库。
yum install -y pcre pcre-devel
注:pcre-devel是使用pcre开发的一个二次开发库。nginx也需要此库。
n zlib
zlib库提供了很多种压缩和解压缩的方式,nginx使用zlib对http包的内容进行gzip,所以需要在linux上安装zlib库。
yum install -y zlib zlib-devel
n openssl
OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。
nginx不仅支持http协议,还支持https(即在ssl协议上传输http),所以需要在linux安装openssl库。
yum install -y openssl openssl-devel
----------------------------------------------------------------------------------------------------------------------------
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$分隔符$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
----------------------------------------------------------------------------------------------------------------------------
也可以使用从网上下载的包,自己解压,安装,这样会比较快一点。
先安装gcc
yum install gcc-c++
PCRE:
ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/
ZLIB:
http://zlib.net/zlib-1.2.8.tar.gz
OPENSSL:
https://www-origin.openssl.org/source/openssl-1.0.1t.tar.gz
pcre编译安装:
./configure
make
make check (非必须)
make install
zlib的编译安装:
./configure
make
make check(非必须)
make install
openssl的编译安装:
需要用到perl5,先安装perl5(坑),然后编译安装openssl
编译安装perl5
./Configure
make
make test(非必须)
make install
编译安装openssl:
./config
make
make depend
make install
1 编译安装
将nginx-1.8.0.tar.gz拷贝至linux服务器。
解压:
tar -zxvf nginx-1.8.0.tar.gz
cd nginx-1.8.0
1、 configure
./configure --help查询详细参数(参考本教程附录部分:nginx编译参数)
注意:上边将临时文件目录指定为/var/temp/nginx,需要在/var下创建temp及nginx目录
# cd /var
# mkdir temp
# cd temp
# mkdir nginx
进入 cd nginx-1.8.0目录,执行以下命令
参数设置如下:
./configure \
--prefix=/usr/local/nginx \
--pid-path=/var/run/nginx/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/temp/nginx/client \
--http-proxy-temp-path=/var/temp/nginx/proxy \
--http-fastcgi-temp-path=/var/temp/nginx/fastcgi \
--http-uwsgi-temp-path=/var/temp/nginx/uwsgi \
--http-scgi-temp-path=/var/temp/nginx/scgi
实际上nginx的配置中,并没有提到使用openssl 。。。
可以使用./configure –help来查看有哪些参数可以配置
2、 编译安装
make
make install
安装成功查看安装目录 :
如果启动nginx的时候报错:
[root@node0 sbin]# ./nginx
./nginx: error while loading shared libraries: libpcre.so.1: cannot open shared object file: No such file or directory
则添加一个软连接,类似于windows中的快捷方式:
ln -s /usr/local/lib/libpcre.so.1 /lib64/
2 启动nginx
cd /usr/local/nginx/sbin/
./nginx
查询nginx进程:
# ps aux | grep nginx
15098是nginx主进程的进程id,15099是nginx工作进程的进程id
注意:执行./nginx启动nginx,这里可以-c指定加载的nginx配置文件,如下:
./nginx -c /usr/local/nginx/conf/nginx.conf
如果不指定-c,nginx在启动时默认加载conf/nginx.conf文件,此文件的地址也可以在编译安装nginx时指定./configure的参数(--conf-path= 指向配置文件(nginx.conf))
如果要在windows浏览器中看到nginx的运行结果,可以直接输入虚拟机IP地址,回车
但是要关掉linux的防火墙:
# service iptables stop
此时,nginx输出的是/usr/local/nginx/html/index.html文件到浏览器
3 停止nginx
方式1,快速停止:
cd /usr/local/nginx/sbin
./nginx -s stop
此方式相当于先查出nginx进程id再使用kill命令强制杀掉进程。
类似这样:
# ps aux | grep nginx
# kill -9 nginx的进程号
方式2,完整停止(建议使用):
cd /usr/local/nginx/sbin
./nginx -s quit
此方式停止步骤是待nginx进程处理任务完毕进行停止。
4 重启nginx
方式1,先停止再启动(建议使用):
对nginx进行重启相当于先停止nginx再启动nginx,即先执行停止命令再执行启动命令。
如下:
./nginx -s quit
./nginx
方式2,重新加载配置文件:
当nginx的配置文件nginx.conf修改后,要想让配置生效需要重启nginx,使用-s reload不用先停止nginx再启动nginx即可将配置信息在nginx中生效,如下:
./nginx -s reload
5 测试
nginx安装成功,启动nginx,即可访问虚拟机上的nginx:
到这说明nginx上安装成功。
修改nginx的默认路径
cd /usr/local/nginx/conf
vi nginx.conf
添加权限:
需要nginx重新加载配置文件:
[root@bogon sbin]# ./nginx -s reload
6 开机自启动nginx
6.1 编写shell脚本
这里使用的是编写shell脚本的方式来处理
vi /etc/init.d/nginx (输入下面的代码)
#!/bin/bash
# nginx Startup script for the Nginx HTTP Server
# it is v.0.0.2 version.
# chkconfig: - 85 15
# description: Nginx is a high-performance web and proxy server.
# It has a lot of features, but it's not for everyone.
# processname: nginx
# pidfile: /var/run/nginx.pid
# config: /usr/local/nginx/conf/nginx.conf
nginxd=/usr/local/nginx/sbin/nginx
nginx_config=/usr/local/nginx/conf/nginx.conf
nginx_pid=/var/run/nginx.pid
RETVAL=0
prog="nginx"
# Source function library.
. /etc/rc.d/init.d/functions
# Source networking configuration.
. /etc/sysconfig/network
# Check that networking is up.
[ ${NETWORKING} = "no" ] && exit 0
[ -x $nginxd ] || exit 0
# Start nginx daemons functions.
start() {
if [ -e $nginx_pid ];then
echo "nginx already running...."
exit 1
fi
echo -n $"Starting $prog: "
daemon $nginxd -c ${nginx_config}
RETVAL=$?
echo
[ $RETVAL = 0 ] && touch /var/lock/subsys/nginx
return $RETVAL
}
# Stop nginx daemons functions.
stop() {
echo -n $"Stopping $prog: "
killproc $nginxd
RETVAL=$?
echo
[ $RETVAL = 0 ] && rm -f /var/lock/subsys/nginx /var/run/nginx.pid
}
# reload nginx service functions.
reload() {
echo -n $"Reloading $prog: "
#kill -HUP `cat ${nginx_pid}`
killproc $nginxd -HUP
RETVAL=$?
echo
}
# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
reload)
reload
;;
restart)
stop
start
;;
status)
status $prog
RETVAL=$?
;;
*)
echo $"Usage: $prog {start|stop|restart|reload|status|help}"
exit 1
esac
exit $RETVAL
:wq 保存并退出
6.2 设置文件的访问权限
chmod a+x /etc/init.d/nginx (a+x ==> all user can execute 所有用户可执行)
这样在控制台就很容易的操作nginx了:查看Nginx当前状态、启动Nginx、停止Nginx、重启Nginx…
如果修改了nginx的配置文件nginx.conf,也可以使用上面的命令重新加载新的配置文件并运行,可以将此命令加入到rc.local文件中,这样开机的时候nginx就默认启动了
6.3 加入到rc.local文件中
vi /etc/rc.local
加入一行 /etc/init.d/nginx start 保存并退出,下次重启会生效。
Linux安装ftp组件
1 安装vsftpd组件
安装完后,有/etc/vsftpd/vsftpd.conf 文件,是vsftp的配置文件。
[root@bogon ~]# yum -y install vsftpd
-y, --assumeyes answer yes for all questions
[root@node0 ~]# yum install vsftpd
Loaded plugins: fastestmirror
Setting up Install Process
Determining fastest mirrors
* base: ftp.sjtu.edu.cn
* extras: mirrors.sina.cn
* updates: mirrors.neusoft.edu.cn
base | 3.7 kB 00:00
extras | 3.4 kB 00:00
extras/primary_db | 37 kB 00:00
updates | 3.4 kB 00:00
updates/primary_db | 1.4 MB 00:28
Resolving Dependencies
--> Running transaction check
---> Package vsftpd.x86_64 0:2.2.2-21.el6 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
=========================================================================================================================
Package Arch Version Repository Size
=========================================================================================================================
Installing:
vsftpd x86_64 2.2.2-21.el6 base 155 k
Transaction Summary
=========================================================================================================================
Install 1 Package(s)
Total download size: 155 k
Installed size: 340 k
Is this ok [y/N]:
2 添加一个ftp用户
此用户就是用来登录ftp服务器用的。
[root@bogon ~]# useradd ftpuser
这样一个用户建完,可以用这个登录,记得用普通登录不要用匿名了。登录后默认的路径为 /home/ftpuser.
3 给ftp用户添加密码。
[root@bogon ~]# passwd ftpuser
输入两次密码后修改密码。
4 防火墙开启21端口
因为ftp默认的端口为21,而centos默认是没有开启的,所以要修改iptables文件
[root@bogon ~]# vim /etc/sysconfig/iptables
在行上面有22 -j ACCEPT 下面另起一行输入跟那行差不多的,只是把22换成21,然后:wq保存。
还要运行下,重启iptables
[root@bogon ~]# service iptables restart
或者直接关闭防火墙:service iptables stop
查看防火墙状态:service iptables status
启动防火墙:service iptables start 重启防火墙:service iptables restart
FTP启动的命令:
[root@node0 ~]# cd /etc/init.d/
[root@node0 init.d]# ls
auditd functions iptables killall mdmonitor netfs rdisc sandbox sshd
blk-availability halt iscsi lvm2-lvmetad multipathd network restorecond saslauthd udev-post
crond ip6tables iscsid lvm2-monitor netconsole postfix rsyslog single vsftpd
[root@node0 init.d]# ./vsftpd start
Starting vsftpd for vsftpd: [ OK ]
[root@node0 init.d]#
方式二:
[root@node0 ~]# service vsftpd start
Starting vsftpd for vsftpd: [ OK ]
[root@node0 ~]#
关闭vsftpd:
[root@node0 ~]# service vsftpd stop
Shutting down vsftpd: [ OK ]
[root@node0 ~]#
重启vsftpd:
[root@node0 ~]# service vsftpd restart
Shutting down vsftpd: [ OK ]
Starting vsftpd for vsftpd: [ OK ]
[root@node0 ~]#
在xshell中连接ftp
[c:\~]$ ftp ftpuser@192.168.75.129
Connecting to 192.168.75.129:21...
Connection established.
To escape to local shell, press 'Ctrl+Alt+]'.
220 (vsFTPd 2.2.2)
Name (192.168.75.129:Administrator): ftpuser
331 Please specify the password.
Password:
500 OOPS: cannot change directory:/home/ftpuser
ftp> 500 OOPS: priv_sock_get_cmd
ftp>
Connection closed by foreign host.
Disconnected from remote host(192.168.75.129:21) at 13:36:30.
Type `help' to learn how to use Xshell prompt.
[c:\~]$
连接不上,被断掉了
5 修改selinux
外网是可以访问上去了,可是发现没法返回目录(使用ftp的主动模式,被动模式还是无法访问),也上传不了,因为selinux作怪了。
修改selinux:
执行以下命令查看状态:
[root@bogon ~]# getsebool -a | grep ftp
allow_ftpd_anon_write --> off
allow_ftpd_full_access --> off
allow_ftpd_use_cifs --> off
allow_ftpd_use_nfs --> off
ftp_home_dir --> off
ftpd_connect_db --> off
ftpd_use_passive_mode --> off
httpd_enable_ftp_server --> off
tftp_anon_write --> off
[root@bogon ~]#
执行上面命令,再返回的结果看到两行都是off,代表,没有开启外网的访问
[root@bogon ~]# setsebool -P allow_ftpd_full_access on
[root@bogon ~]# setsebool -P ftp_home_dir on
这样应该没问题了(如果,还是不行,看看是不是用了ftp客户端工具用了passive模式访问了,如提示Entering Passive mode,就代表是passive模式,默认是不行的,因为ftp passive模式被iptables挡住了,下面会讲怎么开启,如果懒得开的话,就看看你客户端ftp是否有port模式的选项,或者把passive模式的选项去掉。如果客户端还是不行,看看客户端上的主机的电脑是否开了防火墙,关吧)
FileZilla的主动、被动模式修改:
菜单:编辑→设置
6 关闭匿名访问
修改/etc/vsftpd/vsftpd.conf文件:
重启ftp服务:
[root@bogon ~]# service vsftpd restart
7 开启被动模式
默认是开启的,但是要指定一个端口范围,打开vsftpd.conf文件,在后面加上
pasv_min_port=30000
pasv_max_port=30999
表示端口范围为30000~30999,这个可以随意改。改完重启一下vsftpd
由于指定这段端口范围,iptables也要相应的开启这个范围,所以像上面那样打开iptables文件。
也是在21上下面另起一行,更那行差不多,只是把21 改为30000:30999,然后:wq保存,重启下iptables。这样就搞定了。
8 设置开机启动vsftpd ftp服务
[root@bogon ~]# chkconfig vsftpd on
使用redis
redis单机版安装:
第一步需要在linux系统中安装gcc
命令:yum install -y gcc-c++
第二步 需要将下载好的redis压缩包添加到linux服务器中
第三步 解压压缩包
命令:tar -zxvf redis......
第四步 编译redis
命令:进入redis的解压完毕的根目录下 执行命令:make
第五步 安装redis
命令:进入redis的解压完毕的根目录下,执行命令: make install PREFIX=/usr/local/redis
第六步:启动redis
1,前端启动
在bin目录下执行命令: ./redis-server (ctrl+c)退出redis
2.后端启动
(1)先将redis解压目录下的redis.conf文件拷贝到 安装好的redis的bin目录下
命令:cp redis.conf /usr/local/redis/bin
(2)修改拷贝过来的redis.conf配置文件
命令:vim redis.conf
将daemonize no 改为 yes
輸入以下命令保存所有修改︰
<ESC> :wq <回車>
(3)启动redis
在bin目录下执行命令:./redis-server redis.conf
(4)查看redis启动是否成功
输入命令:ps aux|grep redis
指定IP地址和端口号的关闭redis服务器命令
./redis-cli -h 192.168.75.133 -p 1234 shutdown
./redis-cli空格-h 空格192.168.75.133(IP地址)空格 -p 空格1234(端口号)空格 shutdown
(5) 关闭redis的命令
./redis-cli shutdown
第七步:测试redis
cd /usr/local/redis/bin/
在bin目录下启动redis自带的客户端
./redis-cli
常见redis命令:
ping--->pong
set
get
Redis常用命令
ping 测试redis是否链接 如果已链接返回 PONG
echo 测试redis是否链接 如果已链接返回 echo命令后给定的值
keys 返回所有的key可以加*通配 keys *
exists 判断string类型一个key是否存在 如果存在返回1 否则返回0
quit 退出连接
DEL key删除键
TTL key
Type key 查看数据类型
INCR key 让数字一次加1
INCRBY key 5;加5
append key vvvvv 追加字符串
存储hash值
存值
hmset user1 userId 1 username zhangsan password 123456 desc "one good man"
判断是否存在
hexists user1 desc
Redis集群:
1.redis集群时 没有主副之分,连接任何一个节点都可以
为了避免出现单点故障 所以我们一般都采用主背模式
最简单的集群三对主背,6个虚拟机
集群步骤:
redis集群时需要使用一个ruby的脚本来完成集群。
第一步 安装ruby环境
命令: yum install ruby
第二步 安装ruby的包管理器
命令:yum install rubygems
安装jdk
将jdk 安装包拷贝到服务器上
对安装包解压
tar -zxvf jdk-7u51-linux-x64.gz
将jdk文件移动到/usr/local/jdk7
mv jdk1.7.0_51/ /usr/local/jdk7
配置环境:
vi /etc/profile (对所有用户起作用的全局配置文件)
也可以更改家目录下的隐藏文件.bash_profile,此文件只对当前用户生效
在文件最后追加内容
export JAVA_HOME=/usr/local/jdk7
export PATH=.:$JAVA_HOME/bin:$PATH
export CLASSPATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
让/etc/profile文件的配置立刻生效的命令:
方法一:.空格/etc/profile . /etc/profile
方法二:source空格/etc/profile
配置tomcat
将tomcat安装包拷贝到服务器上
对安装包解压
tar -zxvf apache-tomcat-7.0.47.tar.gz
将tomcat文件移动到/usr/local/tomcat
mv apache-tomcat-7.0.47 /usr/local/tomcat
关闭防火墙
service iptables stop
进入tomcat目录
cd tomcat/bin
启动tomcat
./startup.sh
在windows中浏览器访问 192.168.10.102:8080看到tomcat首页
配置solr
把solr的压缩包上传到服务器。并解压。
tar -zxf solr-4.10.3.tgz.tgz
cd solr-4.10.3/ example/ webapps/
/root/myapp/solr-4.10.3/example/webapps/solr.war包部署到tomcat的webapps下。
cp solr.war /usr/local/tomcat/webapps/
将/root/myapps/solr-4.10.3/example/lib/ext/中所有的jar包拷贝到solr的lib目录下
cp /root/myapps/solr-4.10.3/example/lib/ext/* solr/WEB-INF/lib/
mv tomcat/ solr/
- Linux那点事
- Linux那点事
- Linux rm 那点事
- linux 多线程那点事
- 读linux usb那点事记录
- Linux下线程编程那点事
- Linux的man那点事
- linux管道的那点事
- linux管道的那点事
- 转载:linux管道的那点事
- linux管道的那点事
- *20161106*关于Linux的那点事
- linux管道的那点事
- linux管道的那点事
- 面试那点事
- 公司那点事
- 编程那点事!!
- 公务员那点事
- Java游戏服务器成长之路——感悟篇
- woods of Vietnam
- 堆排序详解
- Android Studio导入Github项目时Plugin错误的解决办法
- android 中利用AChartEngine动态更新折线实现
- Linux那点事
- 基础题1
- 期中考试-B
- 正则表达式30分钟入门教程
- 菜鸟初学c++,一些零散小知识点
- 多个客户机之间配置ssh免秘钥登录
- 20 个前端开发 Bootstrap 后台管理模板
- 开源组织管理模式演变
- 输出给定数组中每种元素出现的次数