Tag

Unix

13 posts

Unix (all-caps UNIX for the trademark) is a family of multitasking, multiuser computer operating systems that derive from the original AT&T Unix, developed in the 1970s at the Bell Labs research center by Ken Thompson, Dennis Ritchie, and others.

Code

Here document, another way to write multiline into one file

Here documents are indeed a powerful feature in Unix-like operating systems, allowing for the efficient creation and manipulation of files from within a shell script. They are particularly useful when you need to insert multiple lines of text into a file without having to resort to looping constructs or temporary files.

Code

fstab 文件格式检查

我们通常编辑 /etc/fstab 来确定启动时候挂载的硬盘, swap 等. 若文件内容有误, 重启后的效果就是直接挂了, 然后必须通过安全模式或者单用户模式进去修改, 这很麻烦.

可否不重启就检查下 fstab 呢? 答案是可以的.

Code

zfs+freebsd,小手一抖写错启动参数怎么办

freebsd 下摆弄启动参数,不小心把 /etc/rc.conf 改错了,怎么办? 每次登录都启动直接执行rc中的内容,然后就跑飞了,这个怎么整是好.

启动后首先使用single mode,可以进入文件系统. 但是直接修改是不行的,它说是readonly file system,需要挂载下才行.

Code

如何rsync同步非标准SSH接口

一般情况下,我们用rsync可以很容易的同步一个远程目录.

Bash
$ rsync -avzh --progress --delete \
    name@remote_host:source_dir target_dir

这样就把远程的一个目录同步回来了.

但是现在问题来了,当 port 为非标准的 22 端口时, 我们应该怎样加参数呢?比如有时候我们会 NAT 到 2222 端口.

Code

修改普通用户的最大文件打开数

使用到mongo,redis等数据库的时候,往往会遇到这样一个坑。某mongo跑着跑着突然没了,某redis启动先给个warning,仔细一看log说最大文件打开数不够..

# You requested maxclients of 10000 requiring at least 10032 
# max file descriptors.
# Redis can't set maximum open files to 10032 because of OS error: 
# Operation not permitted.
# Current maximum open files is 1024. 
# maxclients has been reduced to 4064 
# to compensate for low ulimit. 
# If you need higher maxclients increase 'ulimit -n'.

Code

locate命令故障的解决

locate是一个系统命令,用于建立文件索引,当我们需要寻找什么文件的时候,只要敲入

locate xxx
它就会搜索全系统中匹配这个名字的文件。 但是在某个新的机器里面,我locate某文件,始终显示如下的错误信息:
Bash
locate: can not stat () 
    `/var/lib/mlocate/mlocate.db': No such file or directory

Code

Qt 下 ibus 托盘跟随问题

经常使用一些QT的程序。因为这玩意儿是跨平台的,所以很受大家喜欢。 但是,作为一个使用ibus+qt的中文使用者,常常遇到这样悲剧的问题--输入中文的时候,ibus成功打开,输入也没啥大问题,除了,每次输入中文,那个托盘总是在左下角晃荡--我了个去,锻炼我的眼球么? 在网上常常可以看到各种解决,不过大多认为是ibus的问题,建议我们安装ibus-qt这玩意儿。安装完毕,没有任何效果。以为要重启ibus,依然失败,重启整个系统,依旧。或许这东西对后面的步骤有用,但总而言之,至少说明,光是安装这东西是没啥用的。 然后在继续找,然后发现了这篇博文。

Code

隐藏 gedit 的 debug 信息

linux下编辑文件,常用的有vi/vim,emacs,还有gedit -- 当然,还有谁有其他各种喜好。 emacs,vi什么的自然是控制台下搞,干干净净。 但是到了gedit的时候,因为是X display ,所以控制台方面就各种肆无忌惮的放warning。

因为是写代码么,所以常常是shell跑到某个位置,然后vi/emacs/gedit一个命令打开文件,开始编辑。

Code

statfs获取硬盘信息

statfs是一个很有用的linux库函数。在它的帮助下,我们可以很容易得到硬盘信息啥的。 以前全是调用command命令,弱爆了。如果用 man 2 statfs 命令可以得到很多其使用方法。本post就简单写个demo表示下存在感

Code

linux下动态链接库的做法

我理解中,.so文件就相当于windows下的.dll文件。 环境不一样,感觉就不一样。 windows下的.dll文件虽然做了好些,但是怎么用makefile写还是不怎么了解。到了linux下更是完全扯着蛋了。

随便写了个so文件的sample。如有误,看官请指出。

Code

grub之修改背景

以前修改背景是

# sudo -u gdm dbus-launch gnome-control-center

这种操作手法只能改变用户登录界面的背景,还有个grub登陆的界面--纯黑色的,有时候想要换个新鲜的 然后找到grub的修改方式。