方案1

SSH是一个非常伟大的工具,如果你要在互联网上远程连接到服务器,那么SSH无疑是最佳的候选。SSH是加密的,OpenSSH加密所有通信(包括密码),有效消除了窃听,连接劫持和其它攻击。本文将为大家介绍25个最佳的SSH命令,希望您在阅读之后能获得一些启发。

AD:51CTO 网+ 第十二期沙龙:大话数据之美_如何用数据驱动用户体验

【51CTO精选译文】编辑导读:任何一个系统管理员或站长对SSH都不会陌生,这个伟大的技术(51CTO系统频道刚刚在感恩节对它表示了感谢)免去了我们跑去机房管理服务器,或者在远程连接服务器时时刻担心内容被窃取的心惊胆战。本文将为大家介绍25个最佳的SSH命令,如果您还没用过,那么有必要将它们记录一下。

51CTO推荐专题:Ubuntu 11.04——敏捷的独角鲸

OpenSSH是SSH连接工具的免费版本。telnet,rlogin和ftp用户可能还没意识到他们在互联网上传输的密码是未加密的,但SSH是加密的,OpenSSH加密所有通信(包括密码),有效消除了窃听,连接劫持和其它攻击。此外,OpenSSH提供了安全隧道功能和多种身份验证方法,支持SSH协议的所有版本。

SSH是一个非常伟大的工具,如果你要在互联网上远程连接到服务器,那么SSH无疑是最佳的候选。下面是通过网络投票选出的25个最佳SSH命令,你必须牢记于心。

(注:有些内容较长的命令,在本文中会显示为截断的状态。如果你需要阅读完整的命令,可以把整行复制到您的记事本当中阅读。)

1、复制SSH密钥到目标主机,开启无密码SSH登录

ssh-copy-id user@host

如果还没有密钥,请使用ssh-keygen命令生成。

2、从某主机的80端口开启到本地主机2001端口的隧道

ssh -N -L2001:localhost:80 somemachine

现在你可以直接在浏览器中输入http://localhost:2001访问这个网站。

3、将你的麦克风输出到远程计算机的扬声器

dd if=/dev/dsp | ssh -c arcfour -C username@host dd of=/dev/dsp

这样来自你麦克风端口的声音将在SSH目标计算机的扬声器端口输出,但遗憾的是,声音质量很差,你会听到很多嘶嘶声。

4、比较远程和本地文件

ssh user@host cat /path/to/remotefile | diff /path/to/localfile –

在比较本地文件和远程文件是否有差异时这个命令很管用。

5、通过SSH挂载目录/文件系统

sshfs name@server:/path/to/folder /path/to/mount/point

http://fuse.sourceforge.net/sshfs.html下载sshfs,它允许你跨网络安全挂载一个目录。

6、通过中间主机建立SSH连接

ssh -t reachable_host ssh unreachable_host

Unreachable_host表示从本地网络无法直接访问的主机,但可以从reachable_host所在网络访问,这个命令通过到reachable_host的“隐藏”连接,创建起到unreachable_host的连接。

7、将你的SSH公钥复制到远程主机,开启无密码登录 – 简单的方法

ssh-copy-id username@hostname

8、直接连接到只能通过主机B连接的主机A

ssh -t hostA ssh hostB

当然,你要能访问主机A才行。

9、创建到目标主机的持久化连接

ssh -MNf <user>@<host>

在后台创建到目标主机的持久化连接,将这个命令和你~/.ssh/config中的配置结合使用:

Host host
ControlPath ~/.ssh/master-%r@%h:%p
ControlMaster no

所有到目标主机的SSH连接都将使用持久化SSH套接字,如果你使用SSH定期同步文件(使用rsync/sftp/cvs/svn),这个命令将非常有用,因为每次打开一个SSH连接时不会创建新的套接字。

10、通过SSH连接屏幕

ssh -t remote_host screen –r

直接连接到远程屏幕会话(节省了无用的父bash进程)。

11、端口检测(敲门)

knock <host> 3000 4000 5000 && ssh -p <port> user@host && knock <host> 5000 4000 3000

在一个端口上敲一下打开某个服务的端口(如SSH),再敲一下关闭该端口,需要先安装knockd,下面是一个配置文件示例。

[options]
logfile = /var/log/knockd.log
[openSSH]
sequence = 3000,4000,5000
seq_timeout = 5
command = /sbin/iptables -A INPUT -i eth0 -s %IP% -p tcp –dport 22 -j ACCEPT
tcpflags = syn
[closeSSH]
sequence = 5000,4000,3000
seq_timeout = 5
command = /sbin/iptables -D INPUT -i eth0 -s %IP% -p tcp –dport 22 -j ACCEPT
tcpflags = syn

12、删除文本文件中的一行内容,有用的修复

ssh-keygen -R <the_offending_host>

在这种情况下,最好使用专业的工具。

13、通过SSH运行复杂的远程shell命令

ssh host -l user $(<cmd.txt)

更具移植性的版本:

ssh host -l user “`cat cmd.txt`”

14、通过SSH将MySQL数据库复制到新服务器

mysqldump –add-drop-table –extended-insert –force –log-error=error.log -uUSER -pPASS OLD_DB_NAME | ssh -C user@newhost “mysql -uUSER -pPASS NEW_DB_NAME”

通过压缩的SSH隧道Dump一个MySQL数据库,将其作为输入传递给mysql命令,我认为这是迁移数据库到新服务器最快最好的方法。

15、删除文本文件中的一行,修复“SSH主机密钥更改”的警告

sed -i 8d ~/.ssh/known_hosts

16、从一台没有SSH-COPY-ID命令的主机将你的SSH公钥复制到服务器

cat ~/.ssh/id_rsa.pub | ssh user@machine “mkdir ~/.ssh; cat >> ~/.ssh/authorized_keys”

如果你使用Mac OS X或其它没有ssh-copy-id命令的*nix变种,这个命令可以将你的公钥复制到远程主机,因此你照样可以实现无密码SSH登录。

17、实时SSH网络吞吐量测试

yes | pv | ssh $host “cat > /dev/null”

通过SSH连接到主机,显示实时的传输速度,将所有传输数据指向/dev/null,需要先安装pv。

如果是Debian:

apt-get install pv

如果是Fedora:

yum install pv

(可能需要启用额外的软件仓库)。

18、如果建立一个可以重新连接的远程GNU screen

ssh -t user@some.domain.com /usr/bin/screen –xRR

人们总是喜欢在一个文本终端中打开许多shell,如果会话突然中断,或你按下了“Ctrl-a d”,远程主机上的shell不会受到丝毫影响,你可以重新连接,其它有用的screen命令有“Ctrl-a c”(打开新的shell)和“Ctrl-a a”(在shell之间来回切换),请访问http://aperiodic.net/screen/quick_reference阅读更多关于screen命令的快速参考。

19、继续SCP大文件

rsync –partial –progress –rsh=ssh $file_source $user@$host:$destination_file

它可以恢复失败的rsync命令,当你通过VPN传输大文件,如备份的数据库时这个命令非常有用,需要在两边的主机上安装rsync。

rsync –partial –progress –rsh=ssh $file_source $user@$host:$destination_file local -> remote

rsync –partial –progress –rsh=ssh $user@$host:$remote_file $destination_file remote -> local

20、通过SSH W/ WIRESHARK分析流量

ssh root@server.com ‘tshark -f “port !22″ -w -' | wireshark -k -i –

使用tshark捕捉远程主机上的网络通信,通过SSH连接发送原始pcap数据,并在wireshark中显示,按下Ctrl+C将停止捕捉,但也会关闭wireshark窗口,可以传递一个“-c #”参数给tshark,让它只捕捉“#”指定的数据包类型,或通过命名管道重定向数据,而不是直接通过SSH传输给wireshark,我建议你过滤数据包,以节约带宽,tshark可以使用tcpdump替代:

ssh root@example.com tcpdump -w – ‘port !22′ | wireshark -k -i –

21、保持SSH会话永久打开

autossh -M50000 -t server.example.com ‘screen -raAd mysession’

打开一个SSH会话后,让其保持永久打开,对于使用笔记本电脑的用户,如果需要在Wi-Fi热点之间切换,可以保证切换后不会丢失连接。

22、更稳定,更快,更强的SSH客户端

ssh -4 -C -c blowfish-cbc

强制使用IPv4,压缩数据流,使用Blowfish加密。

23、使用cstream控制带宽

tar -cj /backup | cstream -t 777k | ssh host ‘tar -xj -C /backup’

使用bzip压缩文件夹,然后以777k bit/s速率向远程主机传输。Cstream还有更多的功能,请访问http://www.cons.org/cracauer/cstream.html#usage了解详情,例如:

echo w00t, i’m 733+ | cstream -b1 -t2

24、一步将SSH公钥传输到另一台机器

ssh-keygen; ssh-copy-id user@host; ssh user@host

这个命令组合允许你无密码SSH登录,注意,如果在本地机器的~/.ssh目录下已经有一个SSH密钥对,ssh-keygen命令生成的新密钥可能会覆盖它们,ssh-copy-id将密钥复制到远程主机,并追加到远程账号的~/.ssh/authorized_keys文件中,使用SSH连接时,如果你没有使用密钥口令,调用ssh user@host后不久就会显示远程shell。

25、将标准输入(stdin)复制到你的X11缓冲区

ssh user@host cat /path/to/some/file | xclip

你是否使用scp将文件复制到工作用电脑上,以便复制其内容到电子邮件中?xclip可以帮到你,它可以将标准输入复制到X11缓冲区,你需要做的就是点击鼠标中键粘贴缓冲区中的内容。

如果你还有其它SSH命令技巧,欢迎在本文评论中帖出。

方案2
 

SSH(Secure Shell Client)常用命令

一、ls 只列出文件名 (相当于dir,dir也可以使用)

-A:列出所有文件,包含隐藏文件。

-l:列表形式,包含文件的绝大部分属性。

-R:递归显示。

--help:此命令的帮助。

二、cd 改变目录

cd /:进入根目录

cd :回到自己的目录(用户不同则目录也不同,root为/root,xxt为/home/xxt

cd ..:回到上级目录

pwd:显示当前所在的目录

三.less 文件名:查看文件内容。

tail -f 日志名:查看日志

四.q 退出打开的文件。

五.上传文件: rz 选择要传送的文件,确定。

六.下载文件: sz 指定文件名,enter敲,即下载到了secureCRT/download目录下。

七:删除文件: rm 删除文件 ,rmdir 删除空目录。rm -rf 强行删除非空目录

八.显示 最近输入的20条命令:history 20

九.获得帮助命令 --help查看命令下详细参数:  如:rz --help   , sz --help  。

十.cd 进入某个文件夹的命令:

mkdir+文件夹名 创建某个文件夹的命令

sz+文件名 从服务器端向本机发送文件的命令

rz 从本机向服务器端传送文件的命令

ll 列出当前目录下的所有文件,包括每个文件的详细信息

dir 对当前文件夹

vi 打开当前文件

十一.在编辑某个文件的时候:

a 切换到编辑模式

ctrl+c 退出编辑模式

dd 删除整行

:q 退出当前文件

:w 写入并保存当前文件

-f 强行xx的参数。。。

其它命令:

1.ps -ef  //查看server的进程,以列表形式显示的server进程。

ps 显示当前在系统运行的进程 /usr/bin/ps [选项] -e 显示每个现在运行的进程 -f 生成一个完全的列表

2.ant -buildfile CMS_MainTrunk.xml  //build 包

3.vi test.txt  //浏览文件内容

i {insert写输入}

esc  退出insert

:wq! write 保存并退出vi模式

:q!  不保存退出vi模式

4、secureCRT中乱码解决:Options->SessionOptions->Appearance->font把default改成UTF-8,就可以显示中文字体了。

6.hostname:查hostname

7.ifconfig 查询主机IP

8.在S-CRT下用ctrl+c 和ctrl+v:

Options---Global Options---Edit default Settings进去后点Terminal---Emulation然后点Mapped Keys,点中低部的,use windows copy and paste key,点确认。

9.进入vi的命令:

vi filename :打开或新建文件,并将光标置于第一行首

vi +n filename :打开文件,并将光标置于第n行首

vi + filename :打开文件,并将光标置于最后一行首

vi +/pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处

10.移动光标类命令:

}:光标移至段落开头

{:光标移至段落结尾

nG:光标移至第n行首

n+:光标下移n行

n-:光标上移n行

n$:光标移至第n行尾

H :光标移至屏幕顶行

M :光标移至屏幕中间行

L :光标移至屏幕最后行

0:(注意是数字零)光标移至当前行首

$:光标移至当前行尾

11.屏幕翻滚类命令:

Ctrl+u:向文件首翻半屏

Ctrl+d:向文件尾翻半屏

Ctrl+f:向文件尾翻一屏  //好像是 r

Ctrl+b;向文件首翻一屏

12.搜索命令:

/pattern:从光标开始处向文件尾搜索pattern

?pattern:从光标开始处向文件首搜索pattern

n:在同一方向重复上一次搜索命令

N:在反方向上重复上一次搜索命令

postgres使用:

1.进入sql运行环境。

[test@test bin]$ ./psql -n dbname -U usrname

stay81=# select count(*) from table1;

count

-------

5986

(1 row)

2. 退出,使用结束后退出,不然连接一直被挂起。

stay81=# \q

3.postgres 数据导出。

[postgres@test bin]$ ./pg_dump -U postgres -t testTable -d testDB > testTable.dump

或[postgres@test bin]$ ./pg_dump -U postgres -d testDB -t testTable -F c -v > testTable.dump

4. postgres 数据导入。

[postgres@test bin]$ ./psql -U postgres -d testDB < testTable.dump

或[postgres@test bin]$ ./pg_restore -U postgres -d testDB < testTable.dump

5.一台主机上将数据库目录转储到另一台主机上。

pg_dump -h host1 -p 5432 dbname | psql -h host2 -p post1 dbname

或./pg_dump -U postgres -d testDB1 -t testTable | ./psql -U postgres -d testDB2

-U 为用户名 ,-d 为DB名,-t 为表名称,如果整个数据库导出,不需此项。

6.php执行。

[test@test bin]$ /usr/bin/php -q ./batchstart.php

方案3

转自:今日杂记。

不论是在Mac还是iPhone上,都是离不开Terminal的,有Terminal干很多事情都会简单很多,而且有的事情必须用Terminal才能完成,特别是遇到需要特殊权限的时候,Terminal就派上大用场了。下面这些就是我平时常用到的命令。

root登陆:su root

root密码重设:passwd root

建立文件夹:mkdir 例:mkdir todaym 建立名为todaym的文件夹

建立文件:touch 例:touch todaym.txt 建立名为todaym的txt文件

已安装deb查看:dpkg -l

deb安装:dpkg -i 例:dpkg -i todaym.deb 安装名为todaym.deb的文件

deb卸载:dpkg -r 例:dpkg -r todaym 卸载已安装名为todaym的deb文件包,想卸载deb,先用“dpkg -l”命令查看该deb名称。

deb解压:dpkg -x 例:dpkg -x todaym.deb 解压名为todaym.deb的文件

deb打包:dpkg-deb --build 例:dpkg-deb --build todaym 把todaym文件夹内文件打包生成deb

删除文件:rm 例:rm todaym.txt 删除名为todaym.txt文件

删除文件夹:rmdir 例:rmdir todaym 删除名为todaym文件夹

删除文件夹及其内所有文件:rm -r 例:rm -r todaym 删除todaym文件夹及其内全部文件

建立链接:ln -s 例:ln -s /var /var/mobile 指在mobile文件夹下建立访问/var文件夹的链接

权限赋予:chmod 例:chmod 777 /var 赋予/var读写权限
例:chmod 777 -R /var 赋予/var下所有文件读写权限

解压rar:unrar e 例:unrar e todaym.rar 解压名为todaym的rar文件

解压zip:unzip 例:unzip todaym.zip 解压名为todaym的zip文件

查看文件:ls 例:ls 显示该文件夹下文件及文件夹
例:ls -w 显示中文
例:ls -l 显示详细信息
例:ls -a 显示隐藏文件

查看进程:ps 例:ps ax 查看正在运行的进程以及PID
例:ps aux 查看正在运行进程所占PID、CPU、内存、PID、进程开始时间

结束进程:kill PID 例:kill 14 关闭PID为14的进程(每个进程PID不固定,即时用ps命令查看)

重新启动:reboot

打开文件夹:cd 例:cd todaym 打开名为todaym的文件夹

重命名:mv 例:mv todaym.txt nie.txt 把名为todaym的txt文件重命名为nie

更改拥有者:chown 例:chown root:wheel todaym.txt 将文件todaym.txt的拥有者设为root,组设为wheel

查找文件:find 例:find /var/mobile -name todaym.txt 在/var/mobile文件夹下查找名为todaym的txt文件

解除锁定:chflags -R nouchg 例:chflags -R nouchg todaym 解除被锁定的文件(文件夹)todaym
技巧:在Terminal输入这个命令后加个空格,可把文件或文件夹直接拖到Terminal窗口内

SSH远程访问:

ssh -p 8080 用户名@服务器ip地址

SSH翻Qiang命令:ssh -D 7070 username@yoursite.com  具体教程参考:SSH配PAC让iPhone/iPod Touch翻墙

更新:-----------------------------------------------------

复制:cp 例:cp todaym.txt /var/mobile/Documents 复制当前文件夹下todaym.txt文件到/var/mobile/Documents文件夹下。复制时注意权限,复制不成功可能是你权限不够

复制加密:scp 例:scp todaym.txt nie@demo.dreamhost.com:~/nie/docs 复制当前文件夹下todaym.txt文件到你的服务器nie@dreamhost.com的/nie/docs文件夹下,其间需要你输入服务器登陆密码
例:scp nie@demo.dreamhost.com:~/nie/docs/read.html /var/mobile 复制nie@demo.dreamhost.com服务器里/nie/docs/文件夹内的read.html文件到本地的/var/mobile文件夹内
具体例子参考:让iPhone/iPod Touch/Mac的SSH连接自动登录中第四步。

隐藏文件:chflags hidden 例:chflags hidden /Users/Nie/Desktop/TodayM.txt 隐藏Nie桌面上的TodayM.txt文件。如果想隐藏文件到图片中,可以参考:Mac/iPhone/iTouch/iPad把文件隐藏到图片中

iPhone/Mac中的这些命令和Linux/Unix系统中绝大部分是一样的,特别是Unix,因为Mac就是基于Unix系统。iOS在4.0以后Mobile Terminal就不大好用,在iTunes里Nie目前找到最好的免费Terminal替代软件:Mobile Admin

Mac上简单常用Terminal命令的更多相关文章

  1. 在Mac上配置Android adb命令

    一 adb定义: adb(android debug bridge)是android系统中的一种命令行工具,通过它可以和android设备或模拟器通信. 二 在Mac上的配置过程 启动终端 进入当前用 ...

  2. Mac下的常用终端命令与vim常用命令

    因为很少用命令行,老被鄙视,所以今天记录一下常用的命令行: cd 切换工作目录 . 表示当前目录 .. 表示当前目录的上一级目录 / 根目录/目录分隔符 ./ 当前目录 ../ 回到上一级目录 ls ...

  3. Mac下的常用Shell命令

    今天介绍一下在Mac的终端中一些常用的Shell命令: 1.查看当前工作目录的完整路径 pwd (pwd的原意是:print work directiory,而不是密码password的意思,呵呵) ...

  4. Linux/Mac OS 个人常用Terminal技巧整理

    刚开始接触linux有些不适应,走了不少弯路,一直没有系统的学过linux应用,基本都是零零散散Google出来的知识,在这里做个整理: Vi/Vim 基本操作: 刚开始接触linux时,不懂vi吃了 ...

  5. MAC下一些常用的命令行

    统计了一下工作中一些会常用到的简单命令,加强记忆 ls                       查看当前终端目录下面的文件 ls -a "ls -a"会出现一些带.xxxx的文 ...

  6. MAC终端下常用Git命令

    送给新手的简单命令操作.远程Git和local的同步实现流程: 1.把git上的代码clone到本地 $ git clone http:xxxx(地址,可以http也可以ssh) 2.clone到本地 ...

  7. git简单常用的命令

    git status --查看文件状态 git add+文件路径 --上传到缓存区 git add --all --全部传到缓存区 git commit -m '描述' --对上传文件做描述 git ...

  8. composer入门 一些简单常用的命令介绍

    composer是什么 composer是PHP的插件依赖管理工具,我个人感觉和java的Maven.Gradle很类似. Windows OS下安装composer 参考: https://www. ...

  9. Linux Centos 上一些常用的命令

    1.查看端口被哪个进程占用 netstat -lnp | grep <端口号> 2.查看某个进程号详细信息 ps <进程号> 3.检查指定服务是否开启(例如 telnet) c ...

随机推荐

  1. Codeforces Round #271 (Div. 2) D. Flowers (递推 预处理)

    We saw the little game Marmot made for Mole's lunch. Now it's Marmot's dinner time and, as we all kn ...

  2. Jenkins performance插件生成性能测试报告【待完成】

    https://segmentfault.com/a/1190000018651092 本地window运行 命令执行:F:\study\apache-jmeter-4.0\apache-jmeter ...

  3. WCF探索之旅(五)——WCF与WebService的异同

    前几篇文章我们简单的介绍了WCF以及怎样使用它,今天我们来讨论一下WCF和WebService的异同. 相信大多数同学跟我一样,对于WebService有所了解.并且应该说你是先听说WebServic ...

  4. Android学习笔记-tween动画之java实现

    Android动画分为Tween动画和Frame动画,近期学习了,体tween动画,现在讲学习的心得以及相关知识介绍如下. Tween又称为补间动画,可以把对象进行缩小.放大.旋转和渐变等操作.   ...

  5. 动态代理3--Spring AOP分析

    Spring AOP的基本实现方式 ​Spring AOP,一种模块化机制,能够动态的对切点添加行为,而不破坏原有的代码结构. 这是一个非常好地动态代理的应用方式.Spring AOP实现依赖于JDK ...

  6. PHP MySQL mysql.sock的问题

    SQLSTATE[HY000] [2002] No such file or directory 原因是找不到mysql.sock这个文件..一般出现的症状就是能用ip连接mysql.但不能使用loc ...

  7. socket listen backlog

    http://stackoverflow.com/questions/4253454/question-about-listening-and-backlog-for-sockets The list ...

  8. ZOJ3965 Binary Tree Restoring

    ZOJ3965 给定一颗二叉树的两种DFS序列 输出一种可能的二叉树的结构. 考察树的递归性质,不要想的太复杂. 当前节点在两个串中后面的节点假如不同则能确认两个子树,如果相同则把下个点作当前点的一个 ...

  9. Spring MVC标签<mvc: annotation-driven />小结 原

    转自:https://my.oschina.net/u/1156626/blog/881483 mvc:annotation-driven的作用 Spring 3.0.x中使用了mvc:annotat ...

  10. ASP.NET给前端动态添加修改 CSS样式JS 标题 关键字(转载)

    原文地址:http://www.cnblogs.com/xbhp/p/6392225.html 有很多网站读者能换自己喜欢的样式,还有一些网站想多站点共享后端代码而只动前段样式,可以采用动态替换CSS ...