Linux常用指令

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 查看端口占用情况可以使用 lsofnetstat 命令。

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:显示使用fd4的进程
lsof -i -U:显示所有打开的端口和UNIX domain文件

netstat

netstat -tunlp 用于显示 tcp,udp 的端口和进程等相关情况。

netstat 查看端口占用语法格式:

netstat -tunlp | grep 端口号
  • -t (tcp) 仅显示tcp相关选项
  • -u (udp)仅显示udp相关选项
  • -n 拒绝显示别名,能显示数字的全部转化为数字
  • -l 仅列出在Listen(监听)的服务状态
  • -p 显示建立相关链接的程序名
例如查看 8000 端口的情况,使用以下命令:
# 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
3、linux服务器下载文件到mac
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
保存退出后重启防火墙

service iptables restart

二、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


全部评论