SSH入门及基础命令大全

冬月初五 2020-3-12 5201

SSH简介

在Linux系统中,OpenSSH是目前最流行的远程系统登录与文件传输应用,也是传统Telenet、FTP和R系列等网络应用的换代产品。其 中,ssh(Secure Shell)可以替代telnet、rlogin和rsh,scp(Secure Copy)与sftp(Secure FTP)能后替代ftp。

 

Ubuntu下安装OpenSHH

在Ubuntu中,OpenSSH的客户端作为一个基础系统软件会随这系统一起安装,但OpenSSH服务器需要单独安装。安装openssh-server服务器软件包,可以使用apt-get、aptitude或synaptic等软件工具。

$ sudo apt-get install openssh-server

安装之后,可以使用以下命令验证OpenSSH服务器的sshd守护进程是否已开启。

$ pidof sshd

 

使用SSH登录到远程系统

在OpenSSH中,ssh是一个重要的客户端应用程序。利用ssh,可以采用加密的通信方式,登录到远程系统,其语法格式如下:

ssh [options] [-l login_name][user@]hostname [command]

其中,”-llogin_name”选项用于指定用户名,表示以哪一个用户身份登录到远程系统。如果不提供用户名,则以当前用户的身份登录到远程系 统。例如,下面命令形式表示以webgod用户身份,采用默认的22端口,登录到远程系统。除了”-l”选项之外,为了以其他用户身份登录到远程系统,还可 以使用”user@hostname”的方式登录到远程系统。

第一次使用ssh登录到远程系统时,ssh将会给出一个警告信息,提示用户确认连接的远程系统是否正确。如果用户确认yes,ssh将会在用户主目 录的~/.ssh/known_hosts文件中存储远程系统的密钥,同时也会把客户端用户的密钥发送到远程系统。当用户再次登录到同一远程系统时,就不 会再出现提示信息了。

 

使用ssh执行远程系统命令

具体用法,在ssh命令后增加一条命令,命令前后使用双引号括起来。

$ ssh [email protected] “uname -r”

这种一次性登录,执行远程命令,然后立即返回的功能是非常有用的。

 

使用SCP替代FTP

从网络通信角度来看,FTP的数据传输方式是不安全的,因为FTP协议在网络中传输的用户名、密码和数据没有采取任何加密措施。比较安全的方法是采用OpenSSH的SFTP和SCP。

scp是OpenSSH中的另一个重要客户端软件。scp命令的格式如下:

scp [[user@host1:]file1[[user@]host2:]file2

第一个参数是源文件,第二个参数是目的文件。当需要复制远程系统中的文件时,SCP首先需要成功登录到远程系统中,然后才能开始传输文件,因此要求提供远程系统的名字、用户名和密码。

 

利用scp下载文件

例如,要把远程系统中的~/.ssh/id_rsa.pub文件复制到本地系统的/tmp目录中。

$ scp [email protected]:~/.ssh/id_rsa.pub /tmp

假定已经把sshd守护进程监听的TCP端口修改为435。要使用该端口进行文件复制,则可以用如下命令。

$ scp -P 534 [email protected]:~/.ssh/id_rsa.pub /tmp

 

利用scp上传文件

$ scp /etc/hosts [email protected]:/tmp
$ scp -P 435 /etc/hosts [email protected]: /tmp

 

常用代码

1. 基础命令

A.显示文件源代码

cat ooxx.php

没错, cat 是一个常用查看源代码的命令,优点是很方便很可爱,缺点是会直接刷刷刷显示所有源代码,文件太长只能看到屁股后面的那坨代码

B. 查看当前目录

pwd

pwd不是password,而是查看当前目录,会输出完整的路径

C. 更改目录 Change Directory (cd)

cd /path/to/directory/

有DOS基础的同学应该会淫荡的一笑吧,路径可以用相对也可以用绝对

D. 列出文件/子目录 Listing Files/SubFolders(ls)

ls

默认只显示文件名,你也可以带个参数玩,比如

ls -alh

带 -alh 输出会很爽... 自己试试, 大猫喜欢把 ls -alh 颜射为 ll
-a显示全部文件
-l比较详细的列表
-h人类能看懂的比如把1024显示为1K

E.帮助
命令

--help

任何命令后面带一个 --help 都会显示一个简洁版的帮助,记不住参数就查一下

F.获取远程文件 wget

wget http://ooxx.me/me.jpg

就会获取远程的me.jpg文件到当前目录,一般搬家的时候用这个
让服务器去获取另一个服务器的数据,速度会快的完全不像男人

G.压缩解压缩

unzip wordpress.zip

如果文件是zip形式的,比如刚从wordpress主站wget了一个压缩包过来,只需要输入unzip 文件名,就可以解压缩到当前目录了

tar -czvf ooxx.tar.gz *

把当前目录所有文件以tar命令打包为ooxx.tar.gz文件
-c创建
-z用gzip压缩方式
-v显示压缩过程
-f搞成一坨file

tar -xzvf ooxx.tar.gz

解压缩 ooxx.tar.gz 里的文件到当前目录
-x解压缩
-z用gzip压缩方式
-v显示压缩过程
-f搞成一坨file

 

2. 文件系统命令

A.显示磁盘使用率

df

显示整个主机的总容量以及比率

B.列表文件/子目录使用率 (du)

du

会列出所有文件以及子目录的大小,不是人看的...

du -sh

-s就是summary,只输出当前文件夹总容量
-h一般在linux就是human给人看的意思,会把1048580b转换为1mb显示

du -h --max-depth=1

嘿,只列出当前文件夹和第一级子目录占用大小

C.删除文件 Remove files (rm) 少儿不宜的命令,总是需要确认

rm -vf miao.in

强制删除miao.in这个文件并不需确认,列出删除文件列表

强制删除,不要执行,除非你知道你在干嘛...
-v一般v参数都是显示过程的意思
-f 强奸的单词会不会拼? F-U-C-K的缩写,不确认直接F-word了

rm -rf ooxx

删除ooxx这个文件夹,包含它的子文件和子文件夹

删除文件用上面的命令,但删除文件夹的时候就需要跑下遍历了
-r 比较本土化,是"日"的缩写,在所有命令里都是 recursive 的意思,有些命令是大写的 R 需要注意

D. 拷贝文件 (cp)

cp ooxx.me miao.in

复制ooxx.me这个文件并重命名为miao.in

E. 移动文件/重命名 (mv)

mv ooxx.me miao.in

重命名ooxx.me为miao.in
如果加路径,就是移动到某个路径并重命名为miao.in
和DOS不一样,移动文件和重命名换个思路,其实是一个套路,不是么?

F. 创建空文件 (touch)

touch miao.in

这个很色情的命令,就是创建一个 miao.in 的空文件
如果touch了已有的文件,则会更新那个文件的日期为当前
如果touch次数多了,会high

 

3. 文件权限

A. 更改文件权限 (chmod)

chmod 777 miao.in

默认文件为644,文件夹为755

TIP:1st digit=Owner; 2nd=Group; 3rd=Other
(-rwxrwxwrx = 777, -rwxr-xr-x = 755, -rw-r--r-- = 644, etc.)
7 = Read + Write + Execute
6 = Read + Write
5 = Read + Execute
4 = Read
3 = Write + Execute
2 = Write
1 = Execute
0 = All access denied

 

4. 高级命令

A. 查找. 常用命令,让我们来找一下10MB以上的文件吧

find . -type f -size +10000k -exec ls -lh {} \; | awk '{ print $5 ": " $9 }' |sort -n

B. Grep, 手里握着大西瓜

ls -alh | grep ooxx

只显示含有ooxx的那几列,当然你在cat的时候配合这个用找文件里的某些字段很方便

C. 分页 (Less/More)

less miao.php

如果源代码很长,则会分页显示,上下箭头滚动,输入q退出

tail -n 1000 /var/log/httpd/error_log | more

可以用 | more 参数来滚动显示页面或行

5. MYSQL 数据库

导出数据库

mysqldump -u 数据库用户名 -p 数据库名 > db_ooxx.sql

导出数据库为db_ooxx.sql

导入数据库

mysql -u 数据库用户名 -p 数据库名 < db_ooxx.sql --default-character-set=utf8

把当前目录的 db_ooxx.sql 以 utf8 编码导入,当然你原来是gbk就改成gbk

 


原文转自:
简书青铜红瓦:http://www.jianshu.com/p/591377ad7850   版权归原作者所有,如需转载请注明原出处。

最新回复 (1)
  • 冬月初五
    0 2
    按i进行修改

    按shift +: 输入wq进行保存退出
    • 记录·WiKi
      3
        立即登录 立即注册 
返回
文章系网友原创或转载,目的在于传递更多信息,并不代表本站赞同其观点和对其真实性负责。如有侵权行为,请联系我们admin(a)jilu.wiki,我们会及时删除。