分类 Linux 下的文章

开发编程语言(一):动机


起步

大学阶段,当拿到厚厚的《编译原理》书的时候,就感到了来自书里厚重的使命感,我觉得我学完后可以开发一个编译器。然而,这一学期又TM浪费了,都还没理解文法,LL0和LR1等分析就草草考试了。直到毕业,又重新燃起了开发编程语言的想法。

好处

虽然说,重新编写一个和以后语言相似的语言是“重复造轮子”,但是从以后的道路上来说这可以让我更加深刻理解编程语言的运行机制。说不定还能成为名人呢。

用什么语言来开发

C语言,因为作为高级程序语言设计的基础,相信很多人都是学过的。而且像lex/yacc这些工具就是面向C语言的,同时,使用C语言还可以降低依赖程度,性能也很优越。(其实是找的资料用的是C写的),卧槽,刚刚谁在说话。

设计怎样的语法

总的来说,应该会接近java语言吧。

运行方式

暂时未定是要编译型还是解释型


手动为Linux设置Swap(虚拟内存)


起步

买的服务器初始状态未配置swap,如果升配从内存从1G到2G,价格翻了一倍,那就走其他路径来“扩大”内存吧。

开始

1、创建用于交换分区的文件

dd if=/dev/zero of=/mnt/swap bs=block_size count=number_of_block

block_size、number_of_block 大小可以自定义,如:bs=1M count=1024,那么久会创建1024个bs=1M的区块(文件大小1024M)


Liunx screen命令


起步

搭建git服务器时需要一个进程一直运行着,关掉窗口或者断开链接,该任务就被kill了。发现screen命令真是太好用了。

介绍

这个命令可以在命令行终端自由切换,用户可连接多个命令行会话。可以实现会话恢复多窗口会话共享的功能。确保已经安装:sudo apt-get install screen或者yum install screen

使用

# screen [-AmRvx -ls -wipe][-d <作业名称>][-h <行数>][-r <作业名称>][-s ][-S <作业名称>]


Windows和Linux之间压缩包中文乱码的解决


windows压缩包在linux下解压的乱码问题(zip):

有两种方式解决问题:(建议采用方法一)

  1. 通过unzip行命令解压,指定字符集:(用GBK, GB18030也可以)

    unzip -O CP936 xxx.zip

      有趣的是unzip的manual中并无这个选项的说明,   unzip --help对这个参数有一行简单的说明,如下:   -O CHARSET specify a character encoding for DOS, Windows and OS/2 archives

  2. 在环境变量/etc/environment中加入如下两行指定unzip参数总是以指定的字符集显示和解压文件: ```  UNZIP="-O CP936" ZIPINFO="-O CP936"
    
     
     这样Gnome桌面的归档文件管理器(file-roller)可以正常使用unzip解压中文,但是file-roller本身并不能设置编码传递给unzip。

linux压缩包在Windows下解压的乱码问题:

在linux在将它压缩成.7z格式就可以了


让你的mysql允许被远程连接


起步

用了客户端是不是很爽,但是服务器上却还是只能命令行。

授权

登上服务器:

mysql -h127.0.0.1 -uroot -pyourpass

然后再执行:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.62.50' IDENTIFIED BY 'yourpass' WITH GRANT OPTION; 

这句话的意思 ,允许某IP地址(任何ip就是@'%')的电脑,用root的身份和密码yourpass(密码可以和服务器上实际的密码不一致)来访问这个MySQL。

绑定端口

修改my.cnf 一般在/etc/mysql/my.cnf

bind-address = 0.0.0.0

重启服务

service mysql restart