Tag: linux

  • Linux 命令行上的文字处理

    总是有些用户, 明明是自己手抖点错了, 却偏偏要怪服务器出问题. 如果让我选择相信一个人还是一台机器, 那… 还是选机器比较放心. 当然也不能冤枉好人, 于是如何从若干 GB 的服务器日志里找到线索就成为解决问题的关键了. 首先是 grep. grep 就好像是个过滤器, 将无关的内容滤掉, 却从不漏下真相. 假设服务器日志是 server.log, 其中包含时间, 地点, 人物: 1, 找出所有含 beijing 的记录 grep beijing server.log 2, 包含 2013-12-01 当天, 在 beijing 关于 user 的记录 grep  -E -e ‘2013-12-01.*beijing.*user’ server.log 3, 也可以将 grep 串联起来, 逐步缩小包围圈, 这样如果个别记录不符合时间, 地点, 人物的顺序, 也不会被漏掉. 当然我觉得日志还是规矩一点的好. grep ‘2013-12-01’ server.log […]

  • MBP 笔记本与 Fedora

    最近本来就忙, 老婆的 MacBook Pro 还出了问题. 于是我趁机游说: 跟我一起用 Fedora 吧, 不比 OSX 丑, 速度更快还不花钱. 估计最后一点打动了老婆的心, 于是在答应老婆不丢文件的前提下, 给她的 MBP 装上 Fedora. 不丢文件当然简单, 我找出一块闲置的硬盘换上, 原来的硬盘留着不动, 还有更保险的方法么? 有的话请写下面回复里吧. Fedora 19 已经支持 EFI 启动了, 所以用 F19 光盘就能直接启动安装, 不再需要 rEFIt 这类的 EFI 启动工具. 安装过程基本上没有亮点, 很顺利就完成了. 取出光盘, 从硬盘启动后, 嗯, 启动画面有点花了… 登录后发现的第一个问题是: 无线网络没有开启. 一开始我有点失望, 因为 Ubuntu 的话肯定就支持了. 但从这里就能看到 Fedora 与 Ubuntu 不同的处世态度. 由于无线网卡驱动并非开源(类似 […]

  • 你好 Fedora 19

    最近我看到 Fedora 19 发布, 装在 U盘上启动了一下, 然后我就决定在我的 ThinkPad 上用 Fedora 代替 Ubuntu 了. 主要原因就是 Ubuntu 已经不像当年的 Ubuntu 了. 6年前我开始使用 Ubuntu 代替 Windows, 可以确定的是因为当年的 Ubuntu 做到了很多其它 Linux 分支没做到的事情, 就是简单易用: 不用担心中文输入, 不用担心显卡或者打印机驱动, 这让我当年那个 Linux 初级用户增长了很多信心. 每一次 Ubuntu 升级, 都变得比上一次更容易. 但为了支持更多的应用, Ubuntu 不知不觉的变得臃肿起来, 而且稳定程度也在下降. 更让我失望的是, Ubuntu 的娘家 Canonical 开始有点与开源社区分庭抗礼的意思了, 它自家的 Unity 以及即将到来的 Mir 计划都是如此. 一个公司要赚钱那是天经地义的啦, Canonical 比起 MS […]

  • 在 Linux 中充分利用多核 CPU 来转码

    上回写的<听美剧, 练英语听力>之后, 发现忘了放个批量处理的脚本. 下面补上, 顺便练习一下多核心协同处理. 嗯, 手机都4核了不是? 用到的命令类似: avconv -i your.mkv -vn -acodec libmp3lame -ac 2 -f mp3 your.mp3 简单的 bash 单循环写法: ls *.mkv |while read i; do avconv -i $i -vn -acodec libmp3lame -ac 2 -f mp3 $i.mp3; done 这就只用到了一个 CPU 核心. 如果将 avconv 放到后台执行就可以做到多进程, 但又不方便控制进程数, 当进程数远远大于 CPU 核心数时就可以体验一下一台服务器快被烤熟时的感觉了. 后来发现 xargs 支持指定数目的进程, 简直是无法要求更多了: ls *.mkv […]

  • 给 Ubuntu Linux 添加一个大硬盘

    曾经预测 3.5″ 的硬盘即将被 2.5″ 硬盘取代. 无奈存储业不争气, 2.5″ 硬盘的容量依旧远远落后于 3.5″. 下面是在 Ubuntu Linux 中使用命令行添加一个 3TB 硬盘的过程. 首先使用 parted (fdisk已退休), 假设新硬盘是第二块, 因此是 sdb: (parted) select /dev/sdb  Using /dev/sdb (parted) print Model: ATA WDC WD30EZRX-00M (scsi) Disk /dev/sdb: 3001GB Sector size (logical/physical): 512B/4096B Partition Table: msdos 可以看出, 出厂的硬盘使用的是旧式的 MBR 分区表, 不支持大于 2TB 的分区. 那么接班的是谁呢, 是 GPT (parted) mklabel […]

  • 继续在 Linux 世界里找东西

    续上一篇. 对于新手老手, 都有一些文件是要找的. 自己的脑子永远不会比一块几百元的硬盘更方便存东西, 所以与其记住每个文件在哪, 不如记住如何找到这些文件. 当然, 养成一个一致的文件存放习惯也很有帮助. 找不常更改的系统文件, 例如某个命令的”真身”位置, 我一般用 locate 命令. Locate 命令是从有索引的数据库里搜索匹配的文件, 所以速度最快. 但有可能数据库更新的不够及时, 也就是说数据库里搜到的文件实际在磁盘上可能不存在了. 因此我不推荐使用 locate 来搜索经常更改的用户文档. 使用方法很简单, 例如我要找 lsb-release (LSB = Linux Standard Base): ~ locate lsb-release /etc/lsb-release /usr/share/bug/lsb-release /usr/share/doc/lsb-release /usr/share/doc/lsb-release/README.Debian /usr/share/doc/lsb-release/changelog.Debian.gz /usr/share/doc/lsb-release/copyright /var/lib/dpkg/info/lsb-release.list /var/lib/dpkg/info/lsb-release.md5sums /var/lib/dpkg/info/lsb-release.postinst /var/lib/dpkg/info/lsb-release.postrm /var/lib/dpkg/info/lsb-release.prerm 输入 locate file, 那么 locate 会自动按照 *file* 的规则来查找, 也就是说任何包含 file 的文件以及文件夹都会被搜出来的. 一个更强力的命令是 […]

  • 在 Linux 世界里找东西

    今天看到年轻的同事在那费力的找系统里某个文件, 我就指点了一下如何使用 find 命令找文件. 估计同事对我的敬仰又高了些吧, 开玩笑了, 我还羡慕他年轻呢… 说实话我的 Linux 水平也顶多算是唬人阶段, 抽空总结一下, 共勉. 首先是互联网里找某个域名的信息, 用 dig (就是挖), 很简单的. $ dig raynix.info ; <<>> DiG 9.9.2-P1 <<>> raynix.info ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 37258 ;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 6, ADDITIONAL: 13 ;; […]

  • 简单的 Shell Singleton 脚本

    有的时候, 多线程能提高性能, 但偶尔也可能希望有且只有一个线程在运行, 例如系统维护脚本, 如果前一个脚本还没有完成, 而下一次检查时间到了, 那不小心同一个脚本可能就会被运行多次了. 最近发现 pidof 命令很适合此目的, 下面是样本脚本: #!/bin/bash script_name=`basename $0` if [ “$(pidof -x $script_name|wc -w )” -gt 2 ]; then echo ‘More than one instance is running. Exiting…’ exit 1 fi echo ‘Just me alone, get to work…’ for i in 1 2 3 4 5; do echo $i sleep […]