Linux是目前应用最广泛的服务器操作系统,基于Unix,开源免费,由于系统的稳定性和安全性,市场占有率很高,几乎成为程序代码运行的最佳系统环境。linux不仅可以长时间的运行我们编写的程序代码,还可以安装在各种计算机硬件设备中,如手机、路由器等,Android程序最底层就是运行在linux系统上的。
一、Linux的目录结构
/的下级目录
bin (binaries)存放二进制可执行文件 sbin (super user binaries)存放二进制可执行文件,只有root才能访问 etc (etcetera)存放系统配置文件 usr (unix shared resources)用于存放共享的系统资源 home 存放用户文件的根目录 root 超级用户目录 dev (devices)用于存放设备文件 lib (library)存放跟文件系统中的程序运行所需要的共享库及内核模块 mnt (mount)系统管理员安装临时文件系统的安装点 boot 存放用于系统引导时使用的各种文件 tmp (temporary)用于存放各种临时文件 var (variable)用于存放运行时需要改变数据的文件
二、Linux常用命令
命令格式:命令 -选项 参数 (选项和参数可以为空)
如:ls -la /usr
2.1 操作文件及目录
2.2 系统常用命令
2.3 压缩解压缩
2.4 文件权限操作
linux文件权限的描述格式解读
r 可读权限,w可写权限,x可执行权限(也可以用二进制表示 111 110 100 --> 764) 第1位:文件类型(d 目录,- 普通文件,l 链接文件) 第2-4位:所属用户权限,用u(user)表示 第5-7位:所属组权限,用g(group)表示 第8-10位:其他用户权限,用o(other)表示 第2-10位:表示所有的权限,用a(all)表示
2.5 用户操作
1、创建用户
[root@localhost /]# useradd haha #创建用户 haha是用户名
[root@localhost /]# passwd haha #为该用户设置密码
2、查看用户信息
[root@localhost /]# cat /etc/passwd | grep haha
[root@localhost /]# cat /etc/shadow | grep haha
[root@localhost /]# cat /etc/group | grep haha
[root@localhost /]# cat /etc/gshadow | grep haha[root@localhost /]# find / -name "*haha*"
3、删除用户
[root@localhost /]# userdel -r haha
三、Linux系统常用快捷键及符号命令
四、vim编辑器
vi / vim是Linux上最常用的文本编辑器而且功能非常强大。只有命令,没有菜单,下图表示vi命令的各种模式的切换图。
4.1 修改文本
4.2 定位命令
4.3 替换和取消命令
4.4 删除命令
4.5 常用快捷键
五、常用指令
5.1 常用的查看端口的指令
例如查看80端口的占用情况
Linux 查看端口占用情况可以使用 lsof 和 netstat 命令。
losf
lsof(list open files)是一个列出当前系统打开文件的工具。
lsof 查看端口占用语法格式:
lsof -i:端口号
实例
查看服务器 8000 端口的占用情况:
# lsof -i:8000 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME nodejs 26993 root 10u IPv4 37999514 0t0 TCP *:8000 (LISTEN)
可以看到 8000 端口已经被轻 nodejs 服务占用。
更多 lsof 的命令如下:
lsof -i:8080:查看8080端口占用 lsof abc.txt:显示开启文件abc.txt的进程 lsof -c abc:显示abc进程现在打开的文件 lsof -c -p 1234:列出进程号为1234的进程所打开的文件 lsof -g gid:显示归属gid的进程情况 lsof +d /usr/local/:显示目录下被进程开启的文件 lsof +D /usr/local/:同上,但是会搜索目录下的目录,时间较长 lsof -d 4:显示使用fd为4的进程 lsof -i -U:显示所有打开的端口和UNIX domain文件
netstat
netstat -tunlp 用于显示 tcp,udp 的端口和进程等相关情况。
netstat 查看端口占用语法格式:
netstat -tunlp | grep 端口号
- -t (tcp) 仅显示tcp相关选项
- -u (udp)仅显示udp相关选项
- -n 拒绝显示别名,能显示数字的全部转化为数字
- -l 仅列出在Listen(监听)的服务状态
- -p 显示建立相关链接的程序名
# netstat -tunlp | grep 8000 tcp 0 0 0.0.0.0:8000 0.0.0.0:* LISTEN 26993/nodejs
更多命令:
netstat -ntlp //查看当前所有tcp端口 netstat -ntulp | grep 80 //查看所有80端口使用情况 netstat -ntulp | grep 3306 //查看所有3306端口使用情况
这里可以看到java程序占用了80端口,其进程号为18294
如果想要让这个端口释放出来,就需要结束掉这个进程,使用的命令为 kill -9 18294。
5.2 查看某网站是否能正常运行
curl http://129.28.150.119:9200
5.3 防火墙相关的操作
firewall-cmd --state #查看防火墙
systemctl status firewalld #查看防火墙
systemctl stop firewalld #临时关闭防火墙
systemctl start firewalld #临时打开防火墙
systemctl disable firewalld #禁止开机启动防火墙(相当于永久关闭,使用这个命令不会立即生效,需要下次开机启动才会生效)
systemctl enable firewalld #开机启动防火墙,此时防火墙已经打开,但是要重启才能看到(和上面一样,都需要重启)
5.4 mac端上传文件和下载文件到服务器
1.mac上传文件到linux服务器
scp 文件目录 用户名@服务器ip:目标路径。
如:scp /Users/mac/a.txt root@192.169.1.1:/usr/local/文件名
以上是上传文件到linux下的/usr/local/
2.mac上传文件夹到linux服务器,与上传文件相比多加了-r
scp -r 文件目录 用户名@服务器ip:目标路径。
如:scp -r /Users/mac/a root@192.169.1.1:/usr/local/文件夹名
以上是上传文件夹到linux下的/usr/local/,比上传文件多了个 -r
scp -r 用户名@服务器ip:文件路径 目标路径
如:scp -r root@192.169.1.1:/usr/local/文件夹 /Users/mac/a
六、centOS防火墙相关CentOS7 的防火墙配置跟以前版本有很大区别,CentOS7这个版本的防火墙默认使用的是firewall,与之前的版本Centos 6.x使用iptables不一样
一、iptables防火墙
1、基本操作
# 查看防火墙状态
service iptables status
# 停止防火墙
service iptables stop
# 启动防火墙
service iptables start
# 重启防火墙
service iptables restart
# 永久关闭防火墙
chkconfig iptables off
# 永久关闭后重启
chkconfig iptables on
2、开启80端口
vim /etc/sysconfig/iptables
# 加入如下代码
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
保存退出后重启防火墙
二、firewall防火墙
1、查看firewall服务状态
systemctl status firewalld
出现Active: active (running)切高亮显示则表示是启动状态。
出现 Active: inactive (dead)灰色表示停止,看单词也行。
2、查看firewall的状态
firewall-cmd --state
3、开启、重启、关闭、firewalld.service服务
# 开启
service firewalld start
# 重启
service firewalld restart
# 关闭
service firewalld stop
4、查看防火墙规则
firewall-cmd --list-all
5、查询、开放、关闭端口
# 查询端口是否开放
firewall-cmd --query-port=8080/tcp
# 开放80端口
firewall-cmd --permanent --add-port=80/tcp
# 移除端口
firewall-cmd --permanent --remove-port=8080/tcp
#重启防火墙(修改配置后要重启防火墙)
firewall-cmd --reload
# 参数解释
1、firwall-cmd:是Linux提供的操作firewall的一个工具;
2、--permanent:表示设置为持久;
3、--add-port:标识添加的端口;
CentOS7 默认使用firewalld防火墙,如果想换回iptables防火墙,可关闭firewalld并安装iptables。
1、关闭firewall:
停止firewall
systemctl stop firewalld.service
禁止firewall开机启动
systemctl disable firewalld.service
查看默认防火墙状态(关闭后显示notrunning,开启后显示running)
firewall-cmd --state
2.安装iptables-services
yum install iptables-services
3.修改防火墙配置文件
vi /etc/sysconfig/iptables
默认的文件为:
在修改之前使用telnet命令查看端口是否开放。
1.启动telnet。控制面板-->程序和功能-->打开或关闭windows功能-->勾选Telnet的两个选项。
2.打开cmd窗口,输入telnet,如果端口关闭或者无法连接,则显示不能打开到主机的链接,链接失败;端口打开的情况下,链接成功,则进入telnet页面(全黑的),证明端口可用。
(1)telnet IP 端口。
(2)telnet 域名 端口。
如果成功连接会进入的界面
连接失败
添加端口80、8080、3306、3690端口:
esc :wq! 退出保存修改。
注意:添加在端口22上面或者下面,不要放在最后,不然不起作用。
4.重启防火墙使配置生效
systemctl restart iptables.service
刚刚yum install iptables.service之后系统如果没有重启,iptables.service是找不到的,会报unit not fount。耽误时间的小坑!
设置防火墙开机启动:systemctl enable iptables.service
全部评论