linux 环境下服务器向另外一个服务器传输文件的命令

scp a.txt root @ 172.169.0.203 : /root / work

注: 在操作前ping 一下看是否能连接对方的服务器 ping 172.169.0.203
a.txt : 为你要传的文件
root:以root 权限执行
@ 172.169.0.203 :@要传的目的服务器
:/ 加要传的目录位置

要传输整个文件夹(包括其中的文件和子文件夹),可以使用 -r 参数来递归复制。

scp -r [源文件夹] [目标地址]

其中:

  • 源文件夹 是指要复制的文件夹的路径。

  • 目标地址 是指目标主机的用户名和主机名,以及目标文件夹的路径。

例如,如果要将本地文件夹 folder 复制到远程服务器的 /home/user 目录下,并且远程服务器的用户名为 username,可以使用以下命令:

scp -r folder username@remotehost:/home/user

这将递归复制整个 folder 文件夹及其所有内容到远程服务器。

不使用vi 进入文件的情况下把文件中指定字符进行替换

sed -i "s/int/INT/g"

把当前目录下所有文件中包含int的字符替换为INT

sed -i 就是直接对文本文件进行操作的
s :取代,可以直接进行取代的工作哩!通常这个 s 的动作可以搭配正规表示法!例如 1,20s/old/new/g 就是啦!
加了 g 就是每行都全局替换。没有 g 就是每行只替换第一个匹配的

加上要替换的目录时

sed -i "s/int/INT/g" /root/work/inittab

在不确定要替换的文件时可使用通配符查询

sed -i "s/int/INT/g" 'grep -l int ./*'

grep -l 用于在多个文件中,查询是否存在匹配的内容

“:x”和”:wq”的真正区别:

:wq

强制性写入文件并退出.
即使文件没有被修改也强制写入,
并更新文件的修改时间.

:x

写入文件并退出.
仅当文件被修改时才写入,
并更新文件修改时间,
否则不会更新文件修改时间.

FTP与SFTP 的区别

FTP 不提供任何安全通道来在主机之间传输文件; FTP使用TCP / IP协议,明文传输用户信息和数据。 FTP使用TCP端口21上的控制连接建立连接;

SFTP协议提供了一个安全通道,用于在网络上的主机之间传输文件。 SFTP是SSH协议的一部分,它是一种远程登录信息,基于SSH来加密传输文件,可靠性高,可断点续传。SFTP是在客户端和服务器之间通过SSH协议(TCP端口22)建立的安全连接来传输文件

linux 的线程与进程

进程是资源分配的最小单位,进程有独立地址空间,多个线程是共享地址空间和公共变量
线程是cpu时间片分配的最小单位,程序执行的最小单位。
一个进程至少包含一个线程,即主线程

退出所有正在执行的操作

CTRL + C

删除当前磁盘内所有包含’normal‘ 的文件名的文件 的命令

find ./ -name '*normal*' | xargs rm -f

xargs(英文全拼: eXtended ARGuments)是给命令传递参数的一个过滤器,也是组合多个命令的一个工具。
xargs 可以将管道或标准输入(stdin)数据转换成命令行参数,也能够从文件的输出中读取数据。
xargs 也可以将单行或多行文本输入转换为其他格式,例如多行变单行,单行变多行。
xargs 默认的命令是 echo,这意味着通过管道传递给 xargs 的输入将会包含换行和空白,不过通过 xargs 的处理,换行和空白将被空格取代。
xargs 是一个强有力的命令,它能够捕获一个命令的输出,然后传递给另外一个命令。
之所以能用到这个命令,关键是由于很多命令不支持|管道来传递参数,而日常工作中有有这个必要,所以就有了 xargs 命令,例如:

find /sbin -perm +700 |ls -l       #这个命令是错误的
find /sbin -perm +700 |xargs ls -l   #这样才是正确的

从A服务器test1 用户跳转到B服务器test2 用户下,使用命令

ssh test2 @B服务器ip地址

查看ls 的帮助

man ls

显示文件索引节点号

ls -i

显示文件单位

ls -h

在不打开文件的情况下,只使用一个命令将一个文件的内容清空

通过重定向来清空文件内容
该方法是最简单的,通过shell重定向null到指定文件即可

$  > system.log

还有两个重定向方法:
重定向:或者true到指定文件
$  :> system.log

或者
$  true > system.log

使用echo命令清空,此时会在文件中写入一个空行“\n",命令如下:
echo "">file_name

要想彻底清空文件内容,可以使用echo命令的-n选项,该选项将告诉echo,不再输出一个空白行
$  echo -n "" > system.log

管道符的用法

基本语法

bash命令 | 管道命令
bash命令,就是Linux中的一切具有能够输入的命令,例如ps输出进程信息,ls输出文件列表等等

管道命令,就是能够接收标准输出,例如grep,less,head,tail等命令

截取出ps -ef命令里带有docker字符的所有命令
[root@iZ1608aqb7ntn9Z Test0901]# ps -ef|grep docker
截取带有java进程的命令也是如此:
[root@iZ1608aqb7ntn9Z Test0901]# ps -ef|grep java
查看前一条命令输入的个数:
[root@iZ1608aqb7ntn9Z Test0901]# ls   | wc -l

显示或修改系统时间与日期;

date

显示或修改系统时间与日期;

用于设置用户密码:

passwd

passwd root

改变用户身份(切换到超级用户):

su -

用于清除屏幕信息

clear

显示指定命令的帮助信息:

man

查询系统处于什么运行级别:

who -r

显示目前登录到系统的用户:

who -buT

显示系统内存状态(单位MB):

free -m

ps

显示系统进程运行动态:

ps -ef

查看sshd进程的运行动态:

ps -ef | grep sshd

用于分页查看文件,例如每页10行查看boot.log文件:

more -c -10 /var/log/boot.log

用于查看文件,例如查看Linux启动日志文件文件,并标明行号:

cat -Ab /var/log/boot.log

压缩与解压

tar

将/etc文件夹中的文件归档到文件etc.tar(并不会进行压缩):

tar -cvf /mydata/etc.tar /etc

用gzip压缩文件夹/etc中的文件到文件etc.tar.gz:

tar -zcvf /mydata/etc.tar.gz /etc

用bzip2压缩文件夹/etc到文件/etc.tar.bz2:

tar -jcvf /mydata/etc.tar.bz2 /etc

分页查看压缩包中内容(gzip):

tar -ztvf /mydata/etc.tar.gz |more -c -10

解压文件到当前目录(gzip):

tar -zxvf /mydata/etc.tar.gz

解压文件到指定目录(gzip):

tar -zxvf /mydata/etc.tar.gz -C /mydata/etc

软件的安装与管理

rpm

RPM是Red-Hat Package Manager的缩写,一种Linux下通用的软件包管理方式,可用于安装和管理.rpm结尾的软件包。

安装软件包:

rpm -ivh nginx-1.12.2-2.el7.x86_64.rpm

模糊搜索软件包:

rpm -qa | grep nginx

精确查找软件包:

rpm -qa nginx

查询软件包的安装路径:

rpm -ql nginx-1.12.2-2.el7.x86_64

查看软件包的概要信息:

rpm -qi nginx-1.12.2-2.el7.x86_64

验证软件包内容和安装文件是否一致:

rpm -V nginx-1.12.2-2.el7.x86_64

更新软件包:

rpm -Uvh nginx-1.12.2-2.el7.x86_64

删除软件包:

rpm -e nginx-1.12.2-2.el7.x86_64

yum

Yum是Yellow dog Updater, Modified的缩写,能够在线自动下载RPM包并安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,非常方便!

安装软件包:

yum install nginx

检查可以更新的软件包:

yum check-update

更新指定的软件包:

yum update nginx

在资源库中查找软件包信息:

yum info nginx*

列出已经安装的所有软件包:

yum info installed

列出软件包名称:

yum list nginx*

模糊搜索软件包:

yum search nginx

压缩

tar –cvf jpg.tar *.jpg //将目录里所有jpg文件打包成tar.jpg
tar –czf jpg.tar.gz *.jpg //将目录里所有jpg文件打包成jpg.tar后,并且将其用gzip压缩,生成一个gzip压缩过的包,命名为jpg.tar.gz
tar –cjf jpg.tar.bz2 *.jpg //将目录里所有jpg文件打包成jpg.tar后,并且将其用bzip2压缩,生成一个bzip2压缩过的包,命名为jpg.tar.bz2
tar –cZf jpg.tar.Z *.jpg //将目录里所有jpg文件打包成jpg.tar后,并且将其用compress压缩,生成一个umcompress压缩过的包,命名为jpg.tar.Z
rar a jpg.rar *.jpg //rar格式的压缩,需要先下载rar for linux
zip jpg.zip *.jpg //zip格式的压缩,需要先下载zip for linux

解压

tar –xvf file.tar //解压 tar包
tar -xzvf file.tar.gz //解压tar.gz
tar -xjvf file.tar.bz2 //解压 tar.bz2
tar –xZvf file.tar.Z //解压tar.Z
unrar e file.rar //解压rar
unzip file.zip //解压zip