连接linux服务器使用xshell、mobaxterm等工具,目前我工作使用的mobaxterm
mobaxterm 官网:
下载免费版的Portable edition
(免安装)版后,zip下载完成后,解压,双击文件夹中的可直接运行
一、mobaxterm连接linux
使用ssh协议连接linux开发主机
如果不知道主机ip地址,是vm虚拟机装出来的linux环境可登录并输入ifconfig查看ip,端口,网段等
如果虚拟的linux没有网卡的ip可参考该文档虚拟机linux没有ip_linux 网卡没有ip_LongZheOVO的博客-CSDN博客
验证自己的电脑能ping通该ip地址
保存密码后下次可双击登录该session
连接SSH成功后,会自动连接SFTP,可访问主机的目录,可以修改后访问其他目录
用sftp可上传文件至linux服务器,下载linux服务器中的文件到windows中,拖拽,删除等
xftp也可用于传输文件:win和linux之间相互传输文件(如上传安装包)
linux系统中一切都是文件
二、linux命令
工作过程中常遇到的linux:
cd 切换路径,cd..返回上一级
free 查看空间
ll 查看有哪些文件
rmdir 删除空目录
rm -rf 强制删除文件或文件夹
pwd 查看当前路径
通过root账号
drwxr-xr-- 2 zzp 22.cc
d开头代表文件夹,-开头代表文件
rwx:用户zzp的权限,r-x:用户组bcbx22的权限,r--:其他人的权限
chmod 三位数字 文件/文件夹
chmod 644 c1:将c1文件的权限改为644(rw-r--r--)
r:读:4
w:写:2
x:执行:1
-:无权限:0
sudo 强制修改 sudo chmod 504 ch02.txt
sh 执行文件 sh 1.sh
reboot 重启
find 路径 -name "文件夹或文件名字"(部分名字加通配符* find /home/chen -name *.log
tail 默认后10行 tail -f filename |grep ‘DEBUG’ -f持续
head -n 10 前10行
vi/vim编辑器 按i 修改文件后esc退出 再输入:wq!保存并强制退出
快捷键:按tab键补全,按2次tab键可显示各种可能的命令
--help 看命令怎么用
man 操作手册
1、启动服务
systemctl start 服务名
2、停止服务
systemctl stop 服务名
3、重启服务
systemctl restart 服务名
java -jar demo.jar 启动jar包
1.netstat -ntpl查看到端口对应的pid
2.ps -ef |grep PID 确认该pid是否为该项目进程
3.Kill PID号 杀掉进程就不会占用8085端口
4.再次确认端口和jar包是否被杀掉ps -ef |grep PID / netstat -ntpl
linux命令提示符
root:表示当前用户名
192:主机名
~:表示当前所在目录,~代表home目录(当前用户存放数据的目录)
#:表示当前用户是管理员,$表示普通用户
文件和目录相关命令
1.ls(list)列出当前文件下的文件和文件夹的名字
ls:列出当前文件下的文件和文件夹的名字
ls -a:列出当前文件夹下所有(all)的文件和文件夹的名字,包含隐藏文件(.开头的文件)
ls -l:(ll) 竖长列表(long)列出当前目录下的所有文件或文件夹的详细信息(文件的属性与权限等)
蓝颜色的是文件夹,白颜色是普通文件,红颜色的是压缩包安装包,绿颜色的是执行脚本
drwxr-xr-x 5 root root 4096 Apr 23 21:12 bcbx22
d开头的文件夹(directroy),-开头的是文件,后面跟读写执行权限,5表示包含的子文件夹的数量,第一个root表示文件夹的拥有者(用户),第二个root表示用户所在的组,4096表示文件夹大小,修改时间,文件名
ls -la/-al:展示包含隐藏文件的详细信息
ls -R:递归(Recursive)显示当前文件夹下的文件和文件夹(子文件子目录一层一层显示)
ls --help:-help了解ls的所有参数含义
2.mkdir(make directory)创建空目录
mkdir 文件夹名字:创建空文件夹
mkdir 文件夹1 文件夹2 文件夹3:创建多个空文件夹,并列关系
mkdir -p 文件夹1/文件夹2/文件夹3:递归创建多个文件夹,层级结果,父(parents)子关系
3.rmdir(remove directory) 删除空目录
rmdir 文件夹名字:删除空文件夹
rmdir 文件夹1 文件夹2 文件夹3:删除多个空文件夹
rmdir -p 文件夹1/文件夹2/文件夹3:递归删除多个空文件夹
4.cd(change directory) 切换目录
绝对路径:由/根目录写起 cd /root/c1/c2
相对路径:不是由根目录写起,取决于自己的位置,一层一层进 cd c1/c2(已经在/root目录下)
cd:回用户主目录
cd ~ :回用户主目录
cd .. :返回上一级目录
cd ../.. :返回上两级目录
cd / :返回根目录
./ 当前目录
5.pwd(print working directory):输出当前工作路径
6.touch 创建文件
touch 文件名:创建文件
touch ch01:创建文件ch01
touch ch02 ch03 :创建多个文件ch02、ch03
7.vi文本编辑器
vi 文件名:vi c1(如果有c1的文件,那么打开;如果没有c1的文件,那么创建)
Insert 编辑模式(按INSERT/i/a/o),标志是左下角的--INSERT--
Esc 命令模式(按ESC),标志是--INSER--消失
1):wq 表示退出保存
2):wq!表示强制保存退出
3):q 表示退出
4):q! 表示强制退出
5)G(命令模式下按大写G)跳到文件的最后一行
6)gg(命令模式下按小写gg)跳到文件的第一行
7)u 撤销之前的操作
8)dd 删除当前行(光标所在行)
9)?字符 查找字符,从最后往前找,按n(next)跳下一个字符
10)/字符 查找字符,从上面往下找
q退出程序;w保存文件;!强制
ctrl b:往上翻页
ctrl f:往下翻页
ctrl c:万能终止
8.cat 查看文件所有内容
cat 文件名:查看文件所有内容
cat c1:查看c1文件所有内容
cat -n 文件名:显示行号+文件内容
cat -n c1:显示文件c1的内容和行号
9.cp 复制文件或目录(copy)
cp 源文件 目录文件夹路径下(推荐使用绝对路径)
cp ch01 c1:将ch01文件复制到c1文件夹中
cp ../ch02 ./:将上一层的ch02文件复制到当前目录(./)
cp c1 c2:在当前目录下复制c1文件,命名为c2
cp -r 源文件夹 目标文件夹:复制文件夹(递归持续复制,用于整个文件夹的复制)
cp -r chen1 chen2:复制chen1文件夹到chen2文件夹中
(不能将文件夹复制到文件里)
10.rm 删除文件或目录(推荐使用相对路径)
rm 文件名(提示"是否删除文件"y)
rm c01:删除文件c01
rm -r:删除文件夹
rm -r chen01:删除文件夹chen01
rm -f:强制删除文件
rm -rf:强制删除文件或文件夹
rm -fr chen01:强制删除文件夹chen01,不给任何提示
rm -fr /root/bcbx22/chen01
rm -fr / (红线命令不要练习)
11.mv 移动、重命名文件/文件夹
mv 源文件 新文件:重命名
mv ch01 ch1
mv 源文件夹 新文件夹:重命名
mv chen1 chen2
mv 源文件 目标文件夹:移动文件至某个文件夹下
mv chen1 chen2:将文件夹c1移动到c2文件夹里
mv c1 chen2:将文件c1移动到chen2文件夹里
mv c1 chen2/c2:将文件c1移动到chen2文件夹里并重命名为c2
复制文件,文件的时间会变;移动文件,时间不会变
12.find 在指定文件夹下查找文件,输出绝对路径(用于忘记文件位置)
find 路径 -name "文件夹或文件名字"(部分名字加通配符*,*代表任意字符,需要用双引号,返回绝对路径)
find / -name "test.txt" 知道名字全称
find /root/bcbx22 -name "test*" 文件名以test开头
find / -name "*txt" 文件名以txt结尾
find / -name 'z*03' 文件名以z开头03结尾
13.tar 打包和解包文件
压缩:tar -cvf 压缩后的包名(建议以.tar结尾,显示为红色)需要压缩的文件或文件夹 ,可以并列跟文件,压多个文件
tar -cvf c.tar c1 c2
(c创建create,v冗余verbose,f文件files)
解压:tar -xvf 压缩包的名字
tar -xvf c.tar
(x提取extract)
14.tail 查看文件后面几行(默认是10行)
tail 文件:查看文件倒数10行
tail c1 查看c1文件的后10行
tail -n 行数 文件 / tail -行数 文件 查看文件的后面几行
tail -n 15 c1 / tail -15 c1 查看c1文件的后面15行
tail -f 文件:默认显示10行,持续等待新内容写入文件,动态侦测文件,ctrl+c结束
vi不可以动态侦测到,vi可以删除,tail-f只能识别追加的动作
tail -f filename | grep ‘DEBUG’
前 10 行内容 head -n 10
15.echo "字符串":输入""的内容
echo '字符串' >>文件名:表示将引号内的内容追加写入文件的最后一行
echo 'chen' >>c1 :将chen写入c1文件的最后一行
16.zip 命令用于压缩文件,unzip解压缩命令
zip test1.zip test1.txt 压缩一个名为test.zip的文件
zip -r 压缩包名 *
系统管理命令
1.hostname 查看主机名
hostname bcbx22 修改主机名为bcbx22(需要root账户)
hostname 回车 输出主机名
2.clear 清屏,内容上翻还存在
3.ifconfig 查看ip地址
4.top 类似于win任务管理器
cpu统计,内存统计
pid:进程号;user:哪个用户启的;%cpu:cpu占比;%mem:内存(memory)占比;command:命令;
按M,按内存占比从高到低排;按P,按cpu占比从大到小排进程的状态
5.ps 查看当前的进程
ps -e:显示所有进程
ps -f:显示程序之间的关系
ps -ef:查看所有进程,默认由进程号从高到低排
uid:用户号;pid:进程号;ppid:父进程id;c:cpu占用率;stime:系统启用时间;time:耗时;cmd:启动命令(command),哪个命令启的进程
ps -ef |grep java:查找包含java的进程,grep 对管道符前面的命令输出的内容进行检索,只要是有输出的命令都可以进行检索,|管道符
ll |grep c:查找关于c的文件信息
6.kill 杀掉进程
kill pid号:杀掉进程
kill -9 pid号:强制杀掉进程
7.shutdown 关机(不要练习)
8.logout 注销,退出登录
9.reboot 重启
10.ping 确定网络和各外部主机的状态
ping ip地址:查看与ip地址网络是否互通
ping 175.24.117.226
ping得通证明网络通畅
公司有内网,需要使用vpn进才能ping通
11.date 显示或设置系统当前时间
date 显示当前时间/自动校正系统时间
date -s 时间(年月日/时分秒):修改系统时间(需要root账户)
date -s 2022-2-22
date -s 15:55:55
date -s "2021-4-26 15:30:11":修改年月日时分秒需要加引号
用户和用户组管理命令
用户组
1.cat /etc/group:查看用户组
tail -3 /etc/group:查看用户组
组名;x:标识位,无含义;组id
2.groupadd 增加用户组(需要root账户)
groupadd 用户组名
groupadd chen01:增加用户组chen01
3.groupmod 修改用户组
groupmod -n 用户组新名字 用户组原名字
groupmod -n chenzu chen01:将用户组名chen01改成chenzu
4.groupdel删除用户组
groupdel 用户组
用户
1.cat /etc/passwd:查看用户
用户名:X(无含义):用户id:组id:描述:用户的主目录(/home/zhouzhipeng):bin/bash
tail -3 /etc/passwd:查看倒数3个用户,返回绝对路径
2.useradd 增加用户
useradd 用户名 -c 描述 -g 用户组
useradd chen -c student -g bcbx22:创建一个bcbx22用户组的chen用户,这个用户的描述为student
如果不指定组会创建和当前账号的组一致的
3.usermod 修改用户
usermod -l 新用户名 原用户名:指定一个新的账号,即将原来的用户名改为新的用户名
usermod -l chenyier chen 将用户chen改成chenyier
usermod -c 描述信息 用户名:修改描述
usermod -c student_22 chenyier
usermod -g 用户组名 用户名:修改用户所属的用户组
usermod -g chen2 chen
4.userdel 删除用户
userdel 用户名
userdel chenyier
5.passwd 为用户设置密码
passwd直接回车改的是当前用户的密码
passwd 用户名
passwd chen:为用户chen设置密码
6.groups 查看自己的用户组
普通用户无权限新建用户
普通用户登是$,root用户登是#
权限相关的命令
1.su 切换用户
su 用户名:临时借用别的账号 exit可退回原先账号
su root:临时切换root账号
su - 用户名:切换用户
su - root:切换为root用户
root用户切其他用户不需要输密码
2.chown 更改文件的拥有者(change ownership)
需要用root账号
chown 用户:用户组 文件
chown chen:chenzu c1(将c1文件的拥有者改为chen,chen在chenzu下)
chown -R 更改文件夹的拥有者:把文件夹和子文件一起更换拥有者
chown -R chen:chenzu cwjj1 将cwjj1的子文件和子文件夹一起更改拥有者
3.chmod 改变文件或文件夹的权限(change mode)
通过root账号
drwxr-xr-- 2 zzp bcbx22
d开头代表文件夹,-开头代表文件,rw-:用户zzp的权限,r-x:用户组bcbx22的权限,r--:其他人的权限
chmod 三位数字 文件/文件夹
chmod 644 c1:将c1文件的权限改为644(rw-r--r--)
r:读:4
w:写:2
x:执行:1
-:无权限:0
对于文件来说有写的权限肯定有读的权限,对于文件夹来说无权限可以创建
chmod -R:对目前目录下的所有文件与子目录进行相同的权限变更(即以递归的方式变更)
./ 代表执行文件
./c1 执行c1文件
sh 代表执行文件
sh c01:执行c01文件
查看磁盘和磁盘空间命令
1.df 显示指定磁盘文件(disk free)的可用空间
df:显示磁盘可用空间,易读性较差
df -h:以KB、MB、GB的单位显示指定磁盘文件的可用空间,可读性高
filesystem:文件系统;size:磁盘总大小;used:已使用大小;avail:还可用的磁盘大小;use%:磁盘使用率;mounted on:挂在到哪个目录下
2.du 显示每个文件和目录的磁盘使用空间(Disk Usage)
du:显示每个文件和目录的磁盘使用空间
du -h:以k,M,G为单位显示所有的文件和目录磁盘使用情况,人性化显示
du -sh:当前目录(整个文件夹)一共占用空间
du -sh ./* 当前目录下的所有文件,不展开,只显示当前文件夹的使用情况,ll能看到多少就显示多少文件
3.free 显示系统使用和空间的内存情况
free:显示系统使用和空间的内存情况
free -h:以人性化显示,以k,M,G为单位显示系统使用和空间的内存情况
free -k:以kb为单位显示内存使用情况
free -m:以MB为单位显示内存使用情况
free -g:以GB为单位显示内存使用情况
4.netstat -ntpl 查看端口使用情况 查看当前机器 listen 的所有端口