标签: linux

如何取消vim粘贴时自动注释功能

vim在粘贴内容的时候,如果遇到以#开始的注释行,会自动将后续的所有行进行注释。也许这个功能在某些情况下是很有用的,但很多时候是不需要的,需要取消这个默认的功能。

取消这个功能也很简单,只需要在根目录下编辑.vimrc文件(如果没有,就创建该文件),在其中添加下面的内容:

set paste
保存即可。

linux中下载迅雷链接

迅雷下载协议是经过加密的,如:
thunder://QUFodHRwOi8vd3d3LmphdmFyYW5nZXIuY29tL2FyY2hpdmVzLzE1NjRaWgo=/
直接在Linux下面是没有办法下载的。

在ubuntu中
在终端下用echo url|base64 -d 来解密,并显示地址,如(URL去掉头和尾):
echo QUFodHRwOi8vd3d3LmphdmFyYW5nZXIuY29tL2FyY2hpdmVzLzE1NjRaWgo= | base64 -d

显示结果是:AAhttp://www.javaranger.com/archives/1564ZZ

所以解密后的地址是:http://www.javaranger.com/archives/1564
然后在使用下载工具进行下载!

一些实用的linux命令

一、cd的几个小技巧

cd – #回到上次所在目录,这个技巧我原来还真是不知道,感觉还是比较有用,省略了很多输入。
cd #回到主目录
cd ~ #同样也是回到主目录
当进入到一个很深的目录后,一不小心从该目录跳出了,该怎么办呢,别急,这时有cd – 命令可以快速跳回上一次cd命令执行之前的目录中,通常也在脚本中用该命令实现:进入某一目录,执行脚本,然后使用cd – 回到执行命令之前的目录下。

二、查看进程树

ps aufx
aufx可以查看进程的派生过程,可以看到每一个进程的父进程以及更上一代的父进程。对于理解程序的调用流程有帮助。

三、搜索history

通常复杂的命令行,我们只能记住其中的某个特定的命令字,将整个命令行全部再敲击一边,非常费时,history | grep “关键字” 不失为一个好办法。

使用 Ctrl + r 逆向搜索历史命令,敲入少量关键字,即可快速定位到所需要的命令行。另外结合 Ctrl + p 和Ctrl + n还可以向前和向后找下一条命令。

四、统计history历史

如下一行脚本即可统计历史上使用的命令行的次数,并排出前十名,打印到屏幕:

history | awk ‘{CMD[$2]++;count++;}END { for (a in CMD)\
print CMD[a] ” ” CMD[a]/count*100 “% ” a;}’ | grep -v “./” \
| column -c3 -s ” ” -t | sort -nr | nl | head -n10
我的系统上面打印的结果是:

2014-08-23 09:22:54 的屏幕截图

linux下boot空间不足解决方法

在安装linux的过程中都喜欢把boot挂单独挂分区,一般设置500M,
可随着linux升级,往往会攒下好几个内核,某一天系统会提示你升级失败,空间不足了。。。
既然已经知道是boot空间不足了,那首先我们看看里面都有神马东西!!
ranger@ranger:~$ ls /boot
abi-2.6.35-25-generic memtest86+.bin
abi-2.6.35-27-generic memtest86+_multiboot.bin
abi-2.6.35-28-generic System.map-2.6.35-25-generic
config-2.6.35-25-generic System.map-2.6.35-27-generic
config-2.6.35-27-generic System.map-2.6.35-28-generic
config-2.6.35-28-generic vmcoreinfo-2.6.35-25-generic
grub vmcoreinfo-2.6.35-27-generic
initrd.img-2.6.35-25-generic vmcoreinfo-2.6.35-28-generic
initrd.img-2.6.35-27-generic vmlinuz-2.6.35-25-generic
initrd.img-2.6.35-28-generic vmlinuz-2.6.35-27-generic
lost+found vmlinuz-2.6.35-28-generic
我们可以看到都是一些内核启动文件,很明显有些是我们不需要的,其实以上都还是我已经卸载了俩比较老的内核的情况了,没商量,不需要的就当垃圾处理掉。
首先请用uname -a看下自己当前启动的是哪个内核。
ranger@ranger:~$ uname -a
Linux expired 2.6.35-28-generic #49-Ubuntu SMP Tue Mar 1 14:39:03 UTC 2011 x86_64 GNU/Linux 阅读详细 »

Linux系统巡检常用命令

linux监控

Linux系统需要定期巡检,以检查服务器软硬件使用情况,相当于对人的体检,确保可以及时发现问题、解决问题,降低损失,常用的巡检命令如下:

# uname -a # 查看内核/操作系统/CPU信息
# head -n 1 /etc/issue # 查看操作系统版本
# cat /proc/cpuinfo # 查看CPU信息
# hostname # 查看计算机名
# lspci -tv # 列出所有PCI设备
# lsusb -tv # 列出所有USB设备
# lsmod # 列出加载的内核模块
# env # 查看环境变量
# free -m # 查看内存使用量和交换区使用量
# df -h # 查看各分区使用情况
# du -sh < 目录名> # 查看指定目录的大小
# grep MemTotal /proc/meminfo # 查看内存总量
# grep MemFree /proc/meminfo # 查看空闲内存量
# uptime # 查看系统运行时间、用户数、负载
# cat /proc/loadavg # 查看系统负载
# mount | column -t # 查看挂接的分区状态 阅读详细 »

有用的linux命令——chattr

一般Linux的文件系统都是ext2/ext3。ext文件系统的文件,目录会有一些文件系统所特有的属性。我们之前所熟知的rwx等属性是linux操作系统赋予文件的属性,和登录用户相关。而本文所说的这个特性是文件系统相关的,它不受登录用户的限制。
ext3所包括的文件属性很多,主要涉及到文件在文件系统上的存储、是否启用日志、是否更新atime、是否采用压缩等多种高级特性,其中我们常见的一种属性就是防删除。
使用lsattr命令可以查看文件的文件系统属性,
lsattr

横杠-表示未设置属性,默认情况下新建的文件是没有任何属性的,可以用chattr命令来进行修改。

阅读详细 »

Ubuntu 14.04 安装搜狗输入法

linux下终于可以使用搜狗了,更新日志:http://pinyin.sogou.com/linux/changelog.php

1.卸载ibus输入法: sudo apt-get remove ibus

2.添加安装源

sudo add-apt-repository ppa:fcitx-team/nightly

3.更新源  sudo apt-get update

4.安装fcitx和fcitx-sunpinyin输入法(可以不安装)

sudo apt-get install fcitx fcitx-config-gtk fcitx-sunpinyin(拼音)

sudo apt-get install fcitx fcitx-config-gtk fcitx-sogoupinyin(搜狗)

5.安装码表

sudo apt-get install fcitx-table-all

6.接下来输入:im-switch -s fcitx -z default 把fcitx设置为默认输入法或者通过:系统—系统管理—语言支持,打开语言和文本设置项,在语言分页中的键盘输入方 式系统中选择fcitx.

而且此时使用可能快捷键不能正常切换,可能原因是与原来系统ibus设置快捷键冲突,修改快捷键不一样就可以了。

 

工作中用到的一些linux命令

1.根据access计算qps

[bash]
awk ‘BEGIN{time="";cnt=0;} {if ( time != $4 ) { print time "\t" cnt ; time = $4; cnt = 1; } else { cnt++; }}’ access.2014-02-02.log | sort -k 2 -nr | more
[/bash]

2.Linux内存实际使用

[bash]
echo Mem Used: $(free -m | grep ‘Mem:’ | awk ‘{print $3-$6-$7}’)M
[/bash]

3.同时看多机日志

[bash]
atnodes ‘zgrep /home/q/www/hotel-tts/logs/request.log*’ l-hs[01-02].wap.cn1 | sort -t ‘#’ -k1,1
[/bash]

4.文件按大小排序

[bash]
ll -S
[/bash]

5.文件传输
[bash]
nc -l 8888 < fileName
nc host 8888 > fileName
[/bash]

Linux命令行下常用svn命令

在ubuntu下工作接近一年了,慢慢熟悉了命令行操作,最近公司版本控制也切到了git,对比下git和svn的语法还是有很多相似的

1、Linux命令行下将文件checkout到本地目录

svn checkout path(path是服务器上的目录)

例如:svn checkout https://svn.sinaapp.com/your_app_name

简写:svn co

2、Linux命令行下往版本库中添加新的文件

svn add file

例如:svn add test.php(添加test.php)

svn add *.php(添加当前目录下所有的php文件)

3、Linux命令行下将改动的文件提交到版本库

svn commit -m “test“

例如:svn commit -m “test“ test.php

简写:svn ci

4、Linux命令行下的加锁/解锁

svn lock -m “LockMessage“ [--force] PATH

例如:svn lock -m “lock test file“ test.php

svn unlock PATH

5、Linux命令行下更新到某个版本

svn update -r m path

例如:

svn update如果后面没有目录,默认将当前目录以及子目录下的所有文件都更新到最新版本。

svn update -r 200 test.php(将版本库中的文件test.php还原到版本200)

svn update test.php(更新,于版本库同步。如果在提交的时候提示过期的话,是因为冲突,需要先update,修改文件,然后清除svn resolved,最后再提交commit)

简写:svn up

6、Linux命令行下查看文件或者目录状态

1)svn status path(目录下的文件和子目录的状态,正常状态不显示)

【?:不在svn的控制中;M:内容被修改;C:发生冲突;A:预定加入到版本库;K:被锁定】

2)svn status -v path(显示文件和子目录状态)

第一列保持相同,第二列显示工作版本号,第三和第四列显示最后一次修改的版本号和修改人。

注:svn status、svn diff和 svn revert这三条命令在没有网络的情况下也可以执行的,原因是svn在本地的.svn中保留了本地版本的原始拷贝。

简写:svn st

7、Linux命令行下删除文件

svn delete path -m “delete test fle“

例如:svn delete svn://192.168.1.1/pro/domain/test.php -m “delete test file”

或者直接svn delete test.php 然后再svn ci -m ‘delete test file‘,推荐使用这种

简写:svn (del, remove, rm)

8、Linux命令行下查看日志

svn log path

例如:svn log test.php 显示这个文件的所有修改记录,及其版本号的变化

9、Linux命令行下查看文件详细信息

svn info path

例如:svn info test.php

10、Linux命令行下比较差异

svn diff path(将修改的文件与基础版本比较)

例如:svn diff test.php

svn diff -r m:n path(对版本m和版本n比较差异)

例如:svn diff -r 200:201 test.php

简写:svn di

11、Linux命令行下将两个版本之间的差异合并到当前文件

svn merge -r m:n path

例如:svn merge -r 200:205 test.php(将版本200与205之间的差异合并到当前文件,但是一般都会产生冲突,需要处理一下)

12、Linux命令行下SVN 帮助

svn help

svn help ci

以上是常用命令,下面写几个不经常用的

13、Linux命令行下版本库下的文件和目录列表

svn list path

显示path目录下的所有属于版本库的文件和目录

简写:svn ls

14、Linux命令行下创建纳入版本控制下的新目录

svn mkdir: 创建纳入版本控制下的新目录。

用法: 1、mkdir PATH…

2、mkdir URL…

创建版本控制的目录。

1、每一个以工作副本 PATH 指定的目录,都会创建在本地端,并且加入新增调度,以待下一次的提交。

2、每个以URL指定的目录,都会透过立即提交于仓库中创建.在这两个情况下,所有的中间目录都必须事先存在。

15、Linux命令行下恢复本地修改

svn revert: 恢复原始未改变的工作副本文件 (恢复大部份的本地修改)。revert:

用法: revert PATH…

注意: 本子命令不会存取网络,并且会解除冲突的状况。但是它不会恢复被删除的目录

16、Linux命令行下代码库URL变更

svn switch (sw): 更新工作副本至不同的URL。

用法: 1、switch URL [PATH]

2、switch –relocate FROM TO [PATH...]

1、更新你的工作副本,映射到一个新的URL,其行为跟“svn update”很像,也会将服务器上文件与本地文件合并。这是将工作副本对应到同一仓库中某个分支或者标记的方法。

2、改写工作副本的URL元数据,以反映单纯的URL上的改变。当仓库的根URL变动(比如方案名或是主机名称变动),但是工作副本仍旧对映到同一仓库的同一目录时使用这个命令更新工作副本与仓库的对应关系。

17、Linux命令行下解决冲突

svn resolved: 移除工作副本的目录或文件的“冲突”状态。

用法: resolved PATH…

注意: 本子命令不会依语法来解决冲突或是移除冲突标记;它只是移除冲突的相关文件,然后让 PATH 可以再次提交。

18、Linux命令行下输出指定文件或URL的内容。

svn cat 目标[@版本]…如果指定了版本,将从指定的版本开始查找。

svn cat -r PREV filename > filename (PREV 是上一版本,也可以写具体版本号,这样输出结果是可以提交的)

grep:Binary file xx.log matches

grep “Full GC” gc.log时输出:
Binary file gc.log matches
google一下:grep认为这是二进制文件,解决方案:grep -a。
grep -a ”Full GC” gc.log