1. Windows下同步Linux文件(Linux安装Samba和配置)

场景需求:

安装了Ubuntu在虚拟机上,但是代码编辑或者其它更多的操作的时候,还是习惯在windows下进行。如果windows下编辑完再上传到服务器,再编译执行,就太繁琐了。一次两次还好说,这编译级别上千次的,每次也需要上传的话,无疑是个人间悲剧。但是有了Samba,犹如雪中送炭啊。
 
安装
Ubuntu下安装比较简单,执行
 # install samba samba-common
即可。当然也可以直接去官网(https://www.samba.org/)下载安装。
 
配置
1. 新建共享的目录:
# mkdir /home/用户名/share
# chmod 777 /home/用户名/share
 
2. 修改配置smb.conf
修改前最好先备份smb.conf文件。
# cp /etc/samba/smb.conf /etc/samba/smb.conf_bak
# vim /etc/samba/smb.conf
    2.1 取消 # security = user 的注释,并在后面一行加上 username map = /etc/samba/smbusers
security = user
username map = /etc/samba/smbusers
    2.2 在文件的最后面加上以下配置   
[Share]
comment = Shared Folder with username and password
path = /home/用户名/share
available = yes
browseable = yes
public = yes
writable = yes
valid users = [访问用户名(系统的用户)]
create mask = 0700 #远程创建目录、文件默认权限
directory mask = 0700 #远程访问目录权限
force user = nobody #目录所属用户
force group = nogroup #目录所属用户组

我的习惯是指给相应的权限给相应的账号,譬如我本身用的是weiyg账号,我会如下配置,这样的话,windows下新建、修改、访问的权限,都会与我weiyg的权限保持一致。这样比较方便。当然,如果本身整个系统都是一个人维护,那就没啥所谓了。

[share]
path = /home/weiyg/share
available = yes
browseable = yes
public = yes
writable = yes
valid users = weiyg
create mask = 0764
directory mask =0777
force user =weiyg
force group = weiyg

2.3 修改[global]中的workgroup = WORKGROWP ,并添加编码的设置,如下:

workgroup = WORKGROUP
display charset = UTF-8
unix charset = UTF-8
dos charset = cp936
        上面编码设置是为了防止中文目录、文件名乱码的情况。
 
3. 添加访问用户(系统用户)
# useradd [用户名]
    对于我的设置来说,其实我是直接用我本身的用户权限访问的。系统本身就存在了weiyg用户了,这时候不需要执行这一步了。如果如上执行的话,过没有设置密码的话,这个用户就只能从远程访问,不能从本机登录。
 
4. 添加远程访问用户(samba的用户)
# smbpasswd -a [远程访问用户名]
    执行以上命令,并设置密码。该用户是windows远程访问的用户,并不是系统的用户。当然为了方便,我自己设置的用户名其实是跟我系统用户一样的。即
# smbpasswd -a weiyg
    如果要删除远程访问用户,执行如下命令。
# smbpasswd -x [远程访问用户名]
    新建一个/etc/samba/smbusers文件,并保存下面代码:
[访问用户名] = "network username"
    我是这么设置的 weiyg = "weiyg" (不知道对不对,反正最后可以访问)
 
启动
# /etc/init.d/sambd start
# /etc/init.d/sambd restart
 
windows远程访问
    在windows文件管理器上点击【映射网络驱动器】并输入ip地址和用户名密码,即可访问到linux下的文件。
    
 
个人理解原理
    windows下访问用的其实是Samba的账号,然后windows与Samba交互,本质上对文件的操作,其实还是Samba与linux文件交互的系统用户。所以为了方便,我将远程访问用户和系统用户设置成一样的。
 
SSH分为客户端和服务端。
服务端是一个守护进程,一般是sshd进程,在后台运行并响应来自客户端的请求。提供了对远程请求的处理,一般包括公共密钥认证、密钥交换、对称密钥加密和非安全连接。
客户端一般是ssh进程,另外还包含scp、slogin、sftp等其他进程。
 
工作机制:
1. 客户端发送一个连接请求到远程服务端
2. 服务端检查申请的包和IP地址,再发生密钥给SSH客户端;
3. 客户端再将密钥发回服务端,自此建立连接。
 
//------------------正文-------------------
一、客户端

1. 安装客户端(客户端不是必须的)

# apt-get install ssh
如果安装失败,则使用下面命令进行安装
# apt-get install openssh-client
 
2. SSH登录(客户端)
$ ssh 192.168.159.128
$ ssh -l weiyg 192.168.159.128
$ ssh weiyg@192.168.159.128
 
二、服务端
1. 安装服务器
# apt-get install openssh-server
 
2. 启动服务器
# /etc/init.d/ssh stop             
    #停止

# /etc/init.d/ssh start             
    #启动

# /etc/init.d/ssh restart              #重启
 
3. SSH配置
修改配置文件/etc/ssh/sshd_config,并重启服务
# /etc/init.d/ssh restart
 
ssh默认端口是22,需要的话,自行修改
Port 20
ssh默认配置是允许root登录的,可以修改配置表禁止其登录
PermitRootLogin no

3.Linux下安装mysql

我是使用免安装的包mysql-5.5.28-linux2.6-x86_64.tar.gz(在http://dev.mysql.com/downloads/可以下载到最新的包)的。直接解压,然后配置,初始化数据库,启动即可。
安装步骤有:
  1. 解压和建立软链;
  2. 配置文件和配置参数;
  3. 初始化数据库;
  4. 启动和关闭;
  5. 建立数据库用户和授权。
 
1. 解压和建立软链:
#tar xzvf mysql-5.5.28-linux2.6-x86_64.tar.gz        #在/usr/local目录下
#ln -s mysql-5.5.28-linux2.6-x86_64 mysql #创建软链
 
2. 配置文件和配置参数:
mysql会将默认的配置文件保存在mysql/support-files/下。我们把mysql/support-files/my-medium.cnf 复制一份到/etc下然后进行配置。
#cp usr/local/mysql/support-files/my-medium.cnf etc/my.cnf
在my.cnf文件添加相关配置,下面红色部分是我修改和添加的内容,相关目录根据自己的需要配置。

[client]

default-character-set = utf8

# password      = your_passsword

port            = 3306

socket          = /tmp/mysql_3306.sock



# The MySQL server

[mysqld]

character-set-server = utf8

# user            = mysql

port            = 3306

socket          = /tmp/mysql_3306.sock

skip-external-locking

basedir = /usr/local/mysql

datadir = /usr/local/mysql/data

log-error = /usr/local/mysql/log/mysql_error.log

pid-file = /tmp/mysql.pid


key_buffer_size = 16M

max_allowed_packet = 1M

table_open_cache = 64

 
3. 初始化数据库:
mysql自带了mysql和test两个数据库。而mysql-5.5.28-linux2.6-x86_64.tar.gz包是没有初始化的。所以我们先要初始化。在mysql/bin或者mysql/scripts下有个 mysql_install_db 可执行文件,执行即可(要保证其无报错)。
#./mysql_install_db  --verbose --user=root --defaults-file=/etc/my.cnf --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql --tmpdir=/tmp
 
4. 启动和关闭:
执行bin/mysqld_safe 文件可以启动mysql。
#./mysqld_safe --defaults-file=/etc/my.cnf --socket=/tmp/mysql_3306.sock --user=root &
之前我在没有初始化的时候执行启动,遇到了报错,报错内容会在my.cnf的log-error配置路径下。上面最后的“&”表示后台执行的意思。
 
关闭mysql可以直接kill掉进程,也可以使用bin/mysqladmin可执行文件操作。
#./mysqladmin -u root -p [密码] shutdown
 
5. 建立数据库用户和授权:
在bin/里面执行mysql文件,连接数据库。
#./mysql -uroot
连接成功之后可以创建一个数据库用户,供远程访问,你总不能用root去访问数据库吧。另外还要设置其权限,譬如建表、建库、增删查改。grant可以修改用户的权限和密码。
 
建立用户:
mysql>CREATE USER [用户名] IDENTIFIED BY '[密码]';
mysql>CREATE USER [用户名]@[固定登录地址(譬如localhost)] IDENTIFIED BY '[密码]'
授权:
mysql>GRANT select, insert, update, delete, create ON *.* TO [用户名];
mysql>GRANT select, insert, update, delete, create ON *.* TO [用户名]@[固定登录地址(譬如localhost)];
修改密码:
mysql>GRANT ALL PRIVILEGES ON PUREFTPD.* TO [用户名] IDENTIFIED BY '[新密码]';
 
6. 测试:
这样在PC端也可以用管理工具访问了。
由于Ubuntu自带是没有jdk和gcc编译器的,而安装resin需要C编译器和jdk的支持,而且resin本身是java写的。另外我本身的网站是zip打包的,所以linux也要安装了gcc、jdk、zip、unzip方便安装和部署网站。
 
//-----------环境准备--------------
 
安装gcc
$ sudo apt-get update            #更新库
$ sudo apt-get install gcc #安装gcc
$ gcc -v
$ make -v
 
安装zip
$ sudo apt-get install zip unzip
 

安装Java

安装:

# wget http://download.oracle.com/otn-pub/java/jdk/8u5-b13/jdk-8u5-linux-x64.tar.gz

使用上面那条链接是下载到的是一个不完整的包,说明还是要通过一个验证才行。还是直接在浏览器上面进入http://download.oracle.com/先将包下载下来吧。再上传到linux上面。

这个包jdk-8u5-linux-x64.tar.gz是免安装的,解压完就可以用了。

# mv jdk-8u5-linux-x64.tar.gz /usr/local/
# tar xzvf jdk-8u5-linux-x64.tar.gz

环境变量配置:

编辑/etc/profile 配置文件,在其最后面增加java的环境变量配置:

JAVA_HOME=/usr/local/jdk1.8.0_05
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export JAVA_HOME
export PATH
export CLASSPATH

如果并不想与别的用户共用同一个java环境,则将上面内容配置在用户目录下的~/.profile 文件里面就可以了。

测试:

任意目录,任意用户下执行java -version,如果打印出版本号说明安装成功了。

 
//-----------resin安装和配置--------------
 
安装resin服务器
现在官网下载安装包。解压编译安装就可以了,结果发现没有那么简单。问题在于,Ubuntu服务器没有安装gcc,无法编译的。所以在安装resin之前要先安装了gcc。安装了gcc之后就可以很顺利如下执行了。(resin分为免费版和pro版,这里使用的是免费版)
$ wget http://www.caucho.com/download/resin-4.0.39.tar.gz
$ tar xzvf resin-4.0.39.tar.gz
$ cd resin-4.0.39.tar.gz
$ ./configure --prefix=[需要安装的路径]
$ make & make install
 
resin配置和启动
在resin/conf有resin.properties或者resin.conf(旧版本的文件名),这是resin的配置文件。监听端口、watchdog端口、集群/实例端口、jvm的内存配置,都在里面配置。
如果端口无冲突的话,默认配置,直接启动即可。
在resin/bin下执行
$ ./resin.sh start        #启动    #旧版本文件名为httpd.sh
$ ./resin.sh stop #停止
$ ./resin.sh restart #重启
 
 
默认端口是8080,没有修改的话,直接访问http://ip:port(http://115.28.82.146:8080)就可以访问了。
 
网站默认放置在resin/webapps/下。当然也可以在此目录下创建软链映射到其它目录。

 
 

4. 由于Ubuntu自带是没有jdk和gcc编译器的,而安装resin需要C编译器和jdk的支持,而且resin本身是java写的。另外我本身的网站是zip打包的,所以linux也要安装了gcc、jdk、zip、unzip方便安装和部署网站。

 
//-----------环境准备--------------
 
安装gcc
$ sudo apt-get update            #更新库
$ sudo apt-get install gcc #安装gcc
$ gcc -v
$ make -v
 
安装zip
$ sudo apt-get install zip unzip
 

安装Java

安装:

# wget http://download.oracle.com/otn-pub/java/jdk/8u5-b13/jdk-8u5-linux-x64.tar.gz

使用上面那条链接是下载到的是一个不完整的包,说明还是要通过一个验证才行。还是直接在浏览器上面进入http://download.oracle.com/先将包下载下来吧。再上传到linux上面。

这个包jdk-8u5-linux-x64.tar.gz是免安装的,解压完就可以用了。

# mv jdk-8u5-linux-x64.tar.gz /usr/local/
# tar xzvf jdk-8u5-linux-x64.tar.gz

环境变量配置:

编辑/etc/profile 配置文件,在其最后面增加java的环境变量配置:

JAVA_HOME=/usr/local/jdk1.8.0_05
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export JAVA_HOME
export PATH
export CLASSPATH

如果并不想与别的用户共用同一个java环境,则将上面内容配置在用户目录下的~/.profile 文件里面就可以了。

测试:

任意目录,任意用户下执行java -version,如果打印出版本号说明安装成功了。

 
//-----------resin安装和配置--------------
 
安装resin服务器
现在官网下载安装包。解压编译安装就可以了,结果发现没有那么简单。问题在于,Ubuntu服务器没有安装gcc,无法编译的。所以在安装resin之前要先安装了gcc。安装了gcc之后就可以很顺利如下执行了。(resin分为免费版和pro版,这里使用的是免费版)
$ wget http://www.caucho.com/download/resin-4.0.39.tar.gz
$ tar xzvf resin-4.0.39.tar.gz
$ cd resin-4.0.39.tar.gz
$ ./configure --prefix=[需要安装的路径]
$ make & make install
 
resin配置和启动
在resin/conf有resin.properties或者resin.conf(旧版本的文件名),这是resin的配置文件。监听端口、watchdog端口、集群/实例端口、jvm的内存配置,都在里面配置。
如果端口无冲突的话,默认配置,直接启动即可。
在resin/bin下执行
$ ./resin.sh start        #启动    #旧版本文件名为httpd.sh
$ ./resin.sh stop #停止
$ ./resin.sh restart #重启
 
 
默认端口是8080,没有修改的话,直接访问http://ip:port(http://115.28.82.146:8080)就可以访问了。
 
网站默认放置在resin/webapps/下。当然也可以在此目录下创建软链映射到其它目录。

 
 

Linux学习总结(3)——Linux实用工具的更多相关文章

  1. linux学习书籍推荐linux学习书籍推荐

    引用地址:http://www.cnblogs.com/notepi/archive/2013/06/15/3137103.html Linux 学习书目推荐 Linux基础 1.<Linux与 ...

  2. Linux学习心得之 Linux下命令行Android开发环境的搭建

    作者:枫雪庭 出处:http://www.cnblogs.com/FengXueTing-px/ 欢迎转载 Linux学习心得之 Linux下命令行Android开发环境的搭建 1. 前言2. Jav ...

  3. Linux学习心得之 Linux下ant安装与使用

    作者:枫雪庭 出处:http://www.cnblogs.com/FengXueTing-px/ 欢迎转载 Linux学习心得之 Linux下ant安装与使用 1. 前言2. ant安装3. 简单的a ...

  4. Linux学习之二-Linux系统的目录结构

    Linux学习之二-Linux系统的目录结构 在Linux的根目录下,有很多的目录,但是需要记住,对于Linux而言,一切皆文件.因此此处的目录也是文件.用ls / 命令就能看到根目录下的各类不同的目 ...

  5. linux学习笔记2 - linux常用命令

    转载请标注原链接:http://www.cnblogs.com/xczyd/p/5543731.html 第一篇博客:linux学习笔记1-ubuntu的安装与基本设置 之中,已经介绍了如何安装lin ...

  6. Linux学习笔记之Linux相关知识

    [想成为某一方面的大神,没有捷径可走,只能不断的记录.练习.总结.coding……] notes:主要从网上摘录了一些关于Linux的历史以及一些相关内容,以便对Linux系统有一定的了解.这不但可以 ...

  7. Linux学习笔记之四————Linux常用命令之文件管理

    Linux命令——文件管理相关命令 <1>查看文件信息:ls ls是英文单词list的简写,其功能为列出目录的内容,是用户最常用的命令之一,它类似于DOS下的dir命令. Linux文件或 ...

  8. Linux学习笔记之Linux启动引导过程

    早期时,启动一台计算机意味着要给计算机喂一条包含引导程序的纸带,或者手工使用前端面板地址/数据/控制开关来加载引导程序.尽管目前的计算机已经装备了很多工具来简化引导过程,但是这一切并没有对整个过程进行 ...

  9. Linux学习笔记之Linux第一课-基本介绍

    Linux简介 Linux内核最初只是由芬兰人李纳斯·托瓦兹(Linus Torvalds)在赫尔辛基大学上学时出于个人爱好而编写的. Linux是一套免费使用和自由传播的类Unix操作系统,是一个基 ...

  10. Linux性能优化 第八章 实用工具:性能工具助手

    8.1性能工具助手 Linux有丰富的工具,这些工具组合来使用会更加强大.性能工具也一样,单独使用虽然也没有问题,但是和其他的工具组合起来就能显著提高有效性和易用性. 8.1.1 自动执行和记录命令 ...

随机推荐

  1. geckofx

    geckofx是skybound工作室开发的一个开源的用于方便将gecko引擎(最主要的浏览器是firefox)链接到·net 窗体应用的一个组建.   外文名 geckofx 开发商 skyboun ...

  2. Java异常&&RuntimeException异常

    Java异常可分为3种: (1)编译时异常:Java.lang.Exception (2)运行期异常:Java.lang.RuntimeException (3)错误:Java.lang.Error ...

  3. 使iframe随内容(target到iframe的内容)改变而自适应高度,完美解决各种获取第一个demo高度后第二个高度不变情况

    转自:http://caiceclb.iteye.com/blog/281102 很高兴,终于使用jquery实现了点击外部链接,更改iframe内容时,iframe的高度自适应问题. 失败的测试就不 ...

  4. E20170621-hm

    detroit  底特律 giant   n. 巨人,大汉; 巨兽,巨物; 卓越人物 woo    vt. 求爱,求婚; 争取…的支持; convince   vt. 使相信,说服,使承认; 使明白; ...

  5. php安全过滤类

    /*ansic码-Url码表: http://www.w3school.com.cn/tags/html_ref_urlencode.html ---------------------------- ...

  6. [Swift通天遁地]八、媒体与动画-(7)实现多个动画的顺序播放效果

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...

  7. AirtestIDE详解(跨平台的UI自动化编辑器)

    Airtest 是网易出品的一款基于图像识别和poco控件识别的一款UI自动化测试工具. AirtestIDE 是一个跨平台.多端(Windows.web.android.ios.游戏)的UI自动化测 ...

  8. Akka源码分析-Remote-ActorSystem

    前面的文章都是基于local模式分析的,现在我们简要分析一下在remote模式下,ActorSystem的创建过程. final val ProviderClass: String = setup.g ...

  9. knockjs

    用VS2012建立Web站点有个新惊喜,默认加了KnockoutJS这个Javascript的MVVM模式的实现库,方便Web前端的开发 官方站点 √主页:  http://www.knockoutj ...

  10. cocos creator学习

    2019-05-30 22:23:27 按照前一节我发的教程做,大概了解了Cocos creator的基本布局 但是你发现你不好写代码(感觉视频没有提) 需要下载VS code软件,在其上进行编辑,教 ...