Linux实用工具

Wesley13
• 阅读 520

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 在文件的最后面加上以下配置

Linux实用工具

[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                              #目录所属用户组

Linux实用工具

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

Linux实用工具

[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

Linux实用工具

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下的文件。

Linux实用工具

个人理解原理

windows下访问用的其实是Samba的账号,然后windows与Samba交互,本质上对文件的操作,其实还是Samba与linux文件交互的系统用户。所以为了方便,我将远程访问用户和系统用户设置成一样的。

Linux实用工具

  1. Ubuntu环境下SSH的安装及使用

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端也可以用管理工具访问了。

Linux实用工具

3.   Linux下安装resin web服务器(涉及gcc、jdk环境部署)

由于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的环境变量配置:

Linux实用工具

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

Linux实用工具

如果并不想与别的用户共用同一个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)就可以访问了。

Linux实用工具

网站默认放置在resin/webapps/下。当然也可以在此目录下创建软链映射到其它目录。

  Linux实用工具

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的环境变量配置:

Linux实用工具

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

Linux实用工具

如果并不想与别的用户共用同一个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)就可以访问了。

Linux实用工具

网站默认放置在resin/webapps/下。当然也可以在此目录下创建软链映射到其它目录。

  Linux实用工具

点赞
收藏
评论区
推荐文章
blmius blmius
2年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Jacquelyn38 Jacquelyn38
2年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Wesley13 Wesley13
2年前
Java获得今日零时零分零秒的时间(Date型)
publicDatezeroTime()throwsParseException{    DatetimenewDate();    SimpleDateFormatsimpnewSimpleDateFormat("yyyyMMdd00:00:00");    SimpleDateFormatsimp2newS
Stella981 Stella981
2年前
KVM调整cpu和内存
一.修改kvm虚拟机的配置1、virsheditcentos7找到“memory”和“vcpu”标签,将<namecentos7</name<uuid2220a6d1a36a4fbb8523e078b3dfe795</uuid
Easter79 Easter79
2年前
Twitter的分布式自增ID算法snowflake (Java版)
概述分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36位的UUID,但是UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的。有些时候我们希望能使用一种简单一些的ID,并且希望ID能够按照时间有序生成。而twitter的snowflake解决了这种需求,最初Twitter把存储系统从MySQL迁移
Wesley13 Wesley13
2年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
2年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
2年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
2年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
3个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这