Mac下通过sshfs挂载linux远程目录

之前的电脑使用的是linux,想把之前的一些文件拷贝过来,直接ssh操作起来又不是太方便

SSH Filesystem(简称 SSHFS)是一个以 SSH为基础的文件系统,它可以让你直接通过 SSH 挂载远程 Linux 服务器上的硬盘,由于现在的 Linux 服务器几乎都支持 SSH,所以只要安裝 SSHFS client 之后,对于任何可以使用 SSH 登录的服务器,都可以直接挂载上面的硬盘。

安装时,先下载OSXFUSE 和 SSHFS 两个文件,先安装 OSXFUSE ,再安装 SSHFS。

https://osxfuse.github.io/

执行命令

sshfs -p port ranger@xx.xx.xx.xx:/ /Users/ranger/share

卸载时要使用 umount:

umount remote_disk

 

cheat——linux命令好帮手

问题

使用linux命令时经常记不住选项,尤其是使用了很多复杂选项的,有的人习惯查看man pages,但man pages里的描述太冗长了,太影响效率,这个时候使用cheat是个不错的选择

cheat

什么是cheat

cheat工具是一款非常适合Linux系统管理员的工具,他能帮助你很简单快捷的熟悉Linux下系统命令的使用方法

tar命令举例

我们经常会使用tar命令,但是很少有人能直接写对tar后面的选项,这时看看cheat怎么做的
[java]
➜ /Users/ranger >cheat tar
# To extract an uncompressed archive:
tar -xvf /path/to/foo.tar

# To create an uncompressed archive:
tar -cvf /path/to/foo.tar /path/to/foo/

# To extract a .gz archive:
tar -xzvf /path/to/foo.tgz

# To create a .gz archive:
tar -czvf /path/to/foo.tgz /path/to/foo/

# To list the content of an .gz archive:
tar -ztvf /path/to/foo.tgz

# To extract a .bz2 archive:
tar -xjvf /path/to/foo.tgz

# To create a .bz2 archive:
tar -cjvf /path/to/foo.tgz /path/to/foo/

# To list the content of an .bz2 archive:
tar -jtvf /path/to/foo.tgz

# To create a .gz archive and exclude all jpg,gif,… from the tgz
tar czvf /path/to/foo.tgz –exclude=\*.{jpg,gif,png,wmv,flv,tar.gz,zip} /path/to/foo/

# To use parallel (multi-threaded) implementation of compression algorithms:
tar -z … -> tar -Ipigz …
tar -j … -> tar -Ipbzip2 …
tar -J … -> tar -Ipixz …
[/java]
cheat会列出常用的一些例子,简单明了

更多cheat安装和使用请自行github查看

https://github.com/chinageek/cheat.git

wget下载文件Can not write to和File name too long的问题

在Linux环境下,有时候需要wget下载一个文件,而下载地址中的文件名却非常长,导致下载失败,提示:Can not write to和File name too long

解决这个问题只需要把下载的文件输出为一个固定的文件名,比如:gperftools-2.4.tar.gz

wget -c -O gperftools-2.4.tar.gz https://github.com/gperftools/gperftools/releases/download/gperftools-2.4/gperftools-2.4.tar.gz
tar -zxvf libunwind-1.1.tar.gz

ubuntu设置开机后台自动运行

写个sh脚本

我们可以在比如/home下新建个文件叫做dl.sh ,在里面写上我们需要运行的命令,然后保存。

[java]
#!/bin/bash
#文件名:dl.sh
#command
[/java]

我们可以让他后台运行 nohup sh /home/dl.sh

加入开机运行

现在还不可以,你同样需要开机输入命令才可以。

这个时候我们需要在/etc下编辑一个叫rc.local 的文件,需要root权限。在终端先su获取root权限如果你有root帐号的话,然后 vim /etc/rc.local 编辑,在最下面输入 nohup bash /home/dl.sh>/home/d.txt & 保存。

这个时候你可以reboot重启了,测试下看看能不能后台自动运行,重启后你可以先去看下我们要他输出d.txt,你会发现竟然是/home/dl.sh line 3 :sslocal:command not found,擦!这什么情况,不能启动?别着急…

经过一番搜索我们发现原来linux是找不到sslocal这条命令?需要添加路径,我们发现sslocal 和ssserver这两个命令是被存在 /usr/local/bin/下面的,其实不用去profile添加了,直接把这两个文件移动到/bin下

在vim保存时获得sudo权限

在维护线上服务的时候,经常要编辑一些不属于操作用户的文件,就是只有r权限的那种,每次保存都会提示read only。只能先记下来改了什么,然后再退出,然后 sudo vim 再做保存
下面的命令可以不退出vim进程,直接用vim命令获取sudo权限,然后直接保存文件

[shell]

:w !sudo tee %

[/shell]

命令:w !{cmd},让 vim 执行一个外部命令{cmd},然后把当前缓冲区的内容从 stdin 传入。
tee 是一个把 stdin 保存到文件的小工具。
而 %,是vim当中一个只读寄存器的名字,总保存着当前编辑文件的文件路径。
所以执行这个命令,就相当于从vim外部修改了当前编辑的文件。

IntelliJ idea 配置 jdk

安装java 7

sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java7-installer

ubuntu下配置

vim .bashrc

export JAVA_HOME=/usr/lib/jvm/java-7-oracle
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export M2_HOME=/home/taowang/apache-maven-3.0.4
export PATH=${JAVA_HOME}/bin:${ANT_HOME}/bin:${M2_HOME}/bin:$PAT

IntelliJ idea 设置

File–>Project Structure: project SDK–New a jdk.

如何取消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 阅读详细 »