Linux介绍
- Windows的不足
- Windows是收费的
- 系统长时间运行,安装多了,系统越来越慢,越来越不稳定。
- 病毒和流氓软件很多
- Linux的优势
- Linux系统是免费,很多还是开源的。
- 长时间运行,很稳定的
- 几乎没有病毒和流氓软件
学习Linux的好处
日常在Windows中开发完程序后,需要部署到一个相对比较安全,稳定的服务器中运行,这台服务器上安装的往往不是Windows操作系统,而是Linux操作系统。
windows默认安装完成软件就可以连外网,linux默认安装完软件是不可以连外网,必须防火墙放过才可以
linux的概述
Linux(linux is not unix)是基于Unix的开源、免费、多用户、多任务的操作系统,由于系统的稳定性和安全性。几乎成为程序代码运行的最佳系统环境。
linux的分类
-
按照市场的需求不同
-
按照原生程度不同
-
内核版,linux之父(托瓦兹)团队开发
-
特点:免费
功能:主要解决操作系统底层,操作内存,cpu,硬盘,网卡。。。
-
发行版(推荐使用)
-
是第三方个人或组织在内核基础上进行二次开发(包装)
-
特点:功能应用更多,偏向应用,大多数发行版都是免费的
Linux安装
两种安装方式
常见虚拟机软件
- VMWare 软件,威睿公司,收费的(推荐使用,可以试用)
- VirtualBox软件,免费的, 最开始是sun公司,由于被oracle收购了,所以目前属于oracle
windows主机连接linux虚拟机与虚拟机网卡介绍
命令 |
含义 |
ifconfig |
linux系统用于查看ip地址信息 |
ip addr |
linux系统用于查看ip地址信息 |
在windows主机上使用dos命令ping进行拼通linux系统
ping www.mobaijun.com
使用客户端工具连接linux系统
常见的客户端软件
SecureCRT(操作客户端命令),SecureFx(用于传输文件)
XShell(操作客户端命令),XFtp(用于传输文件)
Linux目录学习
目录操作1—目录结构
linux系统没有盘符,一切从根目录/开始,如下图

根目录下所有子目录

常见的目录配置
目录 |
含义 |
bin目录 |
存放着所有linux系统的命令 |
root目录 |
超级管理员root用户的主目录 |
home目录 |
存放所有普通用户主目录的位置 |
usr目录 |
(unix shared resources)资源共享目录,所有用户都可以操作的目录,以后我们安装软件就安装到这里usr/local,这样所有用户都可以使用软件 |
etc目录 |
存储配置文件的目录,以后网卡配置文件,权限配置文件都在这里 |
目录操作—切换—创建—查看
作用 |
改变目录/CD和目录名直接需要空格 |
/ |
切换到根目录 |
. |
当前目录 |
.. |
上一级目录 |
~ |
返回当前用户主目录 |
- |
返回上一次目录 |
创建目录
mkdir 目录名称 |
创建一个目录 |
mkdir -p |
创建多级目录 |
mkdir -p /父目录名称/子目录名称
-p,如果父目录不存在会先创建父目录再创建子目录
查看目录内容
ls参数 |
显示当前目录下的文件和目录 |
-l |
以详细的方式显示当前目录下的文件和目录 |
-a |
显示当前目录下的所有文件和目录,包含隐藏目录,.XXX开头的文件和目录是隐藏的 |
目录操作搜索—重命名—复制—删除—帮助
find |
[目录名称] [-name'查询字符串'] |
无参数 |
搜索当前目录和它的子目录所有文件和目录 |
目录名称 |
搜索指定目录下和他的子目录所有的文件和目录 |
-name '查询字符串' |
指定具体查询字符串 |
|
*匹配多个字符串 |
|
?匹配一个字符 |
文件操作
重命名与移动
move=mv |
|
mv 旧名称 新名称 |
|
mv既可以改文件也可以改目录 |
|
mv 源目录 目标目录 |
|
mv将源目录移动到目标目录下 |
|
cp [参数] 源文件或目录 目标目录 将源文件或整个目录复制到目标目录下 |
|
-r recursion连同子目录下所有文件全部复制 |
|
rm |
参数 文件或目录1 文件或目录2可以同时指定多个文件或目录 |
-r |
recursion 连同子目录一起删除,只用来删除目录 |
-f |
强制删除,删除之前会确认,需要回答yes/no |
注意:千万不要rm -rf /* 会导致删除所有的文件或目录,导致系统崩溃了
- 查看帮助文档
- 命令 --help 查看英文文档手册,使用q退出
- man 命令 查看中文文档手册【推荐方式】,使用q退出
创建文件与查看文件内容
touch 文件1 文件2 |
创建一个或多个文件0字节大小 |
cat 文件名 |
查看文件所有内容 |
more 文件名 |
查看文件所有的内容,可以分屏显示 |
head 文件名 |
查看文件前10行 |
had -n 行数 文件名 |
查看前面指定的行数 |
tail 文件名 |
查看文件后10行 |
tail -n 行数 文件名 |
查看文件后指定的行数 |
less 文件名 |
查看文件所有内容<br />-n 显示行号<br />PageUp 向前翻页<br />PageDown 向后翻页<br />q:退出 |
编辑文件内容

命令 |
描述 |
i |
在当前光标的前面插入字符 |
a |
在当前光标的后面插入字符 |
o |
在当前光标的下一行插入字符 |
命令或底行模式下常用的编辑命令 |
|
yy |
复制当前行 |
p |
如果前面已经复制了,在当前下面复制 |
dd |
删除当前行 |
u |
撤销 |
/字符串 |
搜索文本内容<br />n:向后搜索<br />N:向前搜索 |
wp |
保存并退出 |
q! |
不保存强制退出 |
wp! |
强制保存退出(只读文件使用) |
压缩与解压
拓展名称 |
分类 |
.zip/.rar |
Windows系统压缩包 |
.tar |
在Linux下的打包文件 |
.gz |
在Linux下的压缩文件 |
.tar.gz |
在Linux下的打包压缩文件 |
tar |
参数 压缩包名 一个或多个文件{对一个或多个文件进行打包并压缩} |
-c |
创建一个打包的文件 |
-v |
显示打包的详细过程 |
-z |
压缩文件 |
-f<压缩文件名称> |
只当压缩包的文件名称,f后面跟着压缩的文件名,一般放在参数最后面 |
tar 参数 压缩文件名称 |
解压文件到当前目录 |
-x |
解压指定的文件 |
-v |
显示解压的详细过程 |
-f<压缩文件> |
指定要解压的文件 |
-C |
解压到指定的目录下 |
查看工作目录位置—查看进程—内存耗用—杀死进程
pwd |
查看当前工作目录 |
ps |
显示当前用户通过终端启动的进程 |
-a |
显示所有用户通过终端启动的进程 |
-u |
显示所有用户通过终端启动的进程详细信息 |
-x |
显示所有用户的所有进程 |
kill 参数 进程号 |
通过ps可以查看到进程号 |
-9 |
强制终止进程 |
搜索文件内容
grep是一种强大的文本搜索工具,它能使用字符串搜索文本,并把匹配的行和行号打印出来。
grep 参数 字符串 文件名 |
搜索指定文件中字符串内容 |
-n |
搜索结果中显示行号 |
-v |
显示不匹配的行 |
-i |
忽略大小写搜索 |
管道
管道就是“|”
语法 |
命令1 \ |
命令2 |
解释 |
管道命令|,必须要有两条以上的命令参与运算 |
系统命令
关机与重启
Linux |
释义 |
shutdown now |
关闭服务器 |
-h +参数 |
指定**时间后关机 |
shutdown -n 16:05 |
指定时间关机 |
shutdown -c |
清除定时命令 |
reboot |
重启Linux |
Windows命令 |
释义 |
shutdown -s |
立刻关机 |
shutdown -s -t 秒 |
指定多少秒后关机 |
shutdown -a |
清除定时计划 |
shutdown -r |
系统重启 |
$ reboot
$ sync
$ halt
文件权限

- 每一类用户都有3个权限
- r:读取权限, 只读
- w: 写入权限 , 可以编辑文件
- x: 执行权限, 由于某些文件是可以执行的,如有有执行权限才可以执行
- 操作权限
- 添加权限:chmod 用户或组+权限 资源文件或目录
- 删除权限:chmod 用户或组-权限 资源文件或目录
- 修改权限:chmod 用户或组=权限 资源文件或目录
文件上传
$ yum -y install lrzsz
$ rz
crontab定时任务
命令 |
含义 |
crontab -l |
查看当前用户的定时任务列表 |
crontab -e |
进入编辑当前用户定时任务编辑器 |
crontab -r |
删除当前用户的定时任务 |
* 命令 |
每分钟执行一次命令 |
服务管理
服务管理—自启动服务管理

- 服务管理的命令:systemctl start/stop/restart/status 服务名 操作服务启动/停止/重启/查看状态
- 设置服务开机启动:systemctl enable 服务名.service
- 设置服务开机不启动:systemctl disable 服务名.service
网络管理
网络管理1-主机名管理
$ hostname
$ hostnamectl set-hostname [args]
$ bash
网络管理2-网络服务管理
$ systemctl start network
$ systemctl stop network
$ systemctl restart network
$ systemctl status network
如果linux系统不能上网(内网和外网),需要检查网络服务
网络管理3-网卡激活管理
$ cd /etc/sysconfig/network-scripts/
$ ls
$ vim ifcfg-ens32
ONBOOT=no
$ systemctl restart network
$ ping www.mobaijun.com
$ ONBOOT=yes
$ systemctl restart network
网络管理4-配置静态ip
- IP配置类型
- 配置静态IP步骤
- 给linux系统设置ip必须确定ip的地址、子网掩码、网关
- IP地址(互联网协议地址):
- IP地址由网络号和主机号组成
- 子网掩码
- 用于标识ip地址的网络号是多少位
- 网关
- 用于区别不同的网络,网关可以解决不同的网络通信,需要硬件支持路由器
- DNS
- 域名服务器,根据域名获取对应的服务器ip地址,这样才可以访问外网
- 修改网卡配置
$ cd /etc/sysconfig/network-scripts/
$ ls
$ vim ifcfg-ens33
BOOTPROTO=static
IPADDR=192.168.56.135
GATEWAY=192.168.123.83
NETMASK=255.255.255.0
DNS1=114.114.114.114
$ systemctl restart network
$ ping www.mobaijun.com
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=f47bde51-fa78-4f79-b68f-d5dd90cfc698
DEVICE=ens33
ONBOOT=no
网络管理5-克隆虚拟电脑
- 克隆步骤
- 关闭当前虚拟机linux系统
- 选择当前虚拟机/管理/克隆/
- 修改克隆出来的静态ip
- 修改计算机的名字
网络管理6-域名映射

- 本地域名映射文件位置
- Windows系统本地域名映射位置:
c:\windows\System32\drivers\etc\hosts
- Linux系统本地域名映射位置:
- 修改本地域名映射实现步骤
$ vim /etc/hosts
192.168.123.83 www.mobaijun.com
$ wq
$ ping www.mobaijun.com
网络管理7-查询网络进程使用端口号
netstat [args] |
null |
显示网络状态 |
-n |
number |
显示程序的IP地址和端口号 |
-t |
TCP |
只显示TCP协议链接的程序 |
-l |
listener |
显示监听中的Socket |
-p |
Programs |
显示程序的名称 |
-u |
UDP |
查询udp协议通信的程序 |
$ netstat -nutlp
DNS测试命令
dig命令是常用的域名查询工具,可以用来测试域名系统工作是否正常
$ dig(选项)(参数)
命令 |
简介 |
@<服务器地址> |
指定进行域名解析的域名服务器 |
-b<ip地址> |
当主机具有多个IP地址,指定使用本机的哪个IP地址向域名服务器发送域名查询请求 |
-f<文件名称> |
指定dig以批处理的方式运行,指定的文件中保存着需要批处理查询的DNS任务信息 |
-P |
指定域名服务器所使用端口号 |
-t<类型> |
指定要查询的DNS数据类型 |
-x<IP地址> |
执行逆向域名查询 |
-4 |
使用IPv4 |
-6 |
使用IPv6 |
-h |
显示指令帮助信息 |
防火墙
防火墙管理
是防止外界访问系统内部的程序,防火墙允许哪个软件访问外网,这个软件才可以进行网络通信
命令 |
简介 |
systemctl status firewalld |
查看状态 |
systemctl start firewalld |
启动防火墙 |
systemctl stop firewalld |
关闭防火墙 |
systemctl enable firewalld |
开机自启 |
systemctl disable firewalld |
让防火墙开机不自启 |
$ service firewalld restart
$ service firewalld stop
$ service firewalld start
$ sudo apt install firewalld
$ systemctl status firewalld.service
SSH有密登录和免密登录
$ ssh-keygen
$ ssh-copy-id address
$ cat authorized_keys
$ ssh address
项目安装和部署
部署项目1-本地软件安装命令rpm
RedHat Package Manager(RPM), 擅长安装本地的软件
rpm [args] [包名] |
类似软件管家{添加,卸载,查询} |
-v |
显示安装的详细过程 |
-q |
查询某个软件是否安装 |
-a |
查询所有软件 |
-h |
列出软件安装时的标记 |
-i <args> |
install 安装指定的软件 |
--nodeps |
不验证软件相关关联性,常于-e一起使用,表示强制卸载 |
$ rpm -qa
$ rpm -ivh <包名>
$ rpm -e --nodeps <包名>
开启VIM编辑器高亮
如果系统没有安装VIM,需要先安装
- 安装VIM,并设置VIM的命令别名为VI
$ yum install vim -y
$ vi /etc/bashrc 或者 vi ~/.bashrc
>>>>>>>>>>在最后新加一行>>>>>>>>>>>>>
alias vi=vim
$ :x
$ source /etc/bashrc 或者 source ~/.bashrc
# 1.编辑文件
vi /etc/vimrc 或者 vi ~/.vimrc
》》》》》》》》》》》在最后新加一行》》》》》》》》》》》
syntax on
:x保存退出后,reboot重启机器即可。
RPM_jdk安装
$ rpm -qa | grep java
$ rpm -qR jdk
$ wget https://download.oracle.com/otn/java/jdk/8u291-b10/d7fc238d0cbf4b0dac67be84580cfb4b/jdk-8u291-linux-x64.tar.gz?AuthParam=1625038235_ffa5f5649358bb628a09b26cad483c7f
$ mkdir soft
$ tar -xvf jdk-8u251-linux-x64.tar.gz -C /usr/local
$ vim /etc/profile
JAVA_HOME=/usr/local/jdk1.8.0_251
CLASSPATH=.:$JAVA_HOME/lib
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME CLASSPATH PATH
$ source /etc/profile
$ java -version
问题描述:在解压完成安装JDK以后,配置环境变量重载了以后发现Java -version
无法获取JDK版本信息
> -bash: java: command not found
>
> * 解决步骤
>
> > Linux版本位数和JAVA jdk版本位数,64位Linux只能安装64位jdk
> >
> > ~~~bash
> > # 查看Linux命令:
> > $ getconf LONG_BIT
> > ~~~
>
> 突然想起来好像是解压JDK出现bug了,但是当时没在意,这会准备重新上传解压,再试试
>
> .........重新解压完成,没有报错,应该就是解压出错导致JDK异常,一定要注意,出现/error就要解决,不要不管
更换YUM源
$ yum install -y wget
$ wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
$ yum clean all
$ yum makecache
$ mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
$ vim /etc/yum.repos.d/CentOS-Base.repo
$ yum update
部署项目3-mysql安装-启动-远程授权
$ rpm -qa | grep mysql
$ wget https://repo.mysql.com//mysql80-community-release-el7-1.noarch.rpm
$ rpm -ivh mysql80-community-release-el7-1.noarch.rpm
$ cd /etc/yum.repos.d
$ vim mysql-community.repo
{
[mysql55-community]
name=MySQL 5.5 Community Server
baseurl=http://repo.mysql.com/yum/mysql-5.5-community/el/7/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
}
$ yum -y install mysql-community-client mysql-community-server mysql-community-devel
$ systemctl start mysqld
$ systemctl enable mysqld
$ mysql -uroot -p
$ cat /var/log/mysqld.log
$ set password = password('root');
$ alter user '用户名'@'登录主机' identified by '密码(自定义)';
$ alter user 'root'@'localhost' identified by 'www.mobaijun.com'
$ exit
$ mysql -uroot -proot
-
MySQL5.X设置远程连接权限、开放端口号
开启mysql的远程登录权限,默认情况下mysql为安全起见,不支持远程登录mysql,所以需要设置开启,并且刷新权限缓存。远程登录mysql的权限登录mysql后输入如下命令
$ grant all privileges on *.* to 'root'@'%' identified by 'root';
$ update user set host='%' where user='root';
$ flush privileges;
$ mysql -u root -p"password"
$ show databases;
$ use mysql;
$ CREATE USER 'root'@'%' IDENTIFIED BY '你的密码';
$ GRANT ALL ON *.* TO 'root'@'%';
$ ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '你的密码';
$ FLUSH PRIVILEGES;
$ firewall-cmd --zone=public --add-port=3306/tcp --permanent
$ systemctl restart firewalld
$ firewall-cmd --list-ports
部署项目4-tomcat安装-启动

$ tar -xvf apache-tomcat-8.5.55-src.tar.gz -C /usr/local/
$ mv apache-tomcat-8.5.55-src tomcat8
$ cd /usr/local/tomcat8/bin
$ ./startup.sh
$ chmod u+x *.sh
$ ./startup.sh
$ firewall-cmd --zone=public --add-port=8080/tcp --permanent
$ systemctl restart firewalld
$ firewall-cmd --zone=public --query-port=8080/tcp
$ 39.108.96.122:8080
$ tail -f catalina.out
$ echo $JAVA_HOME
$ echo $JRE_HOME
JAVA_HOME=/usr/local/jdk1.8.0_251
JRE_HOME=/usr/local/jdk1.8.0_251/jre
$ rm -rf /usr/local/tomcat
$ rm -rf /usr/local/logs/*.txt &
$ rm -rf /usr/local/logs/*.log &

部署项目5-Redis安装-启动
$ yum install epel-release
$ yum update
$ yum install redis
$ systemctl start redis
$ systemctl enable redis
$ redis-cli ping
$ vi /etc/redis.conf
$ requirepass root
$ systemctl restart redis
$ redis-cli
$ 127.0.0.1:6379> AUTH root
$ vi /etc/redis.conf
$ systemctl restart redis
$ firewall-cmd --permanent --zone=public --add-port=6379/tcp
$ firewall-cmd --reload
$ iptables -L -n | grep 6379
$ redis-cli -h 39.108.96.122
$ 192.168.56.2:6379> AUTH root
部署项目6-Git安装-启动
$ yum install git
$ git --version
$ git config --global user.name "mobaijun"
$ git config --global user.email "mobaijun8@163.com"
$ git config --list
部署项目7-项目发布
- 链接Linux数据库(导入数据库)
- 在IDEA中导出war包
- 将war包部署到linux里面的tomcat里面的webapps里面
- 浏览器访问
解决mysql底层乱码问题
- 修改
druid.properties
配置文件,设置mysql使用utf-8解码,添加?characterEncoding=utf8
driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql://127.0.0.1:3306/linux?characterEncoding=utf8
username=root
password=root
initialSize=5
maxActive=50
maxWait=30000
minIdle=3
- 将当前项目需要重新打包,再部署到linux上tomcat的webapps里面
- 关闭tomcat,执行shutdown.sh
- 启动tomcat,执行startup.sh
部署项目8-安装 Nodejs
$ curl -sL https://rpm.nodesource.com/setup_12.x | sudo bash -
$ sudo yum install nodejs
$ node -v && npm -v
创建用户分配远程登录权限,云服务器
$ adduser $user
[root@xxCento7One home]# passwd $user
Changing password for user esuser.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
$ visudo
root ALL=(ALL) ALL
esuser ALL=(ALL) ALL

也可以在/etc/sudoers文件中,追加“NewUser ALL=(ALL) ALL”这部分内容,也是可以的。但是首先需要为/etc/sudoers文件赋予可写的权限。
$ chmod 755 /etc/sudoers
或
$ chmod -v u+w /etc/sudoers
其他命令
history命令
这个命令是一个历史记录命令
$ history
$ history -c
用户管理1-用户的管理
$ cd /home
$ ll
$ useradd -m mobaijun
$ ll
$ useradd -mg mobaijun tom
[root@mobai home]# ll
总用量 0
drwx------. 2 mobaijun mobaijun 62 5月 29 11:25 mobaijun
drwx------. 2 tom mobaijun 62 5月 29 11:25 tom
$ cat /etc/passwd
mobaijun:x:1000:1000::/home/mobaijun:/bin/bash
tom:x:1001:1000::/home/tom:/bin/bash

$ passwd mobaijun
$ su mobaijun

$ su root
$ userdel -r tom

$ usermod -1 Rose mobaijun
总结
- useradd:添加用户
- passwd:给用户设置密码
- su:切换用户
- userdel:删除用户
- usermod:修改用户登录名
用户管理2-组与用户的管理
$ groupadd [组名]
$ cat /etc/group
$ cd /home
$ usermod -g [新组名] [组名]
$ gpasswd -d 用户 组名
$ ll
$ cat /etc/group
$ groupmod -n 新组名 组名
$ groupdel 组名
$ cat /etc/group
总结
- groupadd:添加组
- gpaddwd:将用户从组中删除
- groupmod:修改组名
- groupdel:删除组
用户管理3-给普通用户设置 sudo超级管理权限
$ vim /etc/sudoers
$ su mobaijun
$ sudo useradd -m 用户名
$ cd /home
其他
相关内容
$ yum list updates
$ yum list installed
$ yum list extras
$ yum search PACKAGE_NAME
$ yum info updates
$ yum info installed
$ yum provides
$ yum update PACKAGE_NAME
$ yum clean all
$ yum remove PACKAGE_NAME
$ yum downloader PACKAGE_NAME
$ yum reinstall PACKAGE_NAME
$ yum check-update
$ rpm -qa
内网环境--禅道
官网地址:传送门
下载地址:传送门
阿里云服务器需要设置安全组端口号为8086
$ wget https://www.zentao.net/dl/ZenTaoPMS.biz4.0.zbox_64.tar.gz
$ tar -zxvf ZenTaoPMS.12.3.3.zbox_64.tar.gz -C /opt
$ /opt/zbox/zbox -ap 8086 -mp 3308
$ firewall-cmd --zone=public --add-port=8086/tcp --permanent
$ systemctl restart firewalld
$ firewall-cmd --zone=public --query-port=8086/tcp
$ /opt/zbox/zbox start
$ http://39.108.96.122/zentao/my/

开源版默认为 admin 123456
登录完成后,可设置公司名称,添加用户及权限等

内网环境--GitLab
官网地址:传送门
下载地址:传送门
$ yum -y install policycoreutils openssh-server openssh-clients postfix
$ systemctl enable postfix && systemctl start postfix
$ wget http://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-14.4.2-ce.0.el7.x86_64.rpm
$ rpm -i gitlab-ce-14.4.2-ce.0.el7.x86_64.rpm
$ vim /etc/gitlab/gitlab.rb
$ firewall-cmd --zone=public --add-port=8010/tcp --permanent
$ systemctl restart firewalld
$ firewall-cmd --zone=public --query-port=8010/tcp
$ gitlab-ctl reconfigure
$ gitlab-ctl restart
$ chmod -R 755 /var/log/gitlab
服务器相关命令
精选博客: <font color="red">常用Linux服务器命令</font>
$ free -m
$ free -g

参数 |
释义 |
total |
内存总数 |
used |
已使用内存总数 |
mem |
单位均为M |
free |
空闲内存数 |
shared |
当前废弃不用 |
buffers |
缓存内存数(Buffer) |
cached |
缓存内舒数(Page) |
Swap |
交换分区 |
===================================================服务器相关命令===================================================
$ top
$ tcpdump
$ iostat
$ mpstat
$ mpstat -P ALL 1 1000
$ netstat
$ pmap <args[pid(进程id)]>
$ vmstat
$ lsof -i : 80
$ uname -a
$ uname -r
$ cat /proc/version
$ cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c
$ cat /proc/cpuinfo | grep physical | uniq -c
$ grep "model name" /proc/cpuinfo
$ getconf LONG_BIT
$ cat /proc/cpuinfo | grep flags | grep ' lm ' | wc -l
$ cat /proc/cpuinfo
$ cat /proc/cpuinfo |grep "physical id"|sort |uniq| wc -l
$ cat /proc/cpuinfo |grep "processor"|wc -l
$ cat /proc/cpuinfo |grep "cores"|uniq
$ cat /proc/cpuinfo |grep MHz|uniq
$ who | awk '{print $1 "\t" $6}'
$ head -n 1 /etc/issue
$ lsmod
$ env
$ df -h
$ fdisk -l
$ swapon -s
$ iptables -L
$ netstat -lntp
$ netstat -antp
$ netstat -s
$ ifconfig
$ dmesg | grep IDE
$ hostname
$ ps -ef
$ w
$ id <用户名>
$ last
$ cut -d: -f1 /etc/group
$ crontab -l
$ chkconfig --list
$ chkconfig --list | grep on
$ kill pid
$ killall -9 processname
===================================================时间相关命令===================================================
$ date
$ date -s "2020-07-28 15:32:00"
$ uptime
===================================================其他相关命令===================================================
$ find
===================================================网络相关命令===================================================
$ ifconfig | ifconfig eth0
$ netstat -r
$ sudo ifconfig eth0 down
$ sudo ifconfig eth0 up
$ ethtool eth0
$ route -n
$ hostnamectl set-hostname [args]
服务器卡顿
阿里云服务器有IO积分测试,垃圾
Linux查看公网 IP
最近在解决网络问题时,需要查看本机的出口公网IP信息,有如下两个方法:
$ curl cip.cc
$ curl icanhazip.com
$ curl ident.me
$ curl ipecho.net/plain
$ curl whatismyip.akamai.com
$ curl ifconfig.me
$ curl www.trackip.net/i
$ curl ipinfo.io/ip
- 在
linux
系统中输入上述的命令,可以查看到本机连接的公网信息;
- 如果该命令无效,可以使用下面的脚本,也同样可以获得对应的信息
#!/bin/bash
PUBLIC_IP=`wget http://ipecho.net/plain -O - -q ; echo`
echo $PUBLIC_IP
环境变量:
JAVA_HOME=/usr/local/jdk1.8.0_311
MAVEN_HOME=/ur/local/apache-maven-3.8.4
CLASSPATH=.:$JAVA_HOME/lib
PATH=$PATH:$JAVA_HOME/bin:$MAVEN_HOME/bin
export JAVA_HOME MAVEN_HOME CLASSPATH PATH
Ubuntu系统
安装ip查看插件
$ sudo apt install net-tools
无法连接Xshell
$ ps -e |grep ssh
$ sudo apt-get install openssh-server
$ /etc/init.d/ssh start
$ ssh -l mobai 192.168.65.129
安装dos2unix插件
$ sudo apt install dos2unix
不联网安装ubuntu插件
$ dpkg -i 文件名
$ dpkg -r 文件名
dpkg -i package.deb |
安装包 |
dpkg -r package |
删除包 |
dpkg -P package |
删除包(包括配置文件) |
dpkg -L package |
列出与该包关联的文件 |
dpkg -l package |
显示该包的版本 |
dpkg –unpack package.deb |
解开 deb 包的内容 |
dpkg -S keyword |
搜索所属的包内容 |
dpkg -l |
列出当前已安装的包 |
dpkg -c package.deb |
列出 deb 包的内容 |
dpkg –configure package |
配置包 |