Ubuntu上配置FTP服务器

在Ubuntu上配置FTP服务器

1.安装VSFTPD服务器

1
sudo apt install vsftpd

##2.启动,重启服务

1
2
3
systemctl start vsftpd
systemctl enable vsftpd
systemctl restart vsftpd

3.配置服务器

4.测试FTP服务器,在局域网的其他电脑上。

1
ftp ...

Ubuntu上配置Apache服务器

如何在Ubuntu安装Apache Web 服务器

1.安装apache2包:

1
sudo apt install apache2

2.配置防火墙:

1
2
3
sudo ufw app list
sudo ufw allow 'Apache'
sudo ufw status

LInux原始的防火墙工具iptables由于过于繁琐,所以ubuntu系统默认提供了一个基于iptable之上的防火墙工具ufw。

1.安装

1
sudo apt install ufw

2.启动

1
2
sudo ufw enable
sudo ufw default deny

开启防火墙,并在系统启动时自动开启。
关闭所有外部对本机的访问,但本机能够正常访问外部。

3.开启/禁用:

1
sudo ufw allow/deny [service]

4.查看防火墙状态

1
sudo ufw status

3.检查你的Web服务器

1
sudo systemctl status apache2

Systemctl是一个systemd工具,主要负责控制systemd系统和服务管理器。

Systemd是一个系统管理守护进程、工具和库的集合,用于取代System V初始进程。Systemd的功能是用于集中管理和配置类UNIX系统。

在Linux生态系统中,Systemd被部署到了大多数的标准Linux发行版中,只有为数不多的几个发行版尚未部署。Systemd通常是所有其它守护进程的父进程,但并非总是如此。

4.访问默认的Apache登陆页面以确认是否通过IP地址正常运行

5.关闭,启动,重启Apache

1
2
3
apache2ctl start	启动
apache2ctl restart 重启
apache2ctl stop 关闭

6.Apache2配置文件

/etc/apache2/apache2.conf 存放网站的配置
如果有域名,可以在一个端口配置多个网站。
直接用IP地址,则在一个端口配置一个网站。
/var/www/html 存放网站数据

7.如何检测本地的网站

ping ip然后检查端口,我都不知道自己在说些什么。
Tips:作为小白还需要一些东西来记录一下,关于内网和外网。
简单来说,网络是网状结构的,然后外网是与因特网相通的网络,而内网也就是局域网,类似于几台电脑相互连接,来共享资源数据等。
那么对于这两个网络都有其IP地址,也就分别是:
公有IP:它由因特网信息中心管理,是世界唯一的,通过它能够直接上网。
私有IP:它是内部使用的,不能够直接上网(在局域网中)。
家里路由器分出来的IP都是私有IP,那么就是利用了端口映射,NAT。将外网主机IP地址的一个端口映射到内网中的一台机器,然后提供服务,用户访问这个IP时,服务器就会自动将请求映射到局域网内部的机器上。好复杂我也没听懂自己再说什么。
以路由器为例,有两个端口:
WAN:接外部IP
LAN:接内部IP

Git使用指南

目录

Git创建本地项目,并推送到远程Git仓库

1.建立本地项目

1
git init

它可以创建一个全新的空仓库,或者将已经存在的项目纳入版本管理。同时,系统自动创建唯一的分支master,自动创建.git目录(默认是隐藏状态),这个默认隐藏的目录.git就是版本库(Repository),而当前目录下,除.git以外都是工作区,也就是我们修改文件的地方。版本库中内容很多,并且都很重要,有两个是我们实际操作中经常要遇到的,那就是暂存区(也可以称之为stage或者index)和分支,HEAD是一个指针,指向当前所在的分支(master)。
将文件最终提交到版本库基本流程如下:
(1).git add命令将工作区未跟踪和修改文件提交到暂存区。
(2).git commit命令将暂存区内容提交到当前版本。暂存区就如同一个临时性仓库,可以将来自工作区的新文件或者修改文件暂时存放起来,然后统一提交到分支。

1.在远端建立库
进入GitHub,登陆后,创建新的库,保存库的.ssh地址
2.在本地建立库
1.在工程文件夹,或新的目标文件夹下,输入

1
git init
1
git statues	//查看本地库的状态
1
2
3
4
5
6
git add file-name	//将文件添加到暂存区
git add . //将所有已改或新建的文件添加到暂存区
git rm --cached file-name//将文件从暂存区移除
git rm -r file-name //将文件从本地的版本库中删除
git commit -m "xxx"//将暂存区的文件添加到本地仓库 -m代表提交信息
git commit -am "xxx"//将add和commit合二为一
1
git log	//查看提交日志
1
2
git remote add origin ....git//加入远端仓库
git push -u origin branck-name//将本地仓库发送到远端仓库的master分支

分支

1
2
3
4
5
6
7
8
git branch branch-name	//建立一个新的分支
git branch
//查看当前的本地分支,可以通过颜色确认当前所在的分支
git branch -a
//看到本地和远程分支
git checkout branch-name//切换到分支
git checkout -b branch-name
//git branch branch-name和git checkout branch-name的合并

2.Submodule

1
2
3
4
5
6
7
8
9
git submodule add submodule_url 
//添加子项目
//出现.gitmodules文件,配置文件

git submodule init
//初始化本地.gitmodules文件
git submodule update
//同步远端submodule源码

Ubuntu操作指南

输入法配置谷歌拼音

1
2
3
4
1.安装中文字体(已经有了,这一步略过)
2.安装fcitx框架
3.安装google拼音
4.配置输入法

安裝中文鍵盤字體:
settings->Regin&Language中‘+’添加chinese

下載fcitx和google拼音

1
2
sudo apt install fcitx
sudo apt install fcitx-googlepinyin

配置输入法:
1.点击input method configuration
2.选择updata
3.選擇fcitx

3.进入fcitx configuration(input method configuration)
4.选择加号添加输入法
5.取消勾选仅显示当前语言,在下面搜索google-pinyin
6.重启fcitx或者Ubuntu
7.默认切换输入法ctrl+space或者shift

Ctrl Shift F 繁体字和简体字的切换

文档处理指令:

cd:进入下级目录
cd .. 返回上级文件
cd / 返回根目录
cd ~ 返回用户目录

ls:显示当前路径下的文件
ls -a 显示包括隐藏文件之内的所有文件
/*
ls命令下文件颜色的含义:
白色:普通文件
绿色:可执行文件
红色:压缩文件
蓝色:目录
青色:链接文件,类似于快捷方式
黄色:设备文件,把硬件设备抽象为文件。
例如:block块可以表示硬盘,char表示键盘
灰色:其他文件
*/
ubuntu下查看权限的命令

1
2
ls -l filename
ls -ld folder

u user 所有者
g group 群组
o other 其他人
a all 全部的人包括u,g,o

r(4):文件可以被读
w(2):文件可以被写
x(1):文件可以被执行
-(0):相应的权限还没有被授予
同时,上面的权限可以通过数字来表示.

  • 添加权限
  • 删除权限
    = 使之成为唯一的权限
1
2
3
4
5
6
chmod o+w xxx
//授予其他人写的权限
chmod go-rw xxx
//删除群组和其他人的读写权限
chmod 777 xxx
//所有人获得所有权限

控制权限的所有指令都必须使用高级权限。

mkdir:新建目录

rm:删除
rm 文件名
rm -r 文件夹名

cp:复制
-i (interactive)要求确认在复制过程中是否覆盖现有文件
-r 复制给定目录中的所有子目录和文件并保留树结构
-v (verbose)显示逐个复制的文件

mv:移动和重命名文件
-i (interactive)要求确认是否覆盖现有文件
-f (force)覆盖交互,不返回任何提示
-v (verbose)显示逐个移动文件

cat:打开文档

解压,压缩文件:

文件格式

tar.gz压缩格式用于unix的操作系统,
zip用于windows的操作系统
在windows系统中用WinRar工具同样可以解压缩tar.gz格式的。

详细:

zip流行于windows系统上的压缩文件(其他系统也可以打开)。zip格式开放而且免费 。zip支持分卷压缩,128/256-bit AES加密算法等功能。zip的含义是速度,其目标就 是为顶替ARC而诞生的“职业”压缩软件。

tar是“tape archive”(磁带存档)的简称,它出现在还没有软盘驱动器、硬盘和光盘驱 动器的计算机早期阶段,随着时间的推移, tar命令逐渐变为一个将很多文件进行存档的工具,目前许多用于Linux操作系统的程序就是打包为tar档案文件的形式。 在Linux里面,tar一般和其他没有文件管理的压缩算法文件结合使用,用tar打包整个文件目录结构成一个文件,再用gz,bzip等压缩算法压缩成一次。也是Linux常见的压缩归档的 处理方法。

指令:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# .tar	仅打包,并非压缩
tar -xvf FileName.tar # 解包
tar -cvf FileName.tar DirName # 将DirName和其下所有文件(夹)打包

# .gz
gunzip FileName.gz # 解压1
gzip -d FileName.gz # 解压2
gzip FileName # 压缩,只能压缩文件

# .tar.gz 和 .tgz
tar -zxvf FileName.tar.gz # 解压
tar -zcvf FileName.tar.gz DirName # 将DirName和其下所有文件(夹)压缩
tar -C DesDirName -zxvf FileName.tar.gz # 解压到目标路径

# .zip 占用空间比.tar.gz大
unzip FileName.zip # 解压
zip FileName.zip DirName # 将DirName本身压缩
zip -r FileName.zip DirName # 压缩,递归处理,将指定目录下的所有文件和子目录一并压缩

# .rar mac和linux并没有自带rar,需要去下载
rar x FileName.rar # 解压
rar a FileName.rar DirName # 压缩

tree:显示当前目录下的文件结构(需要安装tree)

下载安装文件:

sudo apt [–yes –force-yes] install 文件名 从文件源下载安装文件
sudo apt update apt源文件目录更新
sudo apt upgrade 文件升级

软件安装后的存放位置
‘’’
/var/cache/apt/archives

下载文件存放位置

/usr/share

安装文件默认位置

/usr/bin

可执行文件位置

/etc

配置文件位置

/usr/lib

lib文件位置

‘’’

权限:(注意!尽可能不要使用以下权限,除非安装程序之类的操作)

sudo 暂时获取管理员权限,之后要求输入密码,不显示密码
sudo -s 获取root权限
exit 退出root权限

建立快捷方式

在/usr/share/applications目录下

1
2
3
4
5
6
7
8
9
vim pycharm.desktop

[Desktop Entry]
Type=Application
Name=Pycharm
Comment=The Python IDE
Exec=sh /home/eglym/pycharm-community-2019.2.3/bin/pycharm.sh
Icon=/home/eglym/pycharm-community-2019.2.3/bin/pycharm.png

如何直接通过命令行控制

/usr/bin是用于存放第三方软件的快捷方式,只要程序放在这里,在终端就可以直接通过命令行来启动,以谷歌浏览器为例,将其安装后,可以看见该目录下有google-chrome文件。

1
google-chrome

就可以直接用命令行来运行程序了。

FAQ:

用apt下载文件时遇到 /var/lib/dpkg/lock - open (13: 权限不够)问题:

解决方式:
1.提升权限:

1
2
3
4
sudo -s //进入root模式
...
exit //下载文件后退出root模式

2.强制解锁

首先杀死apt进程

1
2
ps -a | grep apt
kill -9 xxx

删除锁定文件

1
2
sudo rm /var/cache/apt/archives/lock
sudo rm /var/lib/dpkg/lock

强制重新配置软件包

1
sudo dpkg --configure -a

更新软件包源文件

1
sudo apt update

退出root模式时,显示There are stopped jobs

1
jobs	//显示被暂停的工作

sudo vim /etc/systemd/resolved.conf
取消DNS注释:

问题:
如何在Ubuntu中使用AppImage文件:
右键,属性,Allow executing file as program

如何截图:

Prt Sc
进行整张屏幕的截取
alt + Prt Sc
进行当前窗口的截取
shift + Prt Sc
进行自由截图

查看历史命令

1
history

如何在命令行中打开图片

使用系统默认的软件打开相关的视频、图片等

1
xdg-open xxx

其中,xdg为 X Desktop Group X桌面文件管理工具的缩写大概,就这么记了。

当下载中文文档,例如:xxx.txt的时候,打开乱码怎么办

1
2
3
4
iconv -f GBK -t UTF-8 文件名 //例如:iconv -f GBK -t UTF-8 in.txt
就可以在终端看到正常的文件了
iconv -f GBK -t UTF-8 in.txt >in2.txt
就可以把转换后的内容存入in2.txt供以后查看

如何查看已连接过的wifi的密码?

1
2
3
4
5
cd /etc/NetworkManager/system-connections
ls
# 查看所有连接过的wifi
sudo cat wifi-name
# 在[wifi-security]中的psk就是密码

解压文件之后乱码

在Ubuntu下使用unzip解压Widnows环境下生成的zip文件,会发生文件名或者目录名乱码现象,解决办法是使用 7-zip和convmv。
安装7-zip和convmv:
sudo apt-get install convmv p7zip-full
解压zip文件:
LANG=C 7z e zip_file
convmv -f gbk -t utf8 -r –notest *

如何在命令行中掛載U盤:

1
2
3
sudo fdisk -l

sudo mount /dev/... /mnt

/dev/… 爲U盤的位置
/mnt 爲掛載的位置

下载文件及安装:

1
2
3
wget xxx # 从官网下载安装包
bash xxx.sh # 下载的为.sh文件
dpkg -i xxx.deb # 下载的为.deb文件

关于dpkg。
据百科描述,Ubuntu是基于Debian的Linux系统,而Debian系统的软件是使用APT和dpkg进行管理。dpkg是”Debian Packager”的简写,是一个底层的软件包管理工具。
下载的.deb文件如何安装

1
dpkg -i +文件名

或者

1
sudo apt install ./xxx.deb
1
2
3
4
5
6
# 对.tar.gz和.tar.bz2解压
tar xvzf xxx.tar.gz
tar xvjf xxx.tar.bz2

解压的文件中有\bin\xxx.sh
bash xxx.sh

如何查看文件的编码格式

1
file -i xxx

Git上搭建Hexo博客

概述

Git上提供免费的空间,可以构建静态网页,从而避免了各种平台上的限制,同时,为了方便管理,使用Hexo一个快速方便的博客框架,可以很容易的搭建博客。
Hexo是一款基于Node.js的静态博客框架,依赖少易于安装使用,Hexo的安装只需要npm来控制。

环境:
Ubuntu18

下面本文的结构
安装Git,Hexo(需要Node.js和npm)
建立Git远程库
配置Hexo
建立本地库

Read More

科学上网教程(包含谷歌访问助手,shadowsocks,ssh)

1.谷歌访问助手:

我最先使用的就是谷歌访问助手
1.下载google chrome
2.下载谷歌访问助手,git@github.com:Emir-Liu/Google-Access-Helper.git
3.打开google chrome,点击三个小点,选择more tools->Extensions,进入了chrome://extensions/(当然也可以直接在地址栏输入,进行访问)
4.点击页面右上角打开Developer mode,点击Load unpacked,选择下载的谷歌访问助手解压包。
5.然后就会有12个小时的免费科学上网时间,永久免费只要按照其要求修改主页就可以了.

优点:
1。免费不需要自己部署服务器,
2。操作相对简单一点
缺点:
2。无法访问Youtube之类网站。

2.shadowsocks:

为了能够访问Youtube我选了这个。

优点:
1。软件一直更新有保障,可以提issue
2。可以自由访问网络
缺点:
1。购买VPS,但是价格还是很便宜的我用的是vultr,主要可以需要的时候部署服务器,不用的时候就销毁了,价格在每个小时0。01USD,大概7分钱左右
2。操作相对复杂
3。有时候会出现奇怪的问题

2.1购买服务器

2.1.1购买网站以及要注意的

服务器IP
服务器账户
服务器密码

我这个是在客户端为Ubuntu,服务端为Ubuntu的环境下操作

2.1.2连接服务器

1
2
ping 服务器ip //检查是否可以连接
ssh 服务器账户@服务器IP//进行连接 连接后会让你输入服务器密码

2.2在服务器上搭建shadowsocks

2.2.1安装shadowsocks

1
2
3
4
5
6
7
8
9
10
11
12
13
apt-get update
apt install python-pip
apt install python-setuptools
pip install shadowsocks
vim shadowsocks.json//自己建立目录在目录下建立配置文件
{
"server":"0.0.0.0",
"server_port":服务器端口,
"password":"密码",
"method":"aes-256-cfb"//加密方式
}

ssserver -c /目录/shadowsock.json -d start

2.3在客户端搭建

2.3.1安装shadowsocks

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
apt-get install shadowsocks

vim shadowsocks.json//自己建立目录在目录下建立配置文件
{
"server": "服务器IP",
"server_port": 服务器端口,
"local_address": "127.0.0.1",
"local_port": "1080",
"password": "密码",
"method": "aes-256-cfb",//加密方式
"timeout": 300,
"fast_open": true
}
~
sudo -s//进入root
sslocal -c /目录/shadowsocks.json -d start
exit//退出root

3.ssh:

最后我觉得上面的方法太麻烦了,我发现一个最简单的方法。
优点:
1。可以在网上到处浪没限制
2。操作特别简单
3。需要服务器,但是不需要配置服务器,
缺点:
1。也需要一台服务器

服务器的购买和上面的一样

3.1 配置客户端

1
2
3
4
ssh -D root@66.42.66.21
//root是远程服务器的账户名,
//66.42.66.21时远程服务器的ip
//之后会要求你输入密码,这些根据你自己服务器的配置填写

3.2 配置FireFox

配置代理。
选择手动代理服务器
输入socks主机
选择socks-5

这样就完成了

Python 爬虫入门

Ubuntu18 如何安装Python

Ubuntu18 默认安装了Python2和Python3,打开Python默认打开Python2:

1
python

按住Ctrl+D退出Python命令行,打开Python3,输入:

1
Python3

简单读取网页的源码

以读取这篇博客为例,在Python2下面输入:

1
import urllib2

(听说:如果导入失败,退出Python环境,输入 apt-cache search urllib2)

1
2
3
page = urllib2.urlopen("https://emir-liu.github.io")
html = page.read()
print(html)

这样,就会显示本篇博客的源码。