- 浏览: 38151 次
- 性别:
- 来自: 上海
文章分类
最新评论
SSH命令
2011-11-15 17:24:03| 分类: 默认分类 | 标签:ssh命令 脚本 linux |字号大中小 订阅
目录:
1.BasicInstructions/基本
2.wget/下载工具
3.Crontab/定时任务
4.tar/tar.gz/压缩文件
5.vi/编辑器
cd[目录名]转换路径
cd.. 返回上级目录
ls显示当前目录下所有文件
rm[-r]-f[][文件名]删除文件,加[-r]可以删除文件下所有子文件,如rm -rf [abc]删除abc文件夹及文件夹下的所有文件
tar -xzf [解压下载的压缩包]
unzip[文件名]解压文件
cp -rpf .A/* B 将A文件夹中的所有文件拷贝到其上级目录B中
wget(没用过,据说是最实用的一个,否则那200G估计每天不掉线才有可能用完)
1.BasicInstructions基本操作命令
通常来说,使用”$[Instructions]–help”可以获得以下各个命令[instructions]的帮助,包含其参
数列表的定义。
-ls列出当前文件夹下所有内容
$ls-o列出当前文件夹中所有内容,含详细信息,但不列出group
$ls-l同上,含group信息
$ls-a列出当前文件夹中所有内容,包含以”.”开头的文件
$ls-t按更改时间排序
$ls-v按版本
-cd [dir] 进入文件夹
cd.. 退出当前文件夹,返回上级目录
-pwd 显示当前路径
-mkdir [dir] 新建文件夹
-chmod更改文件/文件夹权限
$chmod [Mode] [dir],其中Mode形如”755″或”777″等。
$chmod [Mode] [file]
$chmod -R [Mode] [dir],递归形式,即将目标文件夹内所有文件均改变权限
Mode还有另一种表达方式,”755″即为”-rwxr-xr-x”,不列举了。
-rm [file]删除文件/文件夹
$rm-f [file]强行删除,忽略不存在的文件,无提示
$rm-r [file]递归删除所有内容
$rm -rf 删除文件夹
-cp拷贝
$cp [options] [source] [destination]
其中[options]可以为-f(强行拷贝)或-r(递归拷贝)
-mv重命名或移动
$mv[options][source][destination]
[options]常用:-f(强行移动/重命名),-i(移动/重命名前尝试),-u(更新)
例如
$mvwwwroot/cgi-bin.将/cgi-bin目录移动到当前目录下
$mvcronfile.txtmyfile.txt将cronfile.txt重命名为myfile.txt
cp -rpf .A/* B 将A文件夹中的所有文件拷贝到其上级目录B中
2.wget下载工具
wget是一种非交互式的网络文件下载工具,在linux下可以使用该工具快速地从网络上下载
所需要的文件而不需要经由本
wget[参数列表]URL
最简单的用法:
$wget http://dupola.com/file.tar
wget的常用参数:-t[nuberoftimes]:尝试次数,当wget无法与服务器建立连接时,尝试连接多少次。比
如”-t120″表示尝试120次。当这一项为”0″的时候,指定尝试无穷多次直到连接成功为止,
这个设置非常有用,当对方服务器突然关机或者网络突然中断的时候,可以在恢复正常后继
续下载没
有传完的文件;-c:断点续传,这也是个非常有用的设置,特别当下载比较大的文件的时候,如果中途意外中断,那么连接恢复的时候会从上
次没传完的地方接着传,而不是又从头开始,使用这一项需要远程服务器也支持断点续传,一般UNIX/linux的Web/FTP服务器都支
持断点续传;-T[numberofseconds]:超时时间,指定多长时间远程服务器没有响应就中断连接,开始
下一次尝试。比如”-T120″表示如果120秒以后远程服务器没有发过来数据,就重新尝试连
接。如果网络速度比较快,这个时间可以设置的短些,相反,可以设置的长一些,一般最多
不超过900,通常也不少于60,一般120左右比较合适;-w[numberofseconds]:在两次尝试之间等待多少秒,比如”-w100″表示两次尝试之间等
待100秒;-nd:不下载目录结构,把从服务器所有指定目录下载的文件都堆到当前目录里;-x:与”-nd”设置刚好相反,创建完整的目录结构,
例如”wget-ndhttp://www.gnu.org/”,
实际的目录结构一级一级建下去,直到所有的文件都传完为止;-nH:不创建以目标主机域名为目录名的目录,将目标主机的目录结构直接下到
当前目录
下;-r:递归下载,在本录结构;-l[depth]:下载远程服务器目录结构的深度,例如”-l5″下载目录深度小于或者等于5以
内的目录结构或者文件;
-m:做站点镜像时的选项,如果你想做一个站点的镜像,使用这个选项,它将自动设定
其他合适的选项以便于站点镜像;-np:只下载目标站点指定目录及其子目录的内容。这也是一个非常有用的选项,我们假
设某个人的个人主页里面有一个指向这个站点其他人个人主页的连接,而我们只想下载这个
人的个人主页,如果不设置这个选项,甚至–有可能把整个站点给抓下来,这显然是我们通
常不希望的;–http-user=username–http-passwd=password:如果Web服务器需要指定用户名和口令,用这两项来设定;-O将数据写入文件中。
3.Crontab定时执行任务
在DreamHost系统下,通过Shell可以建立自己的crontab.具体使用如下:
使用支持shell登录的终端(如fterm或putty),地址栏输入username@qiran.org:22即可以SSH
方式登录至服务器.
常用的crontab命令:
crontab-l显示所有现存cronjob.
crontab-r删除当前cronjobs.
crontab-e编辑当前”crontabfile”.DH推荐使用nano
注意你的crontab包含所有的cronjobs,每个cron一行,断行结尾.一个正常的cron如下所
示:
452***/home/user/script.pl
第一个数字是每小时的第几分钟,
第二个数字是每天的第几小时,
第三个数字是每月的第几天,
第四个数字是每年的第几月,
第五个数字是每周的第几天.
使用方式例如:
32 * * * * : 表示每小时的第32分钟.
12,42 * * * * : 表示每小时的第12及第42分钟两次
*/15 */2 * * *: 表示0:00, 0:15, 0:30, 0:45, 2:00, 2:15, 2:30, …
43 18 * * 7: 表示每个周日的6:43pm运行命令行.
在DreamHost下使用nano编辑完文件后,使用ctrl+o保存,ctrl+x退出编辑。
4.tar命令
tar命令的使用方法如下:
tar[参数列表][文件名]
参数列表:
-c生成新的备份,并同时覆盖旧的备份文件
-x从备份文件中解压缩
-t列出备份文件内的文件目录
-v显示所有被操作文件列表
-f在指定位置生成备份
-u将不存在于备份中的文件,或将已经被更改的文件加入该备份中。
举例说明:
tar cvf filename.tar /*制作备份*/
tar cvf tarfile.tar ./filename /*将filename的文件备份到tarfile.tar里面*/
tar tvf filename.tar /*列出tar文档的内容*/
tar xvf filename.tar /*从tar文档中导出文件*/
tar zxpvf filename.tar.gz /*从tar.gz文档中导出文件*/
tar zxvf filename.tar.gz /*同上*/
tar xvf tarfile.tar ./filename /*导出tar文件中的单个文件*/
tar -xzf filename.tar.gz 解压
5.vi编辑器
Linux下很易用的一种编辑器,只需要稍微知道几个指令即可应用。
打开vi:
$vi [filename]:打开或新建文件,并将光标置于第一行首
$vi +n [filename] :打开文件,并将光标置于第n行首
$vi + [filename] :打开文件,并将光标置于最后一行首
$vi +/pattern [filename]:打开文件,并将光标置于第一个与pattern匹配的串处
$vi -r [filename] :在上次正用vi编辑时发生系统崩溃,恢复filename
$vi [filename]….[filename] :打开多个文件,依次编辑
如果filename不存在,则自动生成一个名字filename的新文件。
vi共有两种状态:命令状态/编辑状态
编辑状态下:
第次按下insert键为”insert”模式,再按一下为”replace”模式,使用ESC返回命令状态;
在此状态下键盘的PgUp/PgDn/Insert/Delete/Home/End/方向键,均处于正常功能状态。
命令状态下:
输入的字符串作为命令处理,使用”insert”键切换到编辑状态;
以下是命令状态下的命令清单:
移动光标类命令
h :光标左移一个字符
l :光标右移一个字符
space:光标右移一个字符
Backspace:光标左移一个字符
k或Ctrl+p:光标上移一行
j或Ctrl+n :光标下移一行
Enter :光标下移一行
w或W :光标右移一个字至字首
b或B :光标左移一个字至字首
e或E :光标右移一个字j至字尾
) :光标移至句尾
( :光标移至句首
}:光标移至段落开头
{:光标移至段落结尾
nG:光标移至第n行首
n+:光标下移n行
n-:光标上移n行
n$:光标移至第n行尾
H :光标移至屏幕顶行
M :光标移至屏幕中间行
L :光标移至屏幕最后行
0:(注意是数字零)光标移至当前行首
$:光标移至当前行尾
屏幕翻滚类命令
Ctrl+u:向文件首翻半屏
Ctrl+d:向文件尾翻半屏
Ctrl+f:向文件尾翻一屏
Ctrl+b;向文件首翻一屏
nz:将第n行滚至屏幕顶部,不指定n时将当前行滚至屏幕顶部。
插入文本类命令
i :在光标前
I :在当前行首
a:光标后
A:在当前行尾
o:在当前行之下新开一行
O:在当前行之上新开一行
r:替换当前字符
R:替换当前字符及其后的字符,直至按ESC键
s:从当前光标位置处开始,以输入的文本替代指定数目的字符
S:删除指定数目的行,并以所输入文本代替之
ncw或nCW:修改指定数目的字
nCC:修改指定数目的行
删除命令
ndw或ndW:删除光标处开始及其后的n-1个字
do:删至行首
d$:删至行尾
ndd:删除当前行及其后n-1行
x或X:删除一个字符,x删除光标后的,而X删除光标前的
Ctrl+u:删除输入方式下所输入的文本
搜索及替换命令 :
/pattern:从光标开始处向文件尾搜索pattern
?pattern:从光标开始处向文件首搜索pattern
n:在同一方向重复上一次搜索命令
N:在反方向上重复上一次搜索命令
:s/p1/p2/g:将当前行中所有p1均用p2替代
:n1,n2s/p1/p2/g:将第n1至n2行中所有p1均用p2替代
:g/p1/s//p2/g:将文件中所有p1均用p2替换
选项设置
all:列出所有选项设置情况
term:设置终端类型
ignorance:在搜索中忽略大小写
list:显示制表位(Ctrl+I)和行尾标志($)
number:显示行号
report:显示由面向行的命令修改过的数目
terse:显示简短的警告信息
warn:在转到别的文件时若没保存当前文件则显示NO write信息
nomagic:允许在搜索模式中,使用前面不带”\”的特殊字符
nowrapscan:禁止vi在搜索到达文件两端时,又从另一端开始
mesg:允许vi显示其他用户用write写到自己终端上的信息
最后行方式命令
:n1,n2 co n3:将n1行到n2行之间的内容拷贝到第n3行下
:n1,n2 m n3:将n1行到n2行之间的内容移至到第n3行下
:n1,n2 d :将n1行到n2行之间的内容删除
:w :保存当前文件
:e filename:打开文件filename进行编辑
:x:保存当前文件并退出
:q:退出vi
:q!:不保存文件并退出vi
:!command:执行shell命令command
:n1,n2 w!command:将文件中n1行至n2行的内容作为command的输入并执行之,若不指定n1,n2,则表示将整个文件内容作为command的输入
:r!command:将命令command的输出结果放到当前行 。
到现在为止,你已经成功登录SSH了!你可以输入help来查看帮助,输入ls查看你的目录情况,etc.
退出SSH,输入:
exit
会出现提示:
logout
Connection to 208.113.155.137 closed.
----------------------------
MySQL相关
----------------------------
update:登录SSH后才可操作MySQL!
登录MySQL,输入:
mysql -u username -p -h 208.113.129.128
username替代为你的帐号;出现下面这个提示后输入密码:
Enter password:
接着,登录mysql数据库成功,出现下面提示:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3602 to server version: 5.0.18-standard-log
Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the buffer.
查看你的数据库:
show databases;
导入数据库内容。首先要选择你要导入内容的数据库:
use database;
将database更改为你导入数据库内容的数据库名称。在导入数据库前,确认你已经把导出的数据库文件上传到FTP目录下。例如,我在WP利用插
件导出的备份,解压有一个后缀为”.sql”的文件,把这个上传到你的FTP目录下即可;不用放进目录下面,直接上传就可以了。继续原来的话
题,输入下面命令导入数据库:
source wp.sql
其中wp.sql是你的数据库备份文件的名称。
退出mysql:
\q
查看mysql的帮助(用途不大):
\h
SSH的详细使用方法如下:
ssh [-l login_name] [hostname | user@hostname] [command] ssh [-afgknqtvxCPX246] [-c blowfish | 3des] [-e escape_char] [-i identity_file] [-l login_name] [-o option] [-p port] [-L port:host:hostport] [-R port:host:hostport] [hostname | user@hostname] [command]
sshd
为执行 ssh 的 daemon,在读者使用 ssh 之前必须去激活 sshd,在此建议把它加在 /etc/init/rc.local 中,在每次开机时激活。
在执行 sshd 之前可以指定它的 port,例如:sshd –p 999
若有安装 SSL,可以指定 SSL 的 port 443,例如:sshd –p 443
这样就可以经过 SSL 及 SSH 双重的保护,但必须去指明使用的 port
ssh –l user –p 443 mouse.oit.edu.tw 才行,若不指明则仍然使用预设的port 22
ssh
选项:
-l login_name
指定登入于远程机器上的使用者,若没加这个选项,而直接打 ssh lost 也是可以的,它是以读者目前的使用者去做登入的动作。 例如: ssh –l shie mouse.oit.edu.tw
-c blowfish|3des
在期间内选择所加密的密码型式。预设是3des,3des(作三次的资料加密) 是用三种不同的密码键作三次的加密-解密-加密。 blowfish 是一个快速区块密码编制器,它比3des更安全以及更快速。
-v
Verbose 模式。使ssh 去印出关于行程的除错讯息,这在连接除错,认 证和设定的问题上有很的帮助。
-V
显示版本。
-a
关闭认证代理联机。
-f
要求ssh 在背景执行命令,假如ssh要询问密码或通行证,但是使用者 想要它在幕后执行就可以用这个方式,最好还是加上-l user 例如在远程场所上激活 X11,有点像是 ssh –f host xterm 。
-e character
设定跳脱字符。
-g
允许远程主机去连接本地指派的 ports。
-i identity_file
选择所读取的 RSA 认证识别的档案。预设是在使用者的家目录 中的 .ssh/identity 。
-n
重导 stdin 到 /dev/null (实际上是避免读取 stdin)。必须当 ssh 在幕后执行时才使用。常见的招数是使用这选项在远程机器上去执行 X11 的程序 例如,ssh -n shadows.cs.hut.fi emacs &,将在 shadows.cs.hut.fi 上激活 emace,并且 X11 连接将自动地在加密的信道上发送。ssh 程序将把它放 在幕后。(假如ssh需要去询问密码时,这将不会动作)
-p port
连接远程机器上的 port。
-P
使用非特定的 port 去对外联机。如果读者的防火墙不淮许从特定的 port去联机时,就可以使用这个选项。注意这个选项会关掉 RhostsAuthentication 和 RhostsRSAAuthentication。
-q
安静模式。把所有的警告和讯息抑制,只有严重的错误才会被显示。
-t
强制配置 pseudo-tty。这可以在远程机器上去执行任意的 screen-based 程 式,例如操作 menu services。
-C
要求压缩所有资料(包含 stdin, stdout,stderr 和 X11 和 TCP/IP 连接) 压缩演算规则与 gzip 相同,但是压缩的等级不能控制。在调制解调器或 联机速度很慢的地方,压缩是个很好的选择,但如果读者的网络速路很 快的话,速度反而会慢下来。
-L listen-port:host:port
指派本地的 port 到达端机器地址上的 port。
-R listen-port:host:port
指派远程上的 port 到本地地址上的 port。
-2 强制 ssh 去使用协议版本 2。
-4 强制 ssh 去使用 IPv4 地址。
-6 强制 ssh 去使用 IPv6 地址。
scp
使用 scp 在远程机器上 copy 档案
例如:
copy 本地的档案到远程的机器上
scp /etc/lilo.conf k@net67.ee.oit.edu.tw:/home/k
会将本地的 /etc/lilo.conf 这个档案 copy 到 net67.ee.oit.edu.tw,使用者 k 的家目录下。
copy远程机器上的档案到本地来
scp k@net67.ee.oit.edu.tw:/etc/lilo.conf /etc
会将 net67.ee.oitdu.tw 中 /etc/lilo.conf 档案 copy 到本地的 /etc 目录下。
保持从来源 host 档案的属性
scp –p k@net67.ee.tw:/etc/lilo.conf /etc
在此必须注意使用者的权限是否可读取远程上的档案,若想知道更多关于 scp 的使用方法,可去看看 scp 的使用手册。
ssh-keygen
产生公开钥 (pulib key) 和私人钥 (private key),以保障 ssh 联机的安性, 当 ssh 连 shd 服务器,会交换公开钥上,系统会检查 /etc/ssh_know_hosts 内储存的 key,如果找到客户端就用这个 key 产生一个随机产生的session key 传给服务器,两端都用这个 key 来继续完成 ssh 剩下来的阶段。
它会产生 identity.pub、identity 两个档案,私人钥存放于identity,公开钥 存放于 identity.pub 中,接下来使用 scp 将 identity.pub copy 到远程机器的家目录下.ssh下的authorized_keys。 .ssh/authorized_keys(这个 authorized_keys 档案相当于协议的 rhosts 档案),之后使用者能够不用密码去登入。RSA的认证绝对是比 rhosts 认证更来的安全可靠。
执行:
scp identity.pub k@linux1.ee.oit.edu.tw:.ssh/authorized_keys
若在使用 ssh-keygen 产生钥匙对时没有输入密码,则如上所示不需输入密码即可从 net67.ee.oit.edu.tw 去登入 linux1.ee.oit.edu.tw。在此,这里输入的密码可以跟帐号的密码不同,也可以不输入密
相关推荐
SSH2框架,全称为Spring、Struts2和Hibernate2的集成框架,是Java Web开发中的一个常见组合。这个实例源码使用的是Spring 3.2、Struts2 2.3.4和Hibernate 4.2这三个框架的较新版本,提供了一个基础的用户登录和用户...
SSHA(Salted SHA,加盐SHA)是一种增强版的SHA哈希算法,它在原始的SHA哈希基础上增加了一个随机的盐值,以提高密码的安全性。在Java中,SSHA常用于用户密码的存储,以防止彩虹表攻击。在本教程中,我们将深入探讨...
SSH.NET 是一个开源的.NET库,专为.NET开发者设计,用于实现Secure Shell(SSH)协议。这个库使得在C#、VB.NET或其他.NET语言中安全地执行远程命令、传输文件或者建立安全隧道变得简单。"SSH.NET-develop.zip_SSH...
SSH(Secure Shell)是一种网络协议,用于在不安全的网络上提供安全的远程登录和其他服务。在IT领域,SSHshell是Linux或Unix类系统中常用的一种命令行接口,用于远程控制和管理服务器。通过SSH,用户可以执行命令、...
SSH2是SSH协议的第二个版本,提供了更安全的数据传输方式。OpenSSH是SSH协议的一种免费实现,广泛应用于各种操作系统中。 #### 二、如何确定使用的SSH版本 为了判断当前系统中安装的是OpenSSH还是SSH2,可以通过...
记录一下ssh离线升级版本(有openssh8.8安装包和依赖),redhad的ssh7.4升级到8.8,不用卸载旧版本ssh直接替换历史版本,迁移密钥重启ssh。有一定危险,我这有安全限制不能用telnet连接,需要多开几个ssh连接已被...
在Android平台上实现SSH(Secure Shell)功能,可以让用户通过安全的网络协议远程访问和控制设备。SSH是一种网络协议,主要用于安全地执行命令行操作、传输文件等,它使用加密技术确保数据传输的安全性。以下是对...
SQLServer 数据库 SSH 配置详解 SQLServer 数据库 SSH 配置是将 SQLServer 数据库与 Secure Shell(SSH)协议集成,以实现加密的数据传输和身份验证。本文将详细介绍 SQLServer 数据库 SSH 配置的实现步骤和相关...
在Ubuntu 16.04系统中,SSH(Secure Shell)是一种网络协议,用于安全地在本地主机与远程服务器之间进行通信。它提供了命令行接口,使得用户可以在不直接连接到服务器的情况下执行命令、传输文件等操作。离线安装SSH...
SSH_Test.rar_C ssh_C#ssh_C++ ssh_C++ SSH_libssh2库是一个针对C、C#和C++编程语言的SSH实现示例,特别提到了libssh2库的使用。在Visual Studio 2010环境下,这个压缩包提供了通过SSH进行文件上传的功能。接下来,...
本资源包含了SSH协议相关的主要rfc文档 其中有: rfc4250 The Secure Shell SSH Protocol Assigned Numbers pdf rfc4251 The Secure Shell SSH Protocol Architecture pdf rfc4252 The Secure Shell SSH ...
SSH(Secure Shell)是一种网络协议,用于在不安全的网络上提供安全的远程登录和其他服务。SSH Secure Shell工具是Linux环境中广泛使用的工具,它允许用户通过加密的方式与远程服务器进行交互,确保数据传输的安全性...
SSH 工作原理及流程 SSH(Secure Shell)是一种安全的网络协议,用于提供安全的远程访问和文件传输。SSH 协议具有广泛的应用场景,如远程登录、文件传输、网络管理等。下面是 SSH 工作原理及流程的详细说明: 一、...
### H3C华三网络设备SSH配置详解 #### 一、引言 SSH(Secure Shell)是一种加密的网络传输协议,常用于远程登录管理网络设备。对于H3C(华三)网络设备而言,SSH提供了安全的方式来管理和配置设备。本文将详细介绍...
SSH(Secure Shell)协议是一种网络协议,用于在不安全的网络上提供安全的远程登录和其他服务。在Java环境中,开发人员通常使用库来实现SSH功能,其中一个常用的库就是Ganymed SSH-2。这个库名为ganymed-ssh2-build...
问题:ssh-copy-id 命令无法使用,在linux服务器的ssh服务中没有有这个命令,可以在/usr/bin/的这文件夹中查看没有这个ssh-copy-id 命令。 问题分析:是由于ssh服务的问题,可以直接将ssh-copy-id 命令拷贝/usr/...
### 在Juniper路由器上配置SSH服务 #### 一、引言 随着网络安全需求的日益增长,采用安全的方式管理网络设备变得至关重要。SSH(Secure Shell)作为一种加密的网络协议,为远程登录提供了强大的安全保障。本文将...
SSH框架,全称为Struts2、Spring和Hibernate的组合,是Java Web开发中常见的三大开源框架集成。这个压缩包文件"SSHdemo"提供了一个SSH框架搭建登录功能的示例,帮助开发者了解并实践如何整合这三个框架来构建一个...
SSH(Secure Shell)是一种网络协议,用于在不安全的网络上提供安全的远程登录和其他服务。SSH集成通常指的是将SSH功能与其他系统或工具整合,以实现更高效、更安全的远程管理和服务交互。在IT领域,SSH集成尤其常见...
标题 "Ubuntu 20.04 SSH离线安装包" 提供了我们即将讨论的核心主题:在Ubuntu 20.04系统上安装SSH服务,而不在联网的情况下进行。SSH(Secure Shell)是一种网络协议,用于在不安全的网络上提供加密的远程登录和其他...