shell 命令记录

2021-12-18 12:04:07 浏览数 (1)

# shell 命令记录

这里只记录平时用到的命令。 一些复杂的操作可以去线上Linux命令查询平台 (opens new window)去查询。

# 1. ssh 命令 连接服务器

# 1.1. 命令

  • ssh 用户名@主机IP
  • ssh 主机IP
  • ssh -i pem文件路径 用户名@主机IP
  • ssh -p 端口 用户名@主机IP

# 1.2. ssh通过pem文件登陆服务器

一些为了安全操作,推荐使用私钥进行登录服务器,拿jenkins来说,默认的验证方式就是私钥

# 1.2.1. 实现方式

先在本机通过ssh-keygen直接生成公私钥

如下在当前文件夹下生成my.pem(私钥)和my.pem.pub(公钥)

ssh-keygen -t rsa -f my.pem

参数说明:-t type密钥类型(rsa、dsa...),-f生成文件名

# 1.2.2. 生成的文件

my.pem 和 my.pem.pub

  1. 将my.pem.pub内容上传至你需要连接的服务器
  2. 操作步骤,编辑authorized_keys文件,路径在当前用户目录下的.ssh文件夹下
  3. 将生成的pub文件的内容追加到authorized_keys文件中

保存退出之后就可以通过ssh -i file.pem user@ip访问了

# 1.3. ssh 携带密码登录-sshpass

# 1.3.1. 安装sshpass
# mac安装,直接执行sh文件。
代码语言:javascript复制
var=`brew list|grep sshpass`
if [ "$var" = "sshpass" ]
then echo "sshpass已安装"
else 
echo "开始安装sshpass"
wget https://raw.githubusercontent.com/kadwanev/bigboybrew/master/Library/Formula/sshpass.rb
brew install sshpass.rb
rm sshpass.rb
echo "sshpass安装成功"
fi
# 1.3.2. 使用

sshpass -p [passwd] ssh -p [port] root@192.168.X.X

# 2. 文件相关操作

# 2.1. tar、zip、rar 解压缩

参考中文文档:tar (opens new window)、rar (opens new window)、unrar (opens new window)、zip (opens new window)、unzip (opens new window)

# 2.1.1. tar 命令

语法: tar [主选项 辅选项] 文件或目录

示例:

代码语言:javascript复制
# 压缩文件 file1 和目录 dir2 到 test.tar.gz
tar -zcvf test.tar.gz file1 dir2

# 解压 test.tar.gz(将 c 换成 x 即可)
tar -zxvf test.tar.gz

# 列出压缩文件的内容
tar -ztvf test.tar.gz 

# 解压到指定目录
tar -zxvf test.tar.gz -C /home

释义:

  • -z : 使用 gzip 来压缩和解压文件
  • -v : --verbose 详细的列出处理的文件
  • -f : --file=ARCHIVE 使用档案文件或设备,这个选项通常是必选的
  • -c : --create 创建一个新的归档(压缩包)
  • -x : 从压缩包中解出文件

其它:

tar 命令其实并不是真的解压缩的处理者,而是使用了 gzip 或者 bzip2 等其它命令来达成,但是 gzip 等命令通常只能处理单个文件,并不方便,所以一般我们都是选择使用 tar 命令间接的完成解压缩。

# 2.1.2. rar 命令

示例:

代码语言:javascript复制
# 压缩文件
rar a -r test.rar file

# 解压文件
unrar x test.rar

释义:

  • a : 添加到压缩文件
  • -r : 递归处理
  • x : 以绝对路径解压文件
# 2.1.3. zip 命令

示例:

代码语言:javascript复制
# 压缩文件
zip -r test.zip file

# 解压文件
unzip test.zip

释义:

  • -r : 递归处理

# 2.2. mv 文件移动

mv: move

将一个文件移动到另一个文件内

代码语言:javascript复制
mv /file1/file.txt /file2

合理利用 * 号。(*代表模糊查询。)

代码语言:javascript复制
# 将一个文件内所有文件,移动到另一个文件内
mv /file1/* /file2
# 将文件内所有jpg类型的文件,移动到另一个文件内
mv /file1/*.jpg /file2

# 2.3. scp 服务器之间copy文件

代码语言:javascript复制
scp -r tank@192.16.1.108:/var/www/blog /home/www/blog  # 以tank用户登录并将服务器文件夹copy到本地
scp /home/www/blog/index.php 192.16.1.108:/var/www/blog # 将本地文件copy到服务器,添填写用户,默认当前用户

# 3. curl 命令模拟http get和post请求

# 3.1. curl 命令参数描述

代码语言:javascript复制
curl "http://www.baidu.com" # 如果这里的URL指向的是一个文件或者一幅图都可以直接下载到本地
curl -i "http://www.baidu.com" # 显示全部信息
curl -I "http://www.baidu.com" # 只显示头部信息
curl -v "http://www.baidu.com" # 显示get请求全过程解析
curl -X GET "http://www.baidu.com" # 指定请求方式

# 3.2. curl 命令模拟 http get请求

案例:

代码语言:javascript复制
curl -v "http://127.0.0.1:80/xcloud/test?version=1&client_version=1.1.0&seq=1001&host=aaa.com"

建议使用双引号来包裹请求,不使用双引号的话需要加入转译符。

代码语言:javascript复制
curl -v http://127.0.0.1:80/xcloud/test?version=1&client_version=1.1.0&seq=1001&host=aaa.com

# 3.3. curl 命令模拟 http post请求

发送请求,Content-Type: application/json

代码语言:javascript复制
curl -X POST -H "Content-Type: application/json" -d '{"name": "Jason", "email": "jason@example.com"}' https://example/contact

发送请求,Content-type:application/x-www-form-urlencoded

代码语言:javascript复制
curl -X POST -d 'name=Jason' -d 'email=jason@example.com' https://example.com/contact.php

发送请求,Content-type:multipart/form-data

代码语言:javascript复制
curl -X POST -F 'name=Jason' -F 'email=jason@example.com' https://example.com/contact.php

# 常用命令

命令

命令直译

描述

实例

ls

List

ls会列举出当前工作目录的内容(文件或文件夹)。

ls

mkdir

Make Directory

mkdir 用于新建一个新目录

mkdir mywork

pwd

Print Working Directory

显示当前工作目录

pwd

cd

Change Directory

切换文件路径,cd 将给定的文件夹(或目录)设置成当前工作目录。

cd /usr/mongo

rmdir

Remove Directory

删除给定的目录,只能删除空目录(目录下不能有文件)。

rmdir mywork

rm

Remove

rm 会删除给定的文件。 rm -rf会删除一个文件夹,r遍历,f强行删除。(终端删除的文件不可恢复)<br/ >

rm work.html

cp

Copy

cp 命令对文件进行复制 cp [选项] 源文件 目标文件

cp work.html /usr/work

mv

Move

mv 命令对文件或文件夹进行移动,如果文件或文件夹存在于当前工作目录,还可以对文件或文件夹进行重命名。 mv [选项] 源文件 目标文件

mv work.html /usr/work

cat

concatenate and print files

cat 用于在标准输出(监控器或屏幕)上查看文件内容

cat work.html

tail

print TAIL(from last)

tail 默认在标准输出上显示给定文件的最后10行内容。tail -n N 指定在标准输出上显示文件的最后N行内容。tail -f 持续跟踪文件情况,用于实时查看日志。

tail work.html

less

print LESS

less 按页或按窗口打印文件内容。在查看包含大量文本数据的大文件时是非常有用和高效的。你可以使用Ctrl F向前翻页,Ctrl B向后翻页。

grep

grep 在给定的文件中搜寻指定的字符串。grep -i “” 在搜寻时会忽略字符串的大小写,而grep -r “” 则会在当前工作目录的文件中递归搜寻指定的字符串。

find

这个命令会在给定位置搜寻与条件匹配的文件。你可以使用find -name 的-name选项来进行区分大小写的搜寻,find -iname 来进行不区分大小写的搜寻。

find -iname work.html

tar

tar命令能创建、查看和提取tar压缩文件。tar -cvf 是创建对应压缩文件,tar -tvf 来查看对应压缩文件,tar -xvf 来提取对应压缩文件。

gzip

gzip 命令创建和提取gzip压缩文件,还可以用gzip -d 来提取压缩文件。

unzip

unzip 对gzip文档进行解压。在解压之前,可以使用unzip -l 命令查看文件内容。

help

help会在终端列出所有可用的命令,可以使用任何命令的-h或-help选项来查看该命令的具体用法。图就省略啦,会有详细列表显示出来的。

whatis

What is this command

whatis 会用单行来描述给定的命令,就是解释当前命令。

exit

exit用于结束当前的终端会话。

ping

ping 通过发送数据包ping远程主机(服务器),常用与检测网络连接和服务器状态。

who

Who Is logged in

who能列出当前登录的用户名。

su

Switch User

su 用于切换不同的用户。即使没有使用密码,超级用户也能切换到其它用户。

uname

uname会显示出关于系统的重要信息,如内核名称、主机名、内核版本、处理机类型等等,使用uname -a可以查看所有信息。

df

Disk space Free

df查看文件系统中磁盘的使用情况–硬盘已用和可用的存储空间以及其它存储设备。你可以使用df -h将结果以人类可读的方式显示。

ps

ProcesseS

ps显示系统的运行进程。

top

Top processes

top命令会默认按照CPU的占用情况,显示占用量较大的进程,可以使用top -u 查看某个用户的CPU使用排名情况。

shutdown

shutdown用于关闭计算机,而shutdown -r用于重启计算机。

命令

描述

lsof -i:端口号

查看端口号使用情况

netstat -nltp|grep 端口号

ps -ef|grep mongo

0 人点赞