有关Linux连接服务器需要用到的一些命令【ssh】

一、创建删除移动复制文件夹

创建mkdir

mkdir 文件夹名1 文件名夹2 文件夹名3 

参数【rm命令】

-f:--force 不提示,强制删除文件或目录,但是会忽略不存在的文件
-i:--interactive 进行交互式删除,删除前逐一询问确认
-r, -R:--recursive 递归删除,将指定目录下的所有文件与子目录一并删除
-v: --verbose 详细显示进行的步骤
--help 显示此帮助信息并退出
--version 输出版本信息并退出

删除文件rm

# 删除文件
rm 文件名
# 强制删除文件
rm -f 文件名
# 交互式删除文件
rm -i 文件名

删除文件夹rm

# 删除目录不加 -r 会报错
$ rm folder
rm: cannot remove ‘folder’: Is a directory
 
# 正确删除目录
$ rm -r folder
 
# 强制删除目录
$ rm -rf folder

移动mv

mv [-fiv] source destination

其中:

-f:force,强制直接移动而不询问
-i:若目标文件(destination)已经存在,就会询问是否覆盖
-u:若目标文件已经存在,且源文件比较新,才会更新

如将/test1目录下的file1复制到/test3 目录,并将文件名改为file2,可输入以下命令:
mv /test1/file1 /test3/file2

mv ./WorkReport/web.xml ./WorkReport/WEB-INF/
注:移动/WorkReport/web.xml文件到/WorkReport/WEB-INF/

mv /data/new /data/old/
注:移动/data/new 到/data/old/文件夹下
注意点:移动文件夹的话就不要再加 / 了

如果是移动文件夹下的所有文件的话就可以文件夹后面跟上 /* 

mv /data/new/* /data/old/

复制cp

cp [-adfilprsu] 源文件(source) 目标文件(destination)

其中

-a:是指archive的意思,也说是指复制所有的目录
-d:若源文件为连接文件(link file),则复制连接文件属性而非文件本身
-f:强制(force),若有重复或其它疑问时,不会询问用户,而强制复制
-i:若目标文件(destination)已存在,在覆盖时会先询问是否真的操作
-l:建立硬连接(hard link)的连接文件,而非复制文件本身
-p:与文件的属性一起复制,而非使用默认属性
-r:递归复制,用于目录的复制操作
-s:复制成符号连接文件(symbolic link),即“快捷方式”文件
-u:若目标文件比源文件旧,更新目标文件 

如将/test1目录下的file1复制到/test3目录,并将文件名改为file2,可输入以下命令:
cp /test1/file1 /test3/file2

CP命令
格式: CP [选项]  源文件或目录   目的文件或目录
选项说明:-b 同名,备分原来的文件
        -f 强制覆盖同名文件
        -r  按递归方式保留原目录结构复制文件

cp -Rf /home/user1/* /root/temp//home/user1目录下的所有东西拷到/root/temp/下而不拷贝user1目录本身。
即格式为:cp -Rf 原路径/ 目的路径/

查看ls

ls

二、将需要服务器运行的程序上传到服务器

上传文件到服务器:
本地端首先打开终端
cd 到包含要上传的文件的文件夹,然后运行命令

scp 文件名 服务器名@服务器IP地址:要上传到服务器上的路径例如:
scp HelloWorld.py user@123.192.6.125:~/Desktop/Test

注意符号 ~

上传文件夹到服务器:
本地端首先打开终端

scp -r 本地文件夹名字 服务器名@服务器IP地址:~/path

将服务器文件或文件夹复制到本地的命令就是将地址反过来就可以了

三、查看服务器的磁盘空间大小:df

既然涉及到文件的传输,那必然得查看硬盘存储空间的大小。

df -hl

h让可读性变高,l是显示local(本地)文件系统
下面代码也一样。

df -h

在这里插入图片描述
执行的结果每列的含义:

第一列Filesystem,磁盘分区
第二列Size,磁盘分区的大小
第三列Used,已使用的空间
第四列Avail,可用的空间
第五列Use%,已使用的百分比
第六列Mounted on,挂载点

下面附上df命令的全部参数使用说明:

-a或--all:包含全部的文件系统;
--block-size=<区块大小>:以指定的区块大小来显示区块数目;
-h或--human-readable:以可读性较高的方式来显示信息;
-H--si:与-h参数相同,但在计算时是以1000 Bytes为换算单位而非1024 Bytes;
-i或--inodes:显示inode的信息;
-k或--kilobytes:指定区块大小为1024字节;
-l或--local:仅显示本地端的文件系统;
-m或--megabytes:指定区块大小为1048576字节;
--no-sync:在取得磁盘使用信息前,不要执行sync指令,此为预设值;
-P--portability:使用POSIX的输出格式;
--sync:在取得磁盘使用信息前,先执行sync指令;
-t<文件系统类型>--type=<文件系统类型>:仅显示指定文件系统类型的磁盘信息;
-T--print-type:显示文件系统的类型;
-x<文件系统类型>--exclude-type=<文件系统类型>:不要显示指定文件系统类型的磁盘信息;
--help:显示帮助;
--version:显示版本信息。

四、查看文件和目录大小的命令:du

du -sh /data //看/data目录的总大小
du -sh  //或者进到/data目录后直接执行:
//其中的-s参数就是查看总大小(区别于查看其中每个目录的大小),而-h参数是把默认的单位KB改为比较好辨认的单位。
//如果要看/data目录下各个子目录的大小,包括子目录的子目录,但不包含/data下文件,可以用以下命令:
du -h
//如果要看/data目录下各个子目录的大小,包括子目录的子目录,且包含/data下文件,可以用以下命令:
du –h *

下面附上du命令的参数使用说明:

-a或-all 显示目录中个别文件的大小。
-b或-bytes 显示目录或文件大小时,以byte为单位。
-c或--total 除了显示个别目录或文件的大小外,同时也显示所有目录或文件的总和。
-k或--kilobytes 以KB(1024bytes)为单位输出。
-m或--megabytes 以MB为单位输出。
-s或--summarize 仅显示总计,只列出最后加总的值。
-h或--human-readable 以K,M,G为单位,提高信息的可读性。
-x或--one-file-xystem 以一开始处理时的文件系统为准,若遇上其它不同的文件系统目录则略过。
-L<符号链接>或--dereference<符号链接> 显示选项中所指定符号链接的源文件大小。
-S或--separate-dirs 显示个别目录的大小时,并不含其子目录的大小。
-X<文件>或--exclude-from=<文件><文件>指定目录或文件。
--exclude=<目录或文件> 略过指定的目录或文件。
-D或--dereference-args 显示指定符号链接的源文件大小。
-H或--si 与-h参数相同,但是K,M,G是以1000为换算单位。
-l或--count-links 重复计算硬件链接的文件。

五、查看当前的绝对路径

pwd

pwdprint working directory的缩写

语法

pwd命令的语法如下:pwd [选项]

选项说明
-L打印$PWD的值,如果它命名当前工作目录
-P打印物理目录,不带任何符号链接

-L是默认的。

事实上只需pwd即可,我们用不到这些选项。

六、查看ip地址

显示所有网络信息

ifconfig

只显示ip地址

hostname -I
hostname -i

ip addr
ip address
ip a
ip a|more

有关更进一步的du命令学习参考:Linux查看磁盘空间大小的命令
参考链接:ssh

七、免密ssh和自定义服务器名字【远程连接服务器】

原理
实现免密登录需要 本地的公钥id_rsa.pub放在服务器上的 authorized_keys 文件中
服务器中的位置一般在~/.ssh.authorized_keys。若不存在,创建一个即可。
注意 authorized_keys 文件的权限必须是600,如果权限不对会影响登录。
touch authorized_keys
chmod 600 authorized_keys

本地生成公钥和私钥

ssh-keygen -t rsa

参数-t rsa表示使用rsa算法进行加密,执行后,会在当前用户/.ssh目录下找到id_rsa(私钥)id_rsa.pub(公钥)

正常情况下可以跳过上面的两个步骤。

服务器添加本地公钥ssh-copy-id

本地公钥一般在Home目录下面,按Ctrl + H显示以.开头的文件

ssh-copy-id -i id_rsa.pub 服务器用户名@服务器ip地址
例如
ssh-copy-id -i ~/.ssh/id_rsa.pub kkang@222.219.189.123

-i 指定本地的公钥文件地址
会自动将本地的公钥id_rsa.pub传入到服务器的~/.ssh/authorized_keys中

在Windows下面执行ssh-copy-id会出现以下bug:

ssh-copy-id : 无法将“ssh-copy-id”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,
请确保路径正确,然后再试一次。
所在位置 行:1 字符: 1
+ ssh-copy-id
+ ~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (ssh-copy-id:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

解决方案是先在powershell中,执行以下内容:

 
function ssh-copy-id([string]$userAtMachine, $args){   
    $publicKey = "$ENV:USERPROFILE" + "/.ssh/id_rsa.pub"
    if (!(Test-Path "$publicKey")){
        Write-Error "ERROR: failed to open ID file '$publicKey': No such file"            
    }
    else {
        & cat "$publicKey" | ssh $args $userAtMachine "umask 077; test -d .ssh || mkdir .ssh ; cat >> .ssh/authorized_keys || exit 1"      
    }
}

在Windows系统下,可能出现:

'ssh-copy-id' 不是内部或外部命令,也不是可运行的程序
或批处理文件。

方法1:可以下载一个git然后点击Open Git Bash here,执行上述命令。
在这里插入图片描述
方法 2:使用 WSL(Windows Subsystem for Linux)
直接执行上述命令即可

方法 3:手动复制、

  1. 打开公钥文件:notepad $env:USERPROFILE\.ssh\id_rsa.pub
  2. 复制公钥内容。
  3. 登录到远程服务器:ssh username@remote_host
  4. 在远程服务器上创建 .ssh 目录(如果不存在的话):mkdir -p ~/.ssh
  5. 将公钥内容粘贴到 authorized_keys 文件:将公钥内容粘贴到 authorized_keys 文件:

使用别名登录config

在本地的.ssh目录下创建一个config文件,写入配置:

# Host 自定义连接服务器名称
Host 别名
# HostName 连接服务器IP
HostName xx.xx.xx.xx
# Port 服务器 ssh 对外开放的端口
Port 22
# 登录服务器的用户
User root
# 本地服务器密钥文件地址
IdentityFile ~/.ssh/id_rsa

一般情况下写下面这三个就ok,如下:
其中Host是别名

Host 3080
    HostName 221.201.184.123
    User kk

Host 4090
    HostName 221.201.184.134
    User kk

到时候只需ssh 4090,即221.201.184.134这里主机,就能直接连上。


创作不易,观众老爷们请留步… 动起可爱的小手,点个赞再走呗 (๑◕ܫ←๑)
欢迎大家关注笔者,你的关注是我持续更博的最大动力


原创文章,转载告知,盗版必究



在这里插入图片描述


在这里插入图片描述
♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

旋转的油纸伞

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值