如何在win10系统上安装linux子系统

对于软件开发人员来说,linux基本上是一个绕不过去的槛。 因为工作经常要用到linux,电脑用纯linux还是windows + 虚拟机装linux,我一直纠结。

如果装个纯linux,则一些windows软件没法用,比如photoshop,如果用windows然后装个虚拟机,在虚拟机上安装linux,又感觉麻烦而且占用电脑资源。现在windows10可以安装linux子系统啦,这个问题不用纠结了。
下面是我在windows10上安装linux子系统的步骤,供参考。
先检查windows10版本。通过在开始菜单栏搜索 “About”,检查 Windows 10 的版本。为了使用linux子系统,您的版本应当为 1709 或者最新版。如果版本低,就需要升级一下了。

查看电脑信息

如何在win10系统上安装linux子系统如何在win10系统上安装linux子系统

接下来进入控制面板 -> 程序和功能 -> 启用或关闭windows功能:

如何在win10系统上安装linux子系统如何在win10系统上安装linux子系统
勾选后确定,系统将会询问是否重启。是的,重启设备吧。

重启电脑后,打开Microsoft store

如何在win10系统上安装linux子系统如何在win10系统上安装linux子系统

搜索linux

如何在win10系统上安装linux子系统如何在win10系统上安装linux子系统

搜索出来几个linux版本,我选择的是Ubuntu 18.04 LTS

如何在win10系统上安装linux子系统如何在win10系统上安装linux子系统

点击“安装”

如何在win10系统上安装linux子系统如何在win10系统上安装linux子系统
安装完成后,我把它 固定到“ 开始 ”菜单

启动linux

如何在win10系统上安装linux子系统如何在win10系统上安装linux子系统
一会儿,就开始要求设置linux系统用户名和密码,按照提示设置即可。

设置完用户名和密码,linux子系统就安装完成了。这时,你的Linux子系统安装路径可能会是在这样的目录下:C:\Users\\username\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc\LocalState\rootfs

安装到此就结束了,下面是一些设置。

在Ubuntu下我们可以通过 apt-get 命令 很方便的安装 / 卸载软件,由于默认的软件包仓库是位于国外的,安装软件的时候就可能遇到各种网络问题或者下载到的一些资源不完整,因此就需要切换数据源为国内的镜像站点(例如:阿里云)来改善。
编辑数据源配置文件 sudo vi /etc/apt/sources.list
把原来的内容注释掉,然后在最后面插入:

deb http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiversedeb http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiversedeb-src http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse

接着按「ESC」退会命令行模式,输入命令行 wq!保存退出就好了。
接着输入命令sudo apt-get update更新系统就可以了。

Linux管理员不可不知十大PHP安全要点

PHP是使用最广泛的脚本编程语言之一。市场份额颇能说明其主导地位。PHP 7已推出,这个事实让这种编程语言对当前的开发人员来说更具吸引力。尽管出现了一些变化,但是许多开发人员对PHP的未来持怀疑态度。一个原因是PHP的安全。

PHP的安全是广大开发人员担心的主要问题。虽然PHP提供从里到外的可靠安全,但是需要由开发人员正确地落实这些安全机制。我们在本文中将为Linux管理员介绍几个PHP安全要点。这些要点将帮助你确保Web应用程序安全,并确保从长远来看正常运行。

在我们开始之前,有必要了解一下我们所要处理的系统。出于演示的需要,我们使用Fedora。然而,这些要点应该适用于Ubuntu版本或其他任何Linux发行版。查看你操作系统发行版的使用手册,即可了解更多信息。

不妨仔细看一下我们系统环境的几个关键文件。你的文件应该类似或对应于下列:

  • 默认的Web服务器:Apache
  • DocumentRoot:/var/www/html
  • PHP配置文件:/etc/php.ini
  • 扩展配置目录:/etc/php.d/
  • 安全文件:/etc/php.d/security.ini

这些技巧将保护你的网站,避免不同类型的常见攻击,比如SQL注入、XSS、跨站请求伪造攻击、eval()和文件上传等攻击。可在此(https://www.sitepoint.com/top-10-php-security-vulnerabilities/)查看常见攻击列表。

1. 删除不必要的模块

PHP随带内置的PHP模块。它们对许多任务来说很有用,但是不是每个项目都需要它们。只要输入下面这个命令,就可以查看可用的PHP模块:

# php - m

一旦你查看了列表,现在可以删除不必要的模块。减少模块的数量有助于提高你所处理的Web应用程序的性能和安全。

2. 限制PHP信息泄露

平台泄露关键信息司空见惯。比如说,PHP会泄露一些信息,比如版本以及它安装到服务器上的事实。这可以通过expose_php命令来实现。为了防止泄露,你需要在/etc/php.d/security.ini中将该命令设成off。

expose_php=Off

如果你需要了解版本及其状态,只要针对网站地址运行一个简单的Curl命令就可以获得该信息。

Curl - I http://www.livecoding.tv/index.php

之前的命令会返回下列信息:

HTTP/1.1 200 OK 
X-Powered-By: PHP/7.0.10  
Content-type: text/html; charset=UTF-8

3. 禁用远程代码执行

远程代码执行是PHP安全系统方面的常见安全漏洞之一。默认情况下,远程代码执行在你的系统上已被启用。“allow_url_fopen”命令允许请求(require)、包括(include)或可识别URL的fopen包装器等函数可以直接访问PHP文件。远程访问通过使用HTTP或FTP协议来实现,会导致系统无力防御代码注入安全漏洞。

为了确保你的系统安全可靠、远离远程代码执行,你可以将该命令设成“Off”,如下所示:

Allow_url_fopen=Off  
allow_url_include=Off

4. 将PHP错误记入日志

加强Web应用程序安全的另一个简单方法就是,不向访客显示错误。这将确保黑客根本无法危及网站的安全性。需要在/etc/php.d/security.ini文件里面进行编辑。

display_errors=Off

现在你可能会想:完成这一步后,“开发人员在没有错误信息的帮助下如何调试?”开发人员可以使用log_errors命令来用于调试。他们只需要在security.ini文件中将log_errors命令设成“On”。

log_errors=On  
error_log=/var/log/httpd/php_scripts_error.log

5. 合理控制资源

为了确保应用程序的安全,控制资源很重要。为了确保适当的执行和安全,你就要对PHP脚本执行予以限制。此外,还应该对花在解析请求数据上的时间予以限制。如果执行时间受到控制,脚本使用的内存等其他资源也应该会得到相应配置。所有这些度量指标可通过编辑security.ini文件来加以管理。

# set in seconds  
max_execution_time = 25  
max_input_time = 25  
memory_limit = 30M

6. 禁用危险的PHP函数

PHP随带用于开发的实用函数,但是也有可能被黑客用来闯入Web应用程序的大量函数。禁用这些函数可以提高总体安全性,并确保你没有受到危险的PHP函数的影响。

为此,你先要编辑php.ini文件。一旦进入该文件,找到disable_functions命令,禁用里面的危险函数。为此,你只要拷贝/粘贴下列代码。

disable_functions =exec,passthru,  
shell_exec,system,proc_open,popen,curl_exec,  
curl_multi_exec,parse_ini_file,show_source

你可以在此(https://www.eukhost.com/blog/webhosting/dangerous-php-functions-must-be-disabled/)进一步了解禁用危险的PHP函数。

7. 上传文件

如果你的应用程序不需要上传任何文件,禁用上传文件的功能有助于提高安全。想禁止用户上传文件,只需要编辑/etc/php.d/目录下的security.ini文件,将file_uploads命令设成OFF。

file_uploads=Off

8. 保持版本最新

开发人员在24/7不间断地工作,给你使用的技术打上补丁。PHP也是一样。由于它有一个开源社区,补丁和修正版定期发布。更新版还为首日漏洞及其他安全漏洞提供了安全补丁。如果你注重应用程序的安全性,就要始终确保你的PHP解决方案是最新版本。另外,给其他相关技术打上最新的补丁可以确保最大限度的安全。

9.控制文件系统访问

默认情况下,PHP可使用fopen()等函数来访问文件。open_basedir命令提供了访问。首先,始终要将open_basedir命令设成/var/www/html目录。将它设成其他任何目录会导致安全问题。

open_basedir="/var/www/html/"

10. 控制POST大小

我们的最后一个PHP安全要点是控制POST大小函数。HTTP POST函数使用客户端的浏览器,将数据发送到Web服务器。比如说,用户可能上传证书,然后发送到Web浏览器以便处理。一切都运行顺畅,直到有一天黑客企图发送庞大的文件来耗尽服务器资源。这很可能会导致服务器崩溃或响应缓慢。为了保护服务器远离这个漏洞,就需要设置POST大小。POST大小可以在/etc/php.d/security.ini文件里面加以设置。

post_max_size=1k

结束语

安全是广大Web开发人员和Linux管理员最关注的问题之一。如果采取了上述要点,你势必可以加强开发环境和PHP Web应用程序方面的安全。要是你认为我们遗漏了重要的内容,欢迎留言补充。

linux 将一个服务器上的文件或者文件夹复制到另一台服务器上

使用scp将一个Linux系统中的文件或文件夹复制到另一台Linux服务器上

复制文件或文件夹(目录)命令:
一、复制文件:
(1)将本地文件拷贝到远程
scp 文件名 用户名@计算机IP或者计算机名称:远程路径

本地192.168.1.8客户端

scp /root/install.* root@192.168.1.12:/usr/local/src

(2)从远程将文件拷回本地
scp 用户名@计算机IP或者计算机名称:文件名  本地路径

 

本地192.168.1.8客户端取远程服务器12、11上的文件

scp root@192.168.1.12:/usr/local/src/*.log /root/

二、复制文件夹(目录):

(1)将本地文件夹拷贝到远程
scp -r 目录名 用户名@计算机IP或者计算机名称:远程路径

scp -r /home/test1 zhidao@192.168.0.1:/home/test2
#test1为源目录,test2为目标目录,zhidao@192.168.0.1为远程服务器的用户名和ip地址。

(2)从远程将文件夹拷回本地
scp -r 用户名@计算机IP或者计算机名称:目录名 本地路径

scp  -r zhidao@192.168.0.1:/home/test2 /home/test1
#zhidao@192.168.0.1为远程服务器的用户名和ip地址,test1为源目录,test2为目标目录。

Linux下压缩某个文件夹命令

tar -zcvf /home/xahot.tar.gz /xahot
tar -zcvf 打包后生成的文件名全路径 要打包的目录
例子:把/xahot文件夹打包后生成一个/home/xahot.tar.gz的文件。
zip 压缩方法:
压缩当前的文件夹 zip -r ./xahot.zip ./* -r表示递归
zip [参数] [打包后的文件名] [打包的目录路径]
解压 unzip xahot.zip 不解释
linux zip命令的基本用法是:
linux zip命令参数列表:
-a 将文件转成ASCII模式
-F 尝试修复损坏的压缩文件
-h 显示帮助界面
-m 将文件压缩之后,删除源文件
-n 特定字符串 不压缩具有特定字尾字符串的文件
-o 将压缩文件内的所有文件的最新变动时间设为压缩时候的时间
-q 安静模式,在压缩的时候不显示指令的执行过程
-r 将指定的目录下的所有子目录以及文件一起处理
-S 包含系统文件和隐含文件(S是大写)
-t 日期 把压缩文件的最后修改日期设为指定的日期,日期格式为mmddyyyy
举例:
将/home/wwwroot/xahot/ 这个目录下所有文件和文件夹打包为当前目录下的xahot.zip
zip –q –r xahot.zip /home/wwwroot/xahot
上面的命令操作是将绝对地址的文件及文件夹进行压缩.以下给出压缩相对路径目录
比如目前在Bliux这个目录下,执行以下操作可以达到以上同样的效果.
zip –q –r xahot.zip xahot
比如现在我的xahot目录下,我操作的zip压缩命令是
zip –q –r xahot.zip *
以上是在安静模式下进行的,而且包含系统文件和隐含文件
//////////////////////////////////////////////////////////
unzip语 法:
unzip [-cflptuvz][-agCjLMnoqsVX][-P <密码>][.zip文件][文件][-d <目 录>][-x <文件>] 或 unzip [-Z]
补充说明:unzip为.zip压缩文件的解压缩程序。
unzip参 数:
-c 将解压缩的结果显示到屏幕上,并对字符做适当的转换。
-f 更新现有的文件。
-l 显示压缩文件内所包含的文件。
-p 与-c参数类似,会将解压缩的结果显示到屏幕上,但不会执行任何的转换。
-t 检查压缩文件是否正确。
-u 与-f参数类似,但是除了更新现有的文件外,也会将压缩文件中的其他文件解压缩到目录中。
-v 执行是时显示详细的信息。
-z 仅显示压缩文件的备注文字。
-a 对文本文件进行必要的字符转换。
-b 不要对文本文件进行字符转换。
-C 压缩文件中的文件名称区分大小写。
-j 不处理压缩文件中原有的目录路径。
-L 将压缩文件中的全部文件名改为小写。
-M 将输出结果送到more程序处理。
-n 解压缩时不要覆盖原有的文件。
-o 不必先询问用户,unzip执行后覆盖原有文件。
-P<密码> 使用zip的密码选项。
-q 执行时不显示任何信息。
-s 将文件名中的空白字符转换为底线字符。
-V 保留VMS的文件版本信息。
-X 解压缩时同时回存文件原来的UID/GID。
[.zip文件] 指定.zip压缩文件。
[文件] 指定要处理.zip压缩文件中的哪些文件。
-d<目录> 指定文件解压缩后所要存储的目录。
-x<文件> 指定不要处理.zip压缩文件中的哪些文件。
-Z unzip -Z等于执行zipinfo指令
举例:
将/home/wwwroot/xahot.zip解压到当前目录
unzip xahot.zip
如果出现这个提示:
-bash: zip: command not found    不能执行ZIP压缩,是因为没有安装ZIP,
运行下这条安装命令即可  yum install zip

===============================================================

 

# tar -cvf /usr/local/auto_bak/test.tar /usr/local/test 仅打包,不压缩
# tar -zcvf /usr/local/auto_bak/test.tar.gz /usr/local/test 打包后,以gzip压缩 在参数f后面的压缩文件名是自己取的,习惯上用tar来做,如果加z参数,则以tar.gz 或tgz来代表gzip压缩过的tar file文件
解压操作:
#tar -zxvf /usr/local/test.tar.gz
tar 解压缩命令详解
-c: 建立压缩档案

-x:解压
-t:查看内容
-r:向压缩归档文件末尾追加文件
-u:更新原压缩包中的文件

这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。下面的参数是根据需要在压缩或解压档案时可选的。

-z:有gzip属性的
-j:有bz2属性的
-Z:有compress属性的
-v:显示所有过程
-O:将文件解开到标准输出

下面的参数-f是必须的

-f: 使用档案名字,切记,这个参数是最后一个参数,后面只能接档案名。

# tar -cf all.tar *.jpg
这条命令是将所有.jpg的文件打成一个名为all.tar的包。-c是表示产生新的包,-f指定包的文件名。

# tar -rf all.tar *.gif
这条命令是将所有.gif的文件增加到all.tar的包里面去。-r是表示增加文件的意思。

# tar -uf all.tar logo.gif
这条命令是更新原来tar包all.tar中logo.gif文件,-u是表示更新文件的意思。

# tar -tf all.tar
这条命令是列出all.tar包中所有文件,-t是列出文件的意思

# tar -xf all.tar
这条命令是解出all.tar包中所有文件,-x是解开的意思

压缩

tar –cvf jpg.tar *.jpg //将目录里所有jpg文件打包成tar.jpg

tar –czf jpg.tar.gz *.jpg   //将目录里所有jpg文件打包成jpg.tar后,并且将其用gzip压缩,生成一  个gzip压缩过的包,命名为jpg.tar.gz

tar –cjf jpg.tar.bz2 *.jpg //将目录里所有jpg文件打包成jpg.tar后,并且将其用bzip2压缩,生成一个bzip2压缩过的包,命名为jpg.tar.bz2

tar –cZf jpg.tar.Z *.jpg   //将目录里所有jpg文件打包成jpg.tar后,并且将其用compress压缩,生成一个umcompress压缩过的包,命名为jpg.tar.Z

rar a jpg.rar *.jpg //rar格式的压缩,需要先下载rar for linux

zip jpg.zip *.jpg //zip格式的压缩,需要先下载zip for linux

解压

tar –xvf file.tar //解压 tar包

tar -xzvf file.tar.gz //解压tar.gz

tar -xjvf file.tar.bz2   //解压 tar.bz2

tar –xZvf file.tar.Z   //解压tar.Z

unrar e file.rar //解压rar

unzip file.zip //解压zip

总结
(1)、*.tar 用 tar –xvf 解压
(2)、*.gz 用 gzip -d或者gunzip 解压
(3)、*.tar.gz和*.tgz 用 tar –xzf 解压
(4)、*.bz2 用 bzip2 -d或者用bunzip2 解压
(5)、*.tar.bz2用tar –xjf 解压
(6)、*.Z 用 uncompress 解压
(7)、*.tar.Z 用tar –xZf 解压
(8)、*.rar 用 unrar e解压
(9)、*.zip 用 unzip 解压

linux中ctrl+z和ctrl+c的区别

ctrl+c和ctrl+z都是中断命令,但是他们的作用却不一样.
ctrl+c是强制中断程序的执行,
而ctrl+z的是将任务中断,但是此任务并没有结束,他仍然在进程中他只是维持挂起的状态,用户可以使用fg/bg操作继续前台或后台的任务,fg命令重新启动前台被中断的任务,bg命令把被中断的任务放在后台执行.
例如:
当你vi一个文件是,如果需要用shell执行别的操作,但是你又不打算关闭vi,因为你得
存盘推出,你可以简单的按下ctrl+z,shell会将vi进程挂起~,当你结束了那个shell操作之后,你可以用fg命令继续vi你的文件.

linux下删除文件夹的命令

使用rm -rf 目录名字 命令即可

-r 就是向下递归,不管有多少级目录,一并删除
-f 就是直接强行删除,不作任何提示的意思

eg

删除文件夹实例:rm -rf /var/log/httpd/access
将会删除/var/log/httpd/access目录以及其下所有文件、文件夹

删除文件使用实例:rm -f /var/log/httpd/access.log
将会强制删除/var/log/httpd/access.log这个文件

linux压缩和解压缩命令

tar
解包:tar zxvf filename.tar
打包:tar czvf filename.tar dirname
gz命令
解压1:gunzip filename.gz
解压2:gzip -d filename.gz
压缩:gzip filename
.tar.gz 和  .tgz
解压:tar zxvf filename.tar.gz
压缩:tar zcvf filename.tar.gz dirname
压缩多个文件:tar zcvf filename.tar.gz dirname1 dirname2 dirname3…..
bz2命令
解压1:bzip2 -d filename.bz2
解压2:bunzip2 filename.bz2
压缩:bzip2 -z filename
.tar.bz2

解压:tar jxvf filename.tar.bz2
压缩:tar jcvf filename.tar.bz2 dirname
bz命令
解压1:bzip2 -d filename.bz
解压2:bunzip2 filename.bz
.tar.bz
解压:tar jxvf filename.tar.bz
z命令
解压:uncompress filename.z
压缩:compress filename
.tar.z
解压:tar zxvf filename.tar.z
压缩:tar zcvf filename.tar.z dirname
zip命令

解压:unzip filename.zip
压缩:zip filename.zip dirname

 

本文来源:https://www.cnblogs.com/wxlf/p/8117602.html

从Linux服务器下载文件夹到本地

scp /home/work/source.txt work@192.168.0.10:/home/work/ #把本地的source.txt文件拷贝到192.168.0.10机器上的/home/work目录下

scp work@192.168.0.10:/home/work/source.txt /home/work/ #把192.168.0.10机器上的source.txt文件拷贝到本地的/home/work目录下

scp work@192.168.0.10:/home/work/source.txt work@192.168.0.11:/home/work/ #把192.168.0.10机器上的source.txt文件拷贝到192.168.0.11机器的/home/work目录下

scp -r /home/work/sourcedir work@192.168.0.10:/home/work/ #拷贝文件夹,加-r参数

——————— 本文来自 我爱酸奶 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/qianzhaovic/article/details/79031359?utm_source=copy

2、使用xshell工具

使用xshell来操作服务非常方便,传文件也比较方便。
就是使用rz,sz
首先,服务器要安装了rz,sz
yum install lrzsz
当然你的本地windows主机也通过ssh连接了linux服务器
运行rz,会将windows的文件传到linux服务器
运行sz filename,会将文件下载到windows本地

使用xshell来操作服务非常方便,传文件也比较方便。
就是使用rz,sz
首先,服务器要安装了rz,sz
yum install lrzsz
当然你的本地windows主机也通过ssh连接了linux服务器
运行rz,会将windows的文件传到linux服务器
运行sz filename,会将文件下载到windows本地

---------------------

本文来自 我爱酸奶 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/qianzhaovic/article/details/79031359?utm_source=copy 

3、常用方法

在本地上安装Xshell和Xftp软件,在xshell软件中有快捷方式(选择利用Xftp打开当前目录)

——————— 本文来自 我爱酸奶 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/qianzhaovic/article/details/79031359?utm_source=copy