Linux命令学习记录

1 Misc

主要收集各类linux下的命令,内容没有整理,或者正在整理,整理好后会移出去到特定的文档中。

1.1 MAYBE/FUTURE enca

  • State "MAYBE/FUTURE" from "INBOX" [2015-12-03 四 16:18]

Time:[2015-10-14 三 11:33]


编码转换 更好的傻瓜型命令行工具enca,它不但能智能的识别文件的编码,而且还支持成批转换。   1.安装    $sudo apt-get install enca    2.查看当前文件编码    enca -L zh_CN ip.txt Simplified Chinese National Standard; GB2312 Surrounded by/intermixed with non-text data    3.转换   命令格式如下    $enca -L 当前语言 -x 目标编码 文件名    例如要把当前目录下的所有文件都转成utf-8    enca -L zh_CN -x utf-8 * 检查文件的编码 enca -L zh_CN file    将文件编码转换为"UTF-8"编码  enca -L zh_CN -x UTF-8 file 如果不想覆盖原文件可以这样 enca -L zh_CN -x UTF-8 < file1 > file2 参考: http://blog.csdn.net/jnbbwyth/article/details/6991425/

1.2 LATER shasum

  • State "LATER" from "INBOX" [2015-10-14 三 10:17]

Time:[2015-10-13 二 14:21]


类似 md5sum的一个命令。

1.3 MAYBE/FUTURE ifttt

  • State "MAYBE/FUTURE" from "INBOX" [2015-12-03 四 16:18]

Capture Time:[2015-10-30 五 14:59]


1.4 MAYBE/FUTURE tref可查看windows邮件中的dat文件

  • State "MAYBE/FUTURE" from "INBOX" [2015-12-03 四 16:18]
  • State "INBOX" from [2015-11-05 四 12:06]

1.5 MAYBE/FUTURE jfbterm & fbterm

  • State "MAYBE/FUTURE" from "INBOX" [2015-12-18 五 13:36]

Capture Time:[2015-12-14 一 15:45]


可以显示中文的纯字符终端,类似zhcon.

参考:http://zhidao.baidu.com/link?url=ImeEdpu_besndXYBaeQohsiyHWognPFRRcBJm4XGcL1CxWYKGA54bwRIPqaPlP_67YBKAgaayDhTN9ZhB9V5Jq

可以尝试使用fbterm
安装命令:sudo apt-get install fbterm xfonts-wqy

ctrl+alt+f1进入的纯字符界面后,先运行fbterm。
退出fbterm,可以输入exit命令。

如果不起作用,先把当前用户加入video组:
sudo usermod -g video [用户名]

1.6 MAYBE/FUTURE complete

  • State "MAYBE/FUTURE" from "LATER" [2015-12-18 五 13:40]
  • State "LATER" from "INBOX" [2015-12-18 五 13:39]

Capture Time:[2015-12-16 三 16:51]


参考:http://www.gnu.org/software/global/globaldoc_toc.html

$ complete -F funcs global
$ global kmem_<TAB><TAB>
kmem_alloc           kmem_alloc_wait      kmem_init
kmem_alloc_nofault   kmem_free            kmem_malloc
kmem_alloc_pageable  kmem_free_wakeup     kmem_suballoc

1.7 update-alternatives

当ubuntu中某个软件有多个版本共存与系统之中时,默认采用哪个软件,可以通过 update-alternatives 进行管理。

1.7.1 java配置举例

设置默认java环境 输入 sudo update-alternatives --display java 可查看信息默认的jdk信息。

如果只有一个java环境如下设置即可

$sudo update-alternatives --install /usr/bin/java java  /usr/lib/jvm/jdk1.8.0_65/bin/java 300
$sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk1.8.0_65/bin/javac 300

若有多个版本,需要修改默认的,则再输入

$sudo update-alternatives --config java
$sudo update-alternatives --config javac

将会提示:要维持当前值[*]请安回车键或者输入选择的编号,输入自己设置的优先级(300)对应的编号,按回车就可以了,再输入display查看,确定默认版本信息。会更新 /etc/alternatives 中的内容。

参考: http://blog.csdn.net/gobitan/article/details/24322561

http://www.linuxidc.com/Linux/2014-11/109216.htm

1.7.2 gcc配置举例

假设原来机器上的是 gcc-4.6 (默认 gcc 会链接到 gcc-4.6 执行), 升级gcc到4.9, 并且保留以前版本,方法如下:

$sudo add-apt-repository ppa:ubuntu-toolchain-r/test
$sudo apt-get update
$sudo apt-get install gcc-4.9
$sudo apt-get install g++-4.9
$sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.6 10
$sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.9 20
$sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/gcc-4.9 20
$sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/gcc-4.6 10
[email protected]:~/test$ sudo update-alternatives --config gcc
有 2 个候选项可用于替换 gcc (提供 /usr/bin/gcc)。

选择       路径            优先级  状态
------------------------------------------------------------
*0            /usr/bin/gcc-4.9   20        自动模式
1            /usr/bin/gcc-4.6   10        手动模式
2            /usr/bin/gcc-4.9   20        手动模式

要维持当前值[*]请按回车键,或者键入选择的编号:
[email protected]:~/test$ sudo update-alternatives --config g++
有 2 个候选项可用于替换 g++ (提供 /usr/bin/g++)。

  选择       路径            优先级  状态
------------------------------------------------------------
*0            /usr/bin/gcc-4.9   20        自动模式
1            /usr/bin/gcc-4.6   10        手动模式
2            /usr/bin/gcc-4.9   20        手动模式

要维持当前值[*]请按回车键,或者键入选择的编号:

1.7.3 添加举例:

假设源代码安装php在 /usr/local/develop/php-5.6.19, 那么 sudo update-alternatives --install /usr/bin/php5.6.19 php5.6.19 /usr/local/develop/php-5.6.19/bin/php 49

会导致: /usr/bin/php5.6.19 链接被创建,指向 /etc/alternatives/php5.6.19, 而 /etc/alternatives/php5.6.19 指向 /usr/local/develop/php-5.6.19/bin/php.

http://blog.csdn.net/baggio1006/article/details/6338623

http://persevere.iteye.com/blog/1479524

1.8 ps

支持三种类型的选项: Unix风格: 选项可能会被分组,但是必须以 - 开始 BSD风格: 选项可能会被分组,不以 - 开始 GUN长选项风格: 选项以 =–=开始

ps -a 列出所有与terminal有关的进程,不包含session leader.

ps a 列出所有与terminal有关的进程

ps -Aps -e, 列出所有的进程。

ps x 列出所有你拥有的进程

ps ax 列出所有进程

没有 -x

ps -u <userlist>ps --user <userlist> 列出 EUID为 =<userlist> 对应的名称或者ID的进程。 <userlist> 可以为空格分割的字符串,或者逗号分割。 ps -p "1 2" -p 3,4.

ps u 以用户为主显示,结果第一列是用户ID。

USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
1032      9392  0.0  0.0  10484  1732 pts/11   S+   11:59   0:00 man ps

ps -U <userlist> 列出 RUID为 <userlist> 对应的名称或者ID的进程。 <userlist> 可以为空格分割的字符串,或者逗号分割。 ps -p "1 2" -p 3,4.

ps U <userlist>ps --user <userlist> 列出 EUID为 <userlist> 对应的名称或者ID的进程。 <userlist> 可以为空格分割的字符串,或者逗号分割。 ps -p "1 2" -p 3,4.

1.9 top

1.9.1 查看指定进程号的进程信息

$top -p <pid>

可以交互界面过滤显示EUID等相关信息。

1.10 sudo

user 用户而非 root 运行 xxxsudo -u user xxx

[email protected]:/usr/local/develop/etc/prosody/conf.d# ls -l /usr/local/develop/etc/prosody/certs/120.78.198.148.key
-rw------- 1 prosody prosody 1679 Dec  5 14:46 /usr/local/develop/etc/prosody/certs/120.78.198.148.key
[email protected]:/usr/local/develop/etc/prosody/conf.d# sudo -u prosody cat /usr/local/develop/etc/prosody/certs/120.78.198.148.key
-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEAzC0PJjXaSmNDW32KqWwD8x7W+DLiLQMAuhziFYo74+cRS8jk
IGMoNZMnlsOJd+9c1iKR4NmlSD4vDODjgYw6HawN9uZZAWxFjlWabr9VSSkKWHTd
wlgvsZWT2UFeBFTp6NeWS6DRDbFe5+G/CV1UbJbh5A6mEeKHArBftLNyduwI/wx+
VQWSZK2csquDxcSNpJh+XBmB6WDWcmNSFi80QSlYPM7YaFkGXF9SooLPTFZV0wMV
pk0DS0bZn5AQySDmapBpBZ/DZ61pITxBu40vBeHV0njeq7f6sqL5FnxuYg3w+Arl
h5+F0BzBrwA8qk1lhN3sT/zfyh9hJXpLMWoSGQIDAQABAoIBAFr24D730y89Fi9W
uUZOF1xjqwadNOM06UgBwkAyfAhHVA9dizVat/lWfFbQ+xfyDnxgnnl8vgR3n+Ku
9u0qmmHJ29baPWFC6aJGRS1+FPMpU7ChMIN7YpRNvbcXRlnLswLHufArz7e4BD5u
9vunFwviFPXUCO0C7X+nMJyDLkYIirN5AxmwCSII1FLB9X3fwtKN2+urevsy+e6+
i7FyS9AqA19OpFt0b4iZeWDErh3emR/XaD/DJnvYP8Po2RUJnmyUR9liO55AZjc0
JLx9FuCVNymXQgnWwk3zxQteTQaHTzhKt4SK3QlPNAbGK5Mv32Zw0X17mxETKIj3
tz+xIQECgYEA9JRbEF4KGg85Ea8/Meyrqkk8LdSH5zTRMJkuaSFI/yaeu3rauBJ7
rmg859i+YmvAuQ4Zh1BlyY1B6Mp2Pyok5BZEn6q1xrJAARsEwVNfAkP0REBXgK/j
sttSaBXkk51Dp0Ou1HNpW2V40ySjQDWrMkKCON6Y9msSVoKUJ4K98WkCgYEA1bW6
0tKRmfLaj6V3OX4lvEj+uUXeYubM8RzxIbOP8IS81oIAcGtAPB2mSK35HI9jl7KV
R6PRiDRlCdYqRqLWCDOxA9I99KNdns76HEqiebk2SlWzEoleTQZ8ArEyy1kILDah
izhHVip+W/HAIOZfk/JphP0n3YvjGaVDmfbPVTECgYA+njkOYLU/ZMRctbx9QLXW
vDdPGInO9SPVyHIsclwpDy82msaiuAC4b3GgfkqIEkReXLDGhxv4VVUZj7RkiZq2
VsktA9zUSVC/t7Yo9PpvLwy76Kk+hknKwgJAKdLCxFHM4jRBqmbAAqPDky7EwrjY
/lQu0TbiaBli0r2xu/R7eQKBgQCu5TTpyA4EkW0w1deGo6g6OPrNoVJoWj4qrObi
D9OioN7yJh454mwFRraJEGeoaei1gx8MLBMUhtyRekXK3QSQXc1mNS8jAHdjujuR
37qsJ1k46H3Ok8ErBD2E7oOFS22W0XbPOtWWvNwAXw4/XomlyGN2xL9VXmAS4t86
J3RyYQKBgQCRguSkLPiN3nPRj8PxhA9Bp7eDkGqHxCgYd/aAc1Il4TJsd/6ndXi6
X4hgO2omjEZjPfGi4Mf0DGKMuc2smoxO2U2kfi5gmLaYuszhtD5KAkr0JjSgllK/
TD5qOjaEsBSKOeCYLFYeLt77NE3QiviSoPQRBU+iEZZK0OSqhEeyqQ==
-----END RSA PRIVATE KEY-----
[email protected]:/usr/local/develop/etc/prosody/conf.d# sudo -u quietheart cat /usr/local/develop/etc/prosody/certs/120.78.198.148.key
cat: /usr/local/develop/etc/prosody/certs/120.78.198.148.key: Permission denied

1.11 字体相关

查看字体文件: fc-scan <font file>, fc-query <font file> 可以看到字体文件的信息,比如 *.ttf 文件信息。

fc-list 列出字体信息。

具体参见:http://www.360doc.com/content/14/0612/13/203871_385965856.shtml

1.12 dot相关

vimdot 可以直接编辑dot文件并且预览。

1.12.1 FAQ

1.12.1.1 NEXT 如何控制孤立节点的左右次序?
  • State "NEXT" from [2017-05-10 三 10:35]
1.12.1.2 NEXT 如何定义有名的style便于共享,而非每次都指定style?
  • State "NEXT" from [2017-05-10 三 10:35]

1.13 LATER repquota -avs

  • State "LATER" from "INBOX" [2016-12-15 四 17:21]

Capture Time:[2016-09-01 四 15:32]


查看磁盘配额?

1.14 tr

1.14.1 tr将windows下的文件换行符转为linux的   @study

有些系统的文件换行符号是不一样的,unix下都是一个'n', 但是windows下是'rn'

转换可以这样:

$tr -d 'r' < original.pem > fixed.pem

参考:http://how2ssl.com/articles/working_with_pem_files/