Linux 常用命令整理
linux根目录文件说明
/boot l inux启动时需要的文件
/dev 设备文件
/etc 配置文件
/home 用户家目录
/media 媒体文件
/mnt 挂载文件
/opt 第三方软件
/proc 虚拟化文件
/root 管理员的家目录
/run 进程文件
/srv 压缩过的文件
/sys 系统文件
/usr 安装的软件,可以共享
/var 可变数据,日志文件
/tmp 临时文件
/usr/bin 普通用户可以使用的文件夹
/usr/sbin 超级用户可以使用的文件夹
/usr/lib 32位库文件
/usr/lib64 64位库文件
修改selinux
/etc/selinux/config
SELINUX=enforcing #这个会严格
#SELINUX=disabled #这个会宽松
文件属性参数意义(三个权限之前的那个位置)
d 目录
- 文件
l 软链接文件(类似win的快捷方式)
b 设备文件,提供储存的接口设备
c 设备文件,提供串行接口设备--键盘,鼠标
查看目前系统内存在的服务
当不清楚某个服务的具体服务名的时候可以使用
systemctl list-dependencies
xshell内:
ctrl+a 光标到本行开头
ctrl+e 光标到本行结尾
ctrl+u 删除光标所在之前的字符
ctrl+k 删除光标所在之后的字符
linux
ls -lh 查看当前目录下的文件的大小 单位是尽量大的单位
ls -dl 在文件夹内查看这个文件夹的信息
ls -l /etc 看etx下的文件列表
文件处理命令
递归创建 mkdir -p /dirname/name1/name2
复制目录 cp -r /home /usr/
移动目录 mv -r /home /usr/
删除目录 rm -rf /home
警告
普通账户删除自己创建的文件 不会提示任何东西,会直接删掉文件
但是root账户 会提示"真的要删除吗?"
cat 命令
tac 倒序显示文档
tac 倒序显示文档
cat -b 出现行号
cat -n 出现行号,空白行也会显示出来
cat -A 显示 tab、回车、看不出来的字符
cat -T 将tab按键用^T显示
cat -E 用$显示出回车
cat -v 列出看不出来的字符
less
less /usr/local/php/etc/php.ini
空格 = 下一页
回车 = 下一行
v 进入编辑模式
:q退出
/this 向下搜索关键字 this
?this 想上搜索关键字 this
查看文件的最前面 最后面N行 日志文件.log
hrad -n 20 nginx_error.log 查看文件的最前20行
tail -n 20 nginx_error.log 查看文件的最后20行
wc
wc php.ini 行 空格数 行
43行,空白字数,2280字节
-c 只显示字节
-w 只显示字数(空白子,空格字,分隔字)
-l 只显示行
vim编辑器
a当前后面一个进入
A当前行末尾进入
O,P当前上一行进入
o,p当前下一行进入
i当前插入
esc退出
u撤销
x删除
v(可视模式)选择文本
y复制
yy复制当前行
dd删除光标行
p粘贴
软连接
可以对不存在的文件创建软连接
文件和目录的都可以创建软连接
删除了软链接,不会影响这个文件的根本文件(删除快捷方式,不会影响应用本身)
删除了根本文件,这个链接就成了死链接(删除了应用本身,快捷方式也就没有用了)
死链接会变变成红色,快捷方式存在,但是链接不到文件本身
可以直接创建一个死链接(没有意义)
带了-s就是软连接
ln -s old new
硬链接
硬链接就是复制N个文件,有同样的inode编号.
任何人修改了任何一个文件,其他的N个文件都被修改.
删掉了一个硬链接文件,其他的兄弟文件不受影响.
不可以对目录进行硬链接
只能对已存在的文件进行硬链接
删掉了一个硬链接文件,其他的不受到影响
ls -l 会列出文件的详情,再加-i会列出inode编号 , 也会列出硬链接的数量
link old new
ln 1.txt 2.txt
#可以获取所有相同inode编号的文件 也就是硬链接的文件
find / -inum 1061292
关机操作
数据同步写入磁盘 直接执行 sync
shutdown
-t 几秒后关机
-k 不是真的关机,发出警告
-r 在系统服务都停止以后,重启电脑
-h 在系统服务都停止后,关机
-f 关机并且开机之后,强制略过磁盘检查 (硬盘可能有坏道的情况会用到这个命令,有坏道会开不了机)
-F 重启之后,必须进行磁盘检查
-c 取消已经在进行中的 shutdown 指令
shutdown -h now 现在关机
shutdown -h 12:00 12点关机
shutdown -h +10 十分钟后关机
shutdown -r now 马上重启
shutdown -r +30 '要重启了' 三十分钟后发送一个警告信息
shutdown -k now '要重启了' 马上发送一个警告信息
reboot 重启linux
帮助命令
man ls
查看linux 系统版本号
cat /etc/redhat-release
CentOS 7.0默认使用的是firewall作为防火墙, 使用systemctl来管理服务和程序,包括了service和chkconfig
1、查看默认防火墙状态(关闭后显示not running,开启后显示running)
[root@localhost ~]# firewall-cmd --state
not running
2、检查防火墙的状态
[root@localhost ~]# systemctl list-unit-files|grep firewalld.service
firewalld.service disabled
或者:
[root@localhost ~]# systemctl status firewalld.service
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
Active: inactive (dead) --表示防火墙已经关闭
Docs: man:firewalld(1)
3、开启防火墙
[root@localhost ~]#systemctl start firewalld.service --启动firewall
[root@localhost ~]# systemctl enable firewalld.service --开机时启动firewall
Created symlink from /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service to /usr/lib/systemd/system/firewalld.service.
Created symlink from /etc/systemd/system/multi-user.target.wants/firewalld.service to /usr/lib/systemd/system/firewalld.service.
4、关闭防火墙:
[root@localhost ~]#systemctl stop firewalld.service --停止firewall
[root@localhost ~]# systemctl disable firewalld.service --禁止firewall开机启动
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
5、重启防火墙
[root@localhost ~]# systemctl restart firewalld.service
6、查看防火墙是否开机自启
[root@localhost ~]# systemctl is-enabled firewalld.service;echo $?
enabled --自启
0
或者:
[root@localhost ~]# systemctl is-enabled firewalld.service;echo $?
disabled --不自启
7、查看已启动的服务列表
[root@localhost ~]# systemctl list-unit-files|grep enabled
auditd.service enabled
autovt@.service enabled
avahi-daemon.service enabled
crond.service enabled
8、开启端口
[root@localhost ~]# firewall-cmd --zone=public --add-port=80/tcp --permanent
success
命令含义:
–zone #作用域
–add-port=80/tcp #添加端口,格式为:端口/通讯协议
–permanent #永久生效,没有此参数重启后失效
1 firewall-cmd --state ##查看防火墙状态,是否是running
2 firewall-cmd --reload ##重新载入配置,比如添加规则之后,需要执行此命令
3 firewall-cmd --get-zones ##列出支持的zone
4 firewall-cmd --get-services ##列出支持的服务,在列表中的服务是放行的
5 firewall-cmd --query-service ftp ##查看ftp服务是否支持,返回yes或者no
6 firewall-cmd --add-service=ftp ##临时开放ftp服务
7 firewall-cmd --add-service=ftp --permanent ##永久开放ftp服务
8 firewall-cmd --remove-service=ftp --permanent ##永久移除ftp服务
9 firewall-cmd --add-port=80/tcp --permanent ##永久添加80端口
10 firewall-cmd --remove-port=80/tcp --permanent ##永久移除80端口
11 firewall-cmd --list-ports ##查看已经开放的端口
12 iptables -L -n ##查看规则,这个命令是和iptables的相同的
13 man firewall-cmd
9、查看已经开放的端口
[root@localhost ~]# firewall-cmd --list-port
80/tcp
10、屏蔽FirewallD服务
[root@localhost ~]#systemctl mask firewalld
还可以通过创建一个firewall.service到/dev/null的符号连接来屏蔽防火墙服务。
11、反屏蔽FirewallD服务
[root@localhost ~]#systemctl unmask firewalld
这是反屏蔽FirewallD服务,它会移除屏蔽FirewallD服务时创建的符号链接,故能重新启用服务。
12、检查是否已安装防火墙
[root@localhost ~]#yum install firewalld firewall-config
13、下面说下CentOS7和6的默认防火墙的区别
CentOS 7默认使用的是firewall作为防火墙,使用iptables必须重新设置一下
1、直接关闭防火墙
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动
2、设置 iptables service
yum -y install iptables-services
3、如果要修改防火墙配置,如增加防火墙端口3306
vi /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
保存退出后
systemctl restart iptables.service #重启防火墙使配置生效
systemctl enable iptables.service #设置防火墙开机启动
4、最后重启系统使设置生效即可
systemctl start iptables.service #打开防火墙
systemctl stop iptables.service #关闭防火墙
#永久移除端口
firewall-cmd --zone=public --remove-port=80/tcp --permanent
#检查端口是否开启
#centos7以下使用netstat -ant,7使用ss;80替换为想要检查的端口
ss -ant | grep 80
ifconfig未找到
yum -y install net-tools
资料来源
后盾人教学文档:http://houdunren.gitee.io/note/linux/1%20install.html
命令大全手册:https://www.linuxcool.com/?tdsourcetag=s_pctim_aiomsg
命令搜索引擎:https://wangchujiang.com/linux-command/