1. 免密码登录服务器
ssh有两种认证方式,一种是使用密码,一种是使用密钥来进行登录,这里介绍使用密钥登录的方法。
1.1. 生成密钥
ssh-keygen example@email.com
1.2. 将密钥传送到服务器
ssh-copy-id username@ip
1.3. 设置别名
通过设置home
目录下的.ssh
文件下的config
文件
# ~/.ssh/config Host 别名 # 这里你可以设置一个人简短的名字 HostName ip # 上一步目标服务器的ip Port 22 User 上一步你的用户名
设置完成后,我们就可以使用别名来直接进行登录了,假如你设置的别名是deng
,那么你就可以使用下面这种方法来进行登录。
ssh deng
Windows用户因为没有bash
终端,所以上面的命令不能执行,你可以通过下载一个git bash
(https://gitforwindows.org/)来解决这个问题。另外,Windows的目录应该是C:\Users\你的用户名\.ssh
,其余操作与Linux相同。这里推荐你安装一个Windows下的WSL子系统(不在本文的讨论范畴),这样就可以直接通过WSL作为跳板机,来进行服务器的登录。
2. 文件目录
2.1. pwd
显示当前目录
2.2. cd
进入目录
按一次tab
键可以自动补全路径,按两次可以将所有匹配的路径列出来
cd # 进入home目录 cd ../ # 进入上一级目录(相对的) cd / # 进入根目录(绝对的) cd ../../ # 进入上一级的上一级目录(相对的) cd /opt # 进入根目录下的opt目录下
2.3. ls
列出文件和目录
ls # 列出当前目录下的文件和目录 ls /opt # 列出/opt目录下的文件和目录 ls -l # 列出当前目录下的文件和目录(带有详细信息) ls -a # 列出当前目录下的所有的文件和目录 ls -t # 按照最后一次修改时间进行排序 ls -h # 以人易于理解的方式显示信息(文件大小以Kb Mb Gb进行显示)
2.4. du
查看目录和文件的大小
du -h # 以人类易于理解的方式进行显示 du --summarize # 当前目录的大小信息 # 显示N级的大小信息,N=0时,等价于--summarize # N=1时,显示当前目录下,各个目录和文件的大小信息 du --max-depth=N
2.5. touch
创建文件
touch 文件名
2.6. mkdir
创建目录
mkdir 目录名
3. 文件浏览
3.1. cat
将文件内容全部打印出来
cat 文件名 # 打印当前文件 cat -n 文件名 # 打印时带有行号
3.2. less
浏览文件内容,可以使用上下左右方向键来控制内容移动
less 文件名 # 浏览当前文件 less -S 文件名 # 不换行显示内容 less -N 文件名 # 显示行号
3.3. head
显示文件前几行的内容
head 文件名 # 显示文件前10行内容 head 文件名 -n 100 # 显示文件前100行内容
4. 文件改动
4.1. rm
删除文件和目录
rm 1.txt # 删除1.txt文件 rm -r test # 删除test目录和该目录下的内容(相当于删除了一个文件夹) rm -f 1.txt # 强制删除1.txt rm -i 1.txt # 在删除之前会再次向你确认是否要进行删除操作
4.2. mv
移动/重命名 文件和目录
mv 1.txt 2.txt # 把1.txt重命名为2.txt mv 1.txt /opt # 把1.txt移动到/opt目录下 mv test /opt # 把test目录移动到/opt目录下 mv test /opt -i # 把test目录移动到/opt目录下,如果/opt下已经存在同名的test目录,会询问是否覆盖 mv test /opt -f # 把test目录移动到/opt目录下,如果/opt下已经存在同名的test目录,会直接是否覆盖
4.3. cp
复制文件
cp 1.txt 2.txt # 将1.txt复制一份,存为2.txt cp -r test /opt # 将test目录和其中的内容复制到/opt目录下
5. 文件权限
5.1. 权限说明
在运行ls -l
命令时,可以看到以下信息,第一列即为权限信息
root@sajhkjfsdhsds45sdfsd:/$ ls -l total 1364 drwxr-xr-x 1 root root 4096 Nov 5 09:21 bin drwxr-xr-x 1 root root 4096 May 14 2019 boot drwxr-xr-x 1 root root 4096 Nov 12 09:16 dev drwxr-xr-x 1 root root 4096 Nov 12 09:16 etc drwxr-xr-x 1 root root 4096 Jul 15 2020 home
完整的权限信息为drwxrwxrwx
,第一个字母代表类型,d
为目录,后面的9个字母可以看作3个rwx
的重复
r
代表读取权限w
代表写入权限x
代表执行权限
第一组是所有者的权限,第二组是群组的权限,第三组是其他用户的权限,在编写shell时,可能会出现文件不能执行的问题,这主要是因为没有x
权限,你可以通过以下命令来设置权限
5.2. chomod
假如这里有一个test.sh文件,他的权限信息为-rw-r--r--
,即这个文件用户是没有执行权限的,我们可以通过下面的命令来加上X
权限
chmod u+x test.sh # u就是user x就是执行权限 u+x就是给user加上执行权限 chmod u-x test.sh # u就是user x就是执行权限 u-x就是给user去掉执行权限
6. 文件压缩
6.1. tar
用来打包文件
tar -cf 1.tar 1.txt # 把文件1.txt打包成1.tar tar -cf test.tar test/ # 把目录test打包成test.tar tar -xf 1.tar # 把1.tar这个包打开(解包) tar -zxf test.tar.gz # 直接将test.tar.gz解压解包成test
6.2. gzip/gunzip
压缩和解压
gzip 1.tar # 将1.tar压缩,得到1.tar.gz gunzip 1.tar.gz # 将1.tar.gz解压,得到1.tar
6.3. zcat/zless
直接查看压缩文本文件的内容
zcat 1.txt.gz # 结果与cat相同 zless 1.txt.gz # 结果与less相同
7. 进程管理
7.1. ps
查看当前系统运行的进程
ps # 打印出当前系统的进程 # PID TTY TIME CMD # 14 tty2 00:00:00 bash # 67 tty2 00:00:00 ps ps -aux # 通过CPU和内存的使用来过滤出当前用户进行的进程
7.2. kill
停止一个进程
kill pid # 停止pid号对应的进程,pid号为ps输出的第一列 kill -9 pid # -9 为强制停止
7.3. nohup
将一个任务放到后台执行
nohup 命令 & # 在后台运行命令,默认输出nohup.log日志文件 # nohup gunzip test.gz & 在后台解压文件 nohup 命令 >/dev/null 2>&1 & # 在后台运行命令,同时不输出日志内容
8. 下载
8.1. wget
下载内容
wget https://www.baidu.com/index.html # 将该网址的内容index. # 将该网址的内容index.html下载下来,保存为index1.html wget https://www.baidu.com/index.html -O index1.html # 将该网址的内容index.html下载下来,保存为index1.html,同时保存到/opt目录下 wget https://www.baidu.com/index.html -O index1.html -P /opt # 断点续传(下载一半突然命令被关掉了,下次下载的时候从上次的地方接着下载) wget -c https://www.baidu.com/index.html
8.2. scp
从服务器上传/下载文件
# 从服务器下载到本地 # 将服务器/opt目录下的test.txt下载到当前目录 scp username@ip:/opt/test.txt ./1.txt # 从本地上传到服务器 # 将本地的1.txt上传到服务器的/opt目录下 scp ./1.txt username@ip:/opt/ # scp也可以进行目录(文件夹)的上传与下载,需要加上 -r 参数