linux目录主要功能

目录操作

创建目录

mkdir 目录名

1
2
mkdir    aaa            #在当前目录下创建一个名为aaa的目录
mkdir /usr/aaa #在指定目录下创建一个名为aaa的目录

删除目录或文件

rm [-rf] 目录名

删除文件

1
2
rm 文件       删除当前目录下的文件
rm -f 文件 删除当前目录的的文件(不询问)

删除目录

1
2
rm -r aaa    递归删除当前目录下的aaa目录
rm -rf aaa 递归删除当前目录下的aaa目录(不询问)

全部删除

1
2
rm -rf *    将当前目录下的所有目录和文件全部删除
rm -rf /* 【自杀命令!慎用!慎用!慎用!】将根目录下的所有文件全部删除

注意:rm不仅可以删除目录,也可以删除其他文件或压缩包,无论删除任何目录或文件,都直接使用 rm -rf 目录/文件/压缩包

目录修改

mv 和 cp

重命名目录

mv 当前目录 新目录

1
mv aaa bbb    #将目录aaa改为bbb

注意:mv的语法不仅可以对目录进行重命名而且也可以对各种文件,压缩包等进行重命名的操作

剪切目录

mv 目录名称 目录的新位置

1
mv /usr/tmp/aaa /usr

拷贝目录

cp -r 目录名称 目录拷贝的目标位置 -r代表递归

1
cp /usr/tmp/aaa  /usr

注意:cp命令不仅可以拷贝目录还可以拷贝文件,压缩包等,拷贝文件和压缩包时不用写-r递归

搜索目录

find 目录 参数 文件名称

1
find /usr/tmp -name 'a*'    #查找/usr/tmp目录下的所有以a开头的目录或文件

文件操作

新建文件

touch 文件名

1
touch  aa.txt

删除文件

rm -rf 文件名

1
rm -rf xxx

修改文件

vi或vim

vi编辑器的3种模式分别是

  • 命令模式(command mode)
  • 插入模式(Insert mode)
  • 底行模式(last line mode)

命令行模式

命令行模式(command mode):控制屏幕光标的移动,字符、字或行的删除,查找,移动复制某区段及进入Insert mode下,或者到 last line mode。
命令行模式下的常用命令:

  • 【1】控制光标移动:↑,↓,j
  • 【2】删除当前行:dd
  • 【3】查找:/字符
  • 【4】进入编辑模式:i o a
  • 【5】进入底行模式::

编辑模式

编辑模式(Insert mode):只有在Insert mode下,才可以做文字输入,按「ESC」键可回到命令行模式。
编辑模式下常用命令:

  • 【1】ESC 退出编辑模式到命令行模式;

底行模式

底行模式(last line mode):将文件保存或退出vi,也可以设置编辑环境,如寻找字符串、列出行号……等。
底行模式下常用命令:

  • 【1】退出编辑::q
  • 【2】强制退出::q!
  • 【3】保存并退出::wq

文件的查看

cat

1
cat /more/less/tail

more

分屏显示文件内容。

使用方法:more 文件名。点击 q 键退出。


more与cat类似,只不过如果文件内容超过了当前终端一个屏幕能显示的大小,此时more命令就会在终端只显示一个屏幕的文件内容,并且在终端左下角显示已查看了该文件内容的百分比。

less

打包和解压

tar

1
2
3
#示例:打包并压缩/usr/tmp 下的所有文件 压缩后的压缩包指定名称为xxx.tar
tar -zcvf ab.tar aa.txt bb.txt
tar -zcvf ab.tar *

1
2
3
4
#示例:将/usr/tmp 下的ab.tar解压到当前目录下
tar -zxvf ab.tar
#示例:将/usr/tmp 下的ab.tar解压到根目录/usr下
tar -xvf ab.tar -C /usr # ------C代表指定解压的位置

查看进程

ps -ef

1
ps -ef    #查看所有正在运行的进程

结束进程

kill

1
kill pid 或者 kill -9 pid(强制杀死进程)  # pid:进程号

查看安装路径

whereis gccwhich gccreadlink /usr/bin/gcc/usr/local

1
2
3
whereis docker
# or
whereis nginx

查询运行文件所在路径

which指令会在环境变量$PATH设置的目录里查找符合条件的文件。

1
2
which docker
# /usr/bin/docker

查看端口

1
2
3
4
5
6
7
8
9
10
11
12
13
netstat -ltunp

# tcp 0 0 0.0.0.0:5230 0.0.0.0:* LISTEN 394785/docker-proxy
# tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 394842/docker-proxy
# tcp 0 0 0.0.0.0:81 0.0.0.0:* LISTEN 394823/docker-proxy
# tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1032/sshd
# tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 394803/docker-proxy
# tcp6 0 0 :::5230 :::* LISTEN 394791/docker-proxy
# tcp6 0 0 :::80 :::* LISTEN 394849/docker-proxy
# tcp6 0 0 :::81 :::* LISTEN 394829/docker-proxy
# tcp6 0 0 :::443 :::* LISTEN 394809/docker-proxy
# udp 0 0 127.0.0.1:323 0.0.0.0:* 810/chronyd
# udp6 0 0 ::1:323 :::* 810/chronyd

查看某个端口

1
2
3
netstat -ltunp | grep 443
# tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 394803/docker-proxy
# tcp6 0 0 :::443 :::* LISTEN 394809/docker-proxy

防火墙常用命令

1
2
3
4
5
6
7
8
systemctl start firewalld #启动 
systemctl stop firewalld #关闭
systemctl status firewalld #查看运行状态
systemctl disable firewalld #禁止开机启动
systemctl enable firewalld #开机启用
firewall-cmd --state #查看默认防火墙状态
firewall-cmd --reload #重启防火墙
systemctl status firewalld #查看运行状态

systemctlCentOS7的服务管理工具中主要的工具,它融合之前servicechkconfig的功能于一体。

1
2
3
4
5
6
7
8
9
systemctl start firewalld.service #启动一个服务 
systemctl stop firewalld.service #关闭一个服务
systemctl restart firewalld.service #重启一个服务
systemctl status firewalld.service #显示一个服务的状态
systemctl enable firewalld.service #在开机时启用一个服务
systemctl disable firewalld.service #在开机时禁用一个服务
systemctl is-enabled firewalld.service#查看服务是否开机启动
systemctl list-unit-files|grep enabled#查看已启动的服务列表
systemctl --failed #查看启动失败的服务列表

防火墙添加端口

1
2
3
4
5
firewall-cmd --zone=public --add-port=80/tcp --permanent #添加端口(--permanent表示永久生效,没有此参数重启后失效) 
firewall-cmd --zone=public --query-port=3306/tcp --permanent添加3306端口
firewall-cmd --zone=public --query-port=80/tcp #查看防火墙80端口
firewall-cmd --zone=public --list-ports #查看所有打开的端口:
firewall -cmd --zone=public --remove-port=80/tcp --permanent #删除防火墙80端口

语法

--zone #作用域
--add-port=80/tcp #添加端口,格式为:端口/通讯协议
--permanent #永久生效,没有此参数重启后失效

1
2
3
4
5
6
7
8
9
10
firewall-cmd --version #查看版本: 
firewall-cmd --help #查看帮助:
firewall-cmd --state #显示状态:
firewall-cmd --zone=public --list-ports #查看所有打开的端口:
firewall-cmd --reload #更新防火墙规则:
firewall-cmd --get-active-zones #查看区域信息:
firewall-cmd --get-zone-of-interface=eth0#查看指定接口所属区域:
firewall-cmd --panic-on #拒绝所有包:
firewall-cmd --panic-off #取消拒绝状态:
firewall-cmd --query-panic #查看是否拒绝:

启动防火墙

注意: 启动防火墙 注意:防火墙只有管理员或管理员用户组有权限进行管理操作

1
systemctl start firewalld

防火墙状态

1
systemctl status firewalld

查看防火墙开放端口列表

1
firewall-cmd --list-all

添加开放端口到防火墙

80端口开放, 其它用户可以访问我的站点
添加时区 --add-port=80/tcp
添加端口 --permanent 永久生效
加载防火墙新配置文件( 以 root 身份输入以下命令,重新加载防火墙,并不中断用户连接,即不丢失状态信息. )
firewall-cmd --reload

1
firewall-cmd --zone=public --add-port=80/tcp --permanent --zone=public

重启防火墙

1
firewall-cmd --reload

查看软件安装信息

查询centos系统中已经安装的软件

1
rpm -qa

查询已安装软件包的安装目录

1
rpm -ql 软件名

查询一个已安装软件包的信息

1
rpm -qi 软件名

查看一个已安装软件的配置文件

1
rpm -qc 软件名

查看一个已经安装软件的文档安装位置

1
rpm -qd 软件名

查看一下已安装软件所依赖的软件包及文件

1
rpm -qR 软件名