A Colorful Summer Holiday

A Colorful Summer Holiday          Sep.1.2017

After a long break, eventually the new term comes. Looking back at the two-month holiday, I found it full of colors. Every scene floods into my mind, and I start to recall the wonderful time i spent.

My holiday actually started one week before July. After knowing my scores for the final exam last term, I become extremely happy. Not only the good score, but also the news that I won the second prize for the professional skill contest.

Every day in my holiday was exactly not the same, I spent every day differently. I played online games and got level 200 in one of them. I bought a SLR camera which brought me outside and took plenty of pictures. Plus, of course I’ve learnt something usefull in the holiday. For example, I self-learnt a bit Japanese, programming as well as advanced Math. Regretfully, I didn’t travel to other city or go abroad and nearly every day was spent at home.

After all the holiday has passed away, what I’m facing is the new term. So let the colorful summer holiday be one fantastic part of my memory and look forward to the new term with energy!

树莓派服务器架设

1.固定IP设置
使用ifconfig查看当前网卡设备名
更改/etc/dhcpcd.conf
interface 网卡名
static ip_address=192.168.1.88/24
static routers=192.168.1.1
static domain_name_servers=192.168.1.1 8.8.8.8

2.更改软件源
/etc/apt/sources.list
deb http://mirrors.aliyun.com/raspbian/raspbian/ jessie main contrib non-free rpi

3.搭建LNMP服务器
sudo apt-get update
sudo apt-get install nginx php5-fpm php5-cli php5-curl php5-gd php5-mcrypt php5-mysql php5-cgi mysql-server

nginx设置
修改配置/etc/nginx/sites-available/default

server {
listen 80;
server_name localhost;
root /var/www/html/;

access_log /var/log/nginx/localhost.access.log;
#error_page 404 /404.html;

location / {
index index.html index.htm index.php default.html default.htm default.php;
}

location ~* ^.+.(jpg|jpeg|gif|css|png|js|ico|xml)$ {
access_log off;
expires 1d;
}

location ~ .*\.php(\/.*)*$ {
root /var/www/html;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}

4.安装phpmyadmin
sudo apt-get install phpmyadmin
sudo ln -s /usr/share/phpmyadmin /var/www/html

5.mysql设置账户
create database wordpress;
create user ‘joshliu357’@’%’ identified by ‘123456’;
grant all on wordpress.* to joshliu357@’%’ identified by ‘123456’;

6.安装wordpress
将wordpress安装包解压至/var/www/html/wordpress
开启权限
chmod -R 777 /var/www/html/wordpress为了保证正常安装插件
生成wp-config.php后

最后添加

define(“FS_METHOD”,”direct”);

define(“FS_CHMOD_DIR”, 0777);

define(“FS_CHMOD_FILE”, 0777);

为了更改wordpress上传图片大小限制
在/etc/nginx/nginx.conf适当地方添加
client_max_body_size 100m;
在wordpress根目录添加一个文件maxsize.ini
内容为
upload_max_filesize = 100M
post_max_size = 100M
max_execution_time = 300

创建链接
sudo ln -s /var/www/html/wordpress/maxsize.ini /etc/php5/fpm/conf.d/
或者在.htaccess添加
php_value upload_max_filesize 100M
php_value post_max_size 100M

nginx静态链接设置
location / {
if (-f $request_filename/index.html){
rewrite (.*) $1/index.html break;
}
if (-f $request_filename/index.php){
rewrite (.*) $1/index.php;
}
if (!-f $request_filename){
rewrite (.*) /index.php;
}
}

location /wordpress/ {
try_files $uri $uri/ /wordpress/index.php?q=$uri&$args;
}

apache和nginx反向代理设置
/etc/apache2/ports.conf 中
NameVirtualHost *:8080
Listen 8080
/etc/apache2/sites-enabled/000-default中
<VirtualHost *:8080>
/etc/nginx/sites-available/default中
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://127.0.0.1:8080;

apache的wordpress伪静态
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ – [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

7.树莓派swap扩容
sudo dd if=/dev/zero of=/swapfile bs=1M count=3072
sudo mkswap /swapfile
sudo swapoff /var/swap
sudo swapon /swapfile

更改/etc/fstab加入行
/swapfile swap swap defaults 0 0

8.ftp设置
/etc/vsftpd.conf中
local_enable=YES
write_enable=YES
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
allow_writeable_chroot=YES

/etc/vsftpd.chroot_list中
pi

/var/www/html/目录所有者root所属组pi
chown -R root:pi /var/www/html/
设置权限
chmod -R 775 /var/www/html/
chmod -R 777 /var/www/html/wordpress/wp-content

创建ftp用户
useradd -d /var/www/html/ -s /bin/bash ftpuser
passwd ftpuser
把ftpuser加入pi组
usermod -a -G pi ftpuser

并sudo ln -s /medai/pi/TOSHIBA samba把移动硬盘链接至主目录下
通过这些设置ftp用户pi可访问其主目录和移动硬盘目录以及父目录
ftpuser仅可访问网站根目录

9.samba设置
sudo apt-get install samba samba-common-bin

/etc/samba/smb.conf中
[Raspberry Pi Share]
path = /media/pi/TOSHIBA
valid users = root pi
public = yes
writable = yes

[HTTP Server Root]
path = /var/www/html
valid users = root pi
public = yes
writable = yes

并smbpasswd –a pi添加samba用户
通过以上设置root和pi用户可访问移动硬盘和网站根目录

我的计算机软件价值观

我的计算机软件价值观

昨天的启动盘与GNU/Linux

我大概从2010年开始接触GNU/Linux操作系统,使用的第一个发行版是雨林木风的YLMF OS,现在已经改名叫StartOS。起初它的用户界面很类似Windows XP。现在回忆起来,当时对GNU/Linux的文件系统一窍不通,在把它安装到虚拟机以后很快就删掉了。至于如何想到要安装GNU/Linux的,有一段很长的故事。大概是在2008年,我还很年轻的时候。有一次,我家计算机的显卡出了故障,于是只能送修。家里能使用的只有一台很旧的惠普机,我在调整分辨率时失误,造成了黑屏。这时不知道如何恢复,便萌生了一个制作启动盘的打算。我开始了解Windows PE的知识,并且开始尝试制作启动盘。我找到了名为无忧启动的论坛,从中学习关于计算机启动的知识,逐渐尝试制作制作自己的Windows PE的启动盘。谈到启动盘,不得不想起大名鼎鼎的Grub for DOS启动管理器,简称grub4dos。它是一个基于GNU Grub的启动管理器,由国人chenall开发。它功能十分强大,现在很多启动盘都使用其作为启动器。由于Grub与Linux的密切关系——grub本身就是为Linux内核开发的,无意中,也许是偶然,我想尝试一下GNU/Linux。在那之前,我下载了一些grub4dos使用的gfxmenu的message文件,那是一种美化启动界面的文件。其中有一张上面画着KDE的Logo,当时的我还不了解KDE,也不知道它是GNU/Linux的一种桌面环境。于是,我选择了当时新生的YLmf OS,把它装在了vmware虚拟机上。不久,如文首,我就把它扔进了垃圾桶。可是后来,我没有放弃对其探索。出于好奇,我在启动盘上安装了CDLinux以及SLAX。并且了解到ubuntu这一个GNU/Linux发行版,在选择了10.04 LTS这个当时最新的版本之后,我将它安装在那个旧旧的惠普机上。在寻找关于GNU/Linux的信息的时候,经常会看到一长串命令前面有个sudo。很不解那是干什么用的,而后知道那是使普通用户暂时获得root权限的命令。第一次使用sudo命令,因为输入的密码不显示出来,我还以为程序出了问题。现在才知道,那本来就不需要显示出来。上网查到了让sudo不需要密码的方法。大家不知道的话,我可以教大家一下。运行visudo命令,这是会来到一个vi的环境,打开的是/etc/sudoers文件。输入下面的内容:your_user_nameALL=(ALL) NOPASSWD: ALL

保存后,使用sudo就不需要输入密码了,可是这很不安全。编辑环境是vi,不向普通的编辑器,没有学过的人是很难使用的,我那是深深的感觉到这一点。可是也不了解ubuntu自带的gedit,不知道用它来编辑sudoers文件。也不知道过了多久,我不再纠结sudo的问题。我开始发奋学习ubuntu linux,首先研究ubuntu的美化、本地化基本配置,研究GNU/Linux的命令。怀揣着一颗充满希望的心,我开始了ubuntu环境下的编程学习。

迈入编程殿堂

我第一次接触计算机编程,是在学习GNU/Linux之前。学校发了一张报名表,上面有一个西部集团杯的vb课程。也许因为从小喜欢计算机,对计算机编程也抱有一定兴趣,或许也是因为如果学得好,拿个奖的话,对升学也有一定帮助,我报了Visual Basic班的名。首次课,懵懵懂懂地按照老师的话,用鼠标拖出一个窗口,然后画一个按钮,一个输入框,双击后,再在代码框里输入if语句。因为老师不是从零开始讲起的,真的很难理解,严重地说真的是什么都听不懂。

后来,我从网上找到一个C语言的教程,名为《LinuxC编程一站式学习》,那是我编程的启蒙书,我也是从这本书入手,迈入计算机编程的神圣殿堂的。从看电子书起,到在图书馆发现这本书的印刷版,我将这本书带回了家。这也是我第一本编程书,如今看着自己摆满书桌的计算机书,真的是有种说不出的感动。我的C编程完全是在ubuntu下进行的,我不像很多初学者,使用Turbo C或者Dev-C++之类的IDE,而是靠着一个gvim加终端打遍天下。我很庆幸我学习了vim这个编辑器,能够熟练使用它的程序员真的是很受益的。我把网上有人写好的.vimrc配置文件拷贝下来,并装了几个vim插件。看着网上的人把vim打造成一个功能强大的IDE,我很是羡慕。并且羡慕他们开这一个终端,输入一行一行天书般的命令,很是帅气。更有甚者,不开X11,直接在控制台下工作。

这使我回忆起当时制作DOS启动盘的画面,我曾经给DOS分过一个分区,装了ms-dos7.1加上Windows 3.1。当时寻求的就是这种黑底白字的效果,然而DOS完全不能满足我的胃口,认识了GNU/Linux以后,我发现它也可以不仅可以实现那种命令行的效果,而且比DOS强大很多,并也可以选择是否启用X11,就像DOS是否安装Windows 3.1图形界面一样。这表现在GNU/Linux至始至终就是一个运行在32位保护模式下的操作系统,而DOS是运行在16位实模式的。Windows 2000之前的Windows操作系统例如win98、win95、win3.x其实都是运行在DOS内核之上的,老一辈的计算机用户可能都熟悉用一张DOS启动盘启动win98的故事。而且windows 98属于混合16位、32位的操作系统,这就是为什么它经常动不动就蓝屏的原因。

这有还有个小故事,当时在装DOS以后,激活主分区的时候不小心碰了一下分区表,造成分区表错误,几个分区被弄丢了。当时心急如焚,最终还是花了一晚上时间用disk genius把丢失的分区搜索出来,并且修复了分区表。从此,对于分区表的操作甚佳小心。

话说回来,GNU/Linux就是我一直在寻找的,DOS的替代品。

我在一步一步地,参照教程学习GNU/Linux环境下的C编程。后来,从VB班转到Pascal班,学习算法。但最终还是发现,C语言不愧是最受欢迎、最强大的编程语言。当时的我是个纯C党,也就是不使用C++的人,这似乎是像Linux内核之父李纳斯·托沃兹的作风。

自由的捍卫者与其追随者

以前看到过一幅画,画上幽默的画着一头长着长角的角马,它的名字叫”GNU”。

向大家推荐一本书,叫《若为自由故》,是自由软件之父理查德·斯托曼的传记。他,本为一名无名的电脑程序员,却因为“自由”二字成名于计算机界。三十年前,他在软件界发起一场革命热潮,为”自由软件运动“而呼吁。他,是“自由”二字的传道士,并且给无数程序员们带来了福音。他,是一名斗士,一名理想主义者。

读了这本书以后了解理查德斯托曼的故事,以及这头角马的来历。他本为麻省理工大人工智能实验室的程序员。一次,他因为自己的打印机不能正常工作,于是想要改写打印机的驱动程序,然而,商家不提供驱动的源代码,这使他颇为苦恼。那个时候,同行之间写的程序代码都是共享的,然而随着时间的推移,软件被商业化,以至于程序员们不能随便修改程序代码。

斯托曼看不惯这一点,于是辞去了麻省的工作,发起了一个名叫GNU的计划,初衷是为了创造一个完全自由的操作系统。在那里,你可以自由的获得软件并且修改它,传播自己的作品,分享他,同时因为他人的分享而受益。随即,他成立了自由软件基金会,并且与律师一起编写了一个自由软件许可证,为了“反版权”开拓出一条崭新的道路。这条许可证后来成为当今软件界最为广泛采用的一条。

第一次拿到这本书,我就被封面上的斯托曼迷住了。一个长头发、络腮胡的黑客形象浮现在我眼前,封面上的他凝视着远方,似乎在思索什么,同时也在寻找着什么。后来我知道,这位思想者在思索着“自由”,这贯穿整本书的二字。在我以前的印象里,他像一个宗教领袖一样神秘并且令人尊敬。这本书让他在我中脑海中的印象渐渐地清晰起来。实际上,他是一个有血有肉、脾气倔强、难以合作的怪老头。

我很早以前就接触到自由软件,他所倡导的。当我渐渐接触它,我尝到了它的甜头。自由软件是一种可以不受限制地自由使用、复制、研究、修改和分发的软件 。这方面的不受限制正是自由软件最重要的本质。这是理查德·斯托曼宣扬的。他认为,一个好的软件,便该自由自在地让人取用,而不是用来作为相互倾轧、剥削的工具。他的精神是完全反商业的,即便当比尔盖茨拥有亿万家产,他仍然坚持自己的理念,在自由的阵地上奋斗。

如今,已经六旬的老者斯托曼依然在满世界奔波,捍卫着自由。虽然有些固执,但是我喜欢这一点,也尊敬他在当今社会,当年他发起的自由软件运动的原始教义被慢慢的弱化的时候,他却依然坚持着。三十多年来,他从来没改变过,动摇过,始终宣扬着自己的观点——自由。作为自由软件之父,他将被人永远铭记。

虽然我不能保证我以后写出的程序全部像他一样贡献出去,但我从心底里佩服他——在商业大潮中独自为了梦想而战斗的男人。偏执也好,极客也好,对这名为了消除孤独而选择孤独的胖胖的大叔,我毫不吝啬地献上我的敬意。

渐渐冷静的头脑与Mac的身影

当时的我似乎为了自由而疯狂,常常在QQ的签名上挂着鼓吹自由软件的言论。但是到现在为止,我火热的头脑似乎已不再那么火热。对于自由软件的鼓吹者,我不再那么拼命的宣传自由软件,或是极力抵制商业软件。作为自由软件的受益者,我虽然没有放弃它,但却也不敌对那些封闭源代码软件。每件物品的存在,每个事情的发生,都有它独到的意义。如果没有GNU,没有Linux,或者没有FreeBSD,我相信微软的Windows将把软件界垄断。但如果没有Windows,我们今天可能不会有这么多网络游戏可玩,或者不太可能出现电脑病毒,而更没有杀毒软件存在了。在和GNU/Linux亲密接触数年以后,我从一个新手,渐渐成为一个初级黑客。不敢说我的编程水平高,因为我毕竟只写过一些小的程序,命令行的技术也称不上出色。曾经的我的确为自由软件疯狂过,但此时此刻,我对软件的看法不再那么绝对,不像《完全用GNU/Linux工作》作者王垠那样,为了一个操作系统的问题而退学。面对一个哲学问题,开放还是封闭,一个计算机软件界的战争,自由还是商业,我选择了中立的态度。

对于GNU/Linux的厚爱,我没有放弃,但我也不痛恨微软或者苹果。如今,我有了苹果电脑,使用的是上面自带的OS X系统。笔记本上也同时安装了Windows 10与ubuntu linux 16.04。对于苹果电脑,有些人买了以后就把自带的OS X卸载掉,装上上手的Windows系统,对此我的看法并不是对他们感到歧视,说他们不知道OS X的好处,或者说他们不会使用OS X,很低级的那种话。每个人有每个人的习惯,爱好,以及他倾向的操作系统。我装Windows 10,主要是为了与大部分用户兼容,为了网络游戏,或者与那些只会用Windows的人保持一定的共同语言。而对于苹果的OS X,我的iPod touch需要使用上面的ITunes,并且认为苹果的用户界面真的是非常华丽。作为一个用过GNU/Linux的人,对于OS X的命令也有些熟悉,因为GNU/Linux是一个类UNIX操作系统,而苹果是一个基于Mach微内核,以及FreeBSD的UNIX系统。虽然GNU命令与BSD命令不完全兼容,但是还是有些类似的地方,一些UNIX的影子。

现在的我,很舒服地工作在OS X平台下,日常的很多工作都在它下面进行。我是用的Qt编程API是全平台的,我在ubuntu和OS X下都安装了它,但由于ubuntu下的Qt Creator的输入法似乎存在问题,我在画界面的时候,还是使用Mac下的Qt Creator。我在上面用brew安装了vim,把GNU/Linux下的配置文件拷过去,和终端一起当做IDE用。

现在越来越多的程序员开始使用Mac了。买到一本日本的杂志,名为《Software Design》。这期的杂志主要讲述Mac平台下的程序员故事。作为UNIX的继承者,OS X正如官方所说,是个坚如磐石、高效的操作系统操作系统。很多不支持GNU/Linux的Windows软件也有相应的Mac版本。苹果硬件贵是众所周知的,并且它把硬件与软件捆绑,是一种很明智的售货方式。

作为GNU/Linux的爱好者,我知道很多人用苹果系统是从来不用终端的,他们不知道苹果也可以输命令来用。但我不嘲笑他们,因为自己也曾经对UNIX命令一窍不通。

至于,BSD命令与GNU命令的不同,我在苹果机上安装了virtualbox虚拟机,并且装了好几个收藏的GNU/Linux发行版。为了好玩,我还收藏了PC-BSD系统,以及一个名为Haiku OS的类似于BeOS的操作系统。

GNU/Linux真的走偏了吗

看到过一个帖子,楼主说”当人们为Linux的不断壮大,不久就要挑战Windows的时候,却没有发现,Linux忘却了自己本身的理念——开源,自由。”他还说道,一些大企业以及知名软件的加入,看起来是对Linux有益的,但违背了初衷。那些闭源软件只是看中了Linux这块市场,把它当做蛋糕来啃食。Linux未必没有病毒,我见过用bash脚本编写的蠕虫病毒,只不过是使用GNU/Linux的人比较少,大部分Windows平台下的游戏,以及大众化的程序使它充斥着病毒。如果病毒,广告的滋生,以及越来越傻瓜化,以及挑战的的缺乏,是否会对Linux造成威胁呢?

有些人表示,只有小白才会安装很多闭源的软件。又有人说所谓新手友好的发行版令人呕吐,新手友好什么都不算,只有用户说了算才是硬道理,当GNU/Linux完全用于娱乐时,它就死了。因为它本身就不同于Windows,可是有些偏激的开发者和用户要求它成为Windows的系统。

不过,那么多组织为了推广GNU/Linux费尽心思,就算用了违背自由软件的初衷,也是很不容易的。假如GNU/Linux变得更加简单,没有什么不好,没有人希望使用电脑时不停折腾,没有人不想要一个合适的环境。

又有人说,觉得闭源不想用那就不要用,其他用户未必跟这位楼主想得一样,软件和系统的开发者更加不会互相考虑。楼主可能是钻牛角尖了,其实有多少闭源软件不是问题,重要的是自己有选择的权利。自由软件的本质不是为了限制人们开源,而是为了有更多的选择。用GNU/Linux有许多理由,简单来说,黑客工具多、免费不要钱、看起来帅,这些都是。它是个开放的平台,没有理由拒绝闭源软件。商业软件完全被自由软件取缔是一件不现实,也是不可能的事情,GNU/Linux的灵活、机动性允许了自由软件与收费软件共存的可能,自由这个准则,使商业公司在这个平台下拥有同等的自由。又例如,RedHat Linux不就是一个商业的Linux版本吗。GPL没有限制软件的商业化,而BSD条例就更宽松了,只要你喊一声,我是用了BSD技术,管它开源还是不开源呢。苹果就利用了BSD这一点,造就了现在的OS X。GNU保障的是用户的自由,人们想怎么用就怎么用。有些人不理解开放和自由,处处建立起对其他用户的种种鄙视,用着自由的系统,却怀揣着干扰别人自由的心。

可能,对于程序员或者仅仅的使用者,他们的视角是不一样的。如果真的不接受GNU/Linux的现状,可以去投靠FreeBSD。

Linux与FreeBSD

一个可爱的小企鹅,一个拿着叉子的小恶魔。这是Linux与FreeBSD的形象,他们确实有很多相似之处,比如它们都是基于UNIX演变过来的,并且都由非盈利组织及团队开发的,并且目标都是创建最有用、最可靠的操作系统。

来谈谈区别。事实上,Linux只是一个操作系统的内核,而FreeBSD是个完整的操作系统。很多Linux用户不理解FreeBSD,而FreeBSD用户也不熟悉Linuxer们的心情。

一个单独内核,一个完整的操作系统

一个拥有五花八门发行版,一个具备完整的系统架构。

一个向所有领域进发,一个适合研究技术。

一个需要你告诉别人你怎么做的GPL,一个更加宽松的BSD许可。

一个在桌面应用颇有成效,一个在终端具有传统优势

一个从x86从零开始编写UNIX的一大群hacker,一个从UNIX移植到x86版的一群experthacker。

我把两个操作系统的区别罗列了一下。完美的操作系统是不存在的,正如人人都有缺陷,两个不断发展的操作系统也如此,但这并不意味着他们不好。而是各有各的优点,各有各的弱点。

相对Linux,FreeBSD具有以下特点:民主、富有凝聚力、分享、有义务、艺术性、以及坚持。它的社区是个团队,团队首领会被定期选举,而却抉择都是民主议程。FreeBSD的代码比Linux整齐,系统也优秀。每个人对它的热爱使之成为了一个充满美的操作系统。乔布斯的理解,也使得它的苹果成功了。技术上FreeBSD历史更加悠久,代码也健壮。而Linux社区以Linus作为精神领袖和凝聚力象征,当他太长时间掌控一个组织,容易积累错误。BSD社区的人更温文尔雅,给人以君子之感。

因为很多人对FreeBSD的认识比较少,使用范围也小,导致它在对一些新产品的驱动支持还不如Linux。如今,FreeBSD也有Linux的二进制兼容。双方各有各的支持者,只要互相说自己没有对方好,就会跳出来与之争辩。而我看来,GNU/Linux是一个优秀的操作系统,如果说它比FreeBSD更优秀,会引起很多人的不满。它们间的差异更多的是哲学上的问题,它们之间是相互取长补短的关系。

例如,又一次我在ubuntu-cn IRC上说道自己在用苹果系统,有人就很反对,说苹果多么多么渣。我没有回绝,因为每个人对待事物的角度会因自我的不同而不同。我们不应该整天说那个操作系统不好,好与不好没有绝对,只有相对的。

关于作者

今天写这篇文章的作者,比起昨天,稍渐成熟,但还差得远。从纯C党,到慢慢接触C++和Java。平时的我在苹果系统下工作,但我暂时不打算学习Objective-C和Swift编程,以及MFC。主要在研究Qt,并准备攻破Java写安卓程序,也在学习bash以及python。朝着UNIX hacker的目标努力,希望读到这篇文章的朋友能够理解UNIX的睿智从我对软件的价值观了解到什么。

程序员的情书

我在人生的无限递归中查找到了你
你打破了我生命的死循环
你使我的命运不再是变量
反而处处显现出常值的光彩
我第一次感到面向的对象就是你
不需要任何声明或定义
却无法将我的爱实例化
我在无尽的黑暗中
不断二分、再二分
深度搜索、再搜索
愿为你分配所有的内存空间
对你的思念
我无法重载
因为你在我的生命的定义中永远是静态的
我不慎调用了爱你的方法
只想把自己的心作为参数传送给你
你是内核
我是外壳
是你给了我无限的光彩
不想离开你
因为那对我来说就像返回了一个空指针
一个指向零的指针
随即
我的主函数只能面临崩溃
我愿捕获所有的异常
为了处理这些异常
我将把所有实现压入堆栈
我将一切可能的值传递给你
如果返回值为真
我将用尽所有内存去爱你
否则我愿将自己的所有系统资源释放

mountftp.sh

写了一个shell脚本,用于mount FTP的fs,前提是已经安装curlfptfs。挂载后可以读写

#!/bin/bash

function pretreatment(){
    if which curlftpfs; then
        echo "Found." 
    else
        echo -e "The command \"curlftpfs\" does not exist, please install it before running this script."
        exit
    fi

    uid_test
    echo "Got your UID: $uid"


}

function uid_test(){
    case $(uname -s) in 
        Linux)
            uid=$(cat /etc/passwd | grep $(whoami) | awk -F: '{print $3;}');;
        Darwin)
            uid=$(dscl . -list /Users UniqueID | grep  $(whoami)   | awk '{print $2}');;
        *)
            echo "Unknown system (not Linux or macOS). Continue or not? (y or n)"
            read choice1;
            if [ "$choice1" == "y" ]; then
                read -p "Please input your UID" uid
            else
                exit
            fi
            ;;
    esac
}

function connect(){
    read -p "Server address (without prefix ftp://): " address

    read -p "Login name: " username

    read -s -p "Login password: " password
    echo

    read -p "Local directory: " directory

    echo "Now will mount the FTP to the local file system."
    echo 

    read -p "Press enter to continue."
    echo
    echo -e "Running \"curlftpfs -o rw,allow_other,uid=${uid} ftp://${username}:****@${address} $directory\". "

    curlftpfs -o rw,allow_other,uid=${uid} ftp://${username}:${password}@${address} ${directory}
}



function retry_test(){
if [ "$?" -ne 0 ]; then
    echo
    echo "Failed. Would you like to retry? ( y or n )"
    read choice2
    if [ "$choice2" == "y" ]; then
        connect
        retry_test    
    else 
        exit
    fi
else
    echo "Successfully mounted."
    echo
fi
}

pretreatment
connect
retry_test

 

ssh X连接

服务器端
/etc/ssh/ssh_config

AllowTcpForwarding yes
X11Forwarding yes
XAuthLocation /usr/bin/xauth
X11DisplayOffset 10
X11UseLocalhost yes

客户端
~/.ssh/config
XAuthLocation /opt/X11/bin/xauth

字符界面显示设置

sudo hwinfo –framebuffer | grep Mode

/etc/default/grub

GRUB_GFXMODE=1280×1024
GRUB_GFXPAYLOAD_LINUX=keep

sudo apt-get install fbterm
sudo adduser user video

./.fbtermrc

font-names=Ubuntu Mono
font-size=18

apt-get install fcitx-fbterm
启动命令fcitx-fbterm-helper

wordpress+ftp服务器搭建笔记

https://cn.wordpress.org/ 下载wordpress安装包
apt-get 安装 php php-fpm php-mysql php-gd mysql-server
安装并注册mysql root账户
建立数据库 create database wordpress;
建立自己账户 CREATE USER ‘josh’@’localhost’ IDENTIFIED BY ‘123456’;
grant all on wordpress.* to josh@localhost identified by ‘123456’;
将wordpress安装包解压至/var/www/html/wordpress
开启权限 chmod -R 777 /var/www/html/wordpress
登录127.0.0.1登入配置网页进行安装
生成wp-config.php后
最后添加
define(“FS_METHOD”,”direct”);

define(“FS_CHMOD_DIR”, 0777);

define(“FS_CHMOD_FILE”, 0777);

插件Crayon Syntax Highlighter
WP Database Backup
jonradio Multiple Themes
主题 TwentySixteen
固定链接设定为 http://localhost/wordpress/index.php/%year%/%monthnum%/%postname%/

apt-get install vsftpd
/etc/vsftpd.conf 添加

anonymous_enable=NO #禁止匿名访问
local_enable=YES
write_enable =YES
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
allow_writeable_chroot=YES

useradd -d /var/www/http/ -s /bin/bash ftpuser
passwd ftpuser
usermod -a -G ftpuser josh
chown -R :ftpuser /var/www/http/
chmod -R 775 /var/www/http/
chmod -R 777 /var/www/http/wordpress/wp-content