欢迎前往CSND查看,我的博客原文https://blog.csdn.net/smilehappiness/article/details/105184233
@目录
Linux使用详解(进阶篇)
firewall-cmd --get-active-zones
1.Linux目录说明
-
bin -> usr/bin
这个目录存放的是,最经常使用的命令 -
boot
这个目录存放启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件 -
dev
设备Device的缩写, 该目录下存放Linux的外部设备,Linux中的设备也是以文件的形式存在 -
etc
这个目录存放所有的系统管理所需要的配置文件 -
home
用户的主目录,在Linux中每个用户都有一个自己的目录,一般该目录名以用户的账号命名 -
lib -> usr/lib
该目录存放着系统最基本的动态连接共享库,其作用类似于windows里的DLL文件,几乎所有的应用程序都需要用到这些共享库。 -
lib64 -> usr/lib64
64位的系统动态连接共享库 -
media
Linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,Linux会把识别的设备挂载到这个目录下 -
mnt
系统提供该目录是为了让用户临时挂载别的文件系统,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容 -
opt
该目录是给linux额外安装软件所存放的目录,比如安装一个Mysql数据库则就可以放到这个目录下,默认该目录是空的(装软件常用目录:/usr/local
、/opt
、/srv
) -
root
该目录为系统管理员目录,root是具有超级权限的用户,是Linux默认创建好的用户 -
sbin -> usr/sbin
s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序 -
srv
该目录存放一些服务启动之后需要提取的数据 -
tmp
这个目录是用来存放一些临时文件的 -
usr
这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似与windows下的Program Files目录 -
var
这个目录存放着在不断扩充着的东西,我们习惯将那些经常被修改的文件存放在该目录下,比如运行的各种日志文件 -
proc
这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息
这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件,比如可以通过下面的命令来屏蔽主机的ping命令,使别人无法ping你的机器:echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
-
run
程序或服务启动后,运行的PID存放在该目录下 -
sys
内核中的文件系统 sysfs
2.操作防火墙
为了网络安全,服务器一般都会开启防火墙,防火墙firewalld
服务通过一种信任机制来管理访问系统的连接。这里详细介绍下CentOS 7版本Linux的防火墙操作命令:
-
防火墙firewalld命令
Linux中,这三个命令都是可以的systemctl status firewalld
查看防火墙状态systemctl status firewalld.service
查看防火墙状态service firewalld status
查看防火墙状态systemctl anable firewalld
让防火墙可用systemctl disable firewalld
让防火墙禁用systemctl start firewalld
启动防火墙systemctl stop firewalld
关闭防火墙systemctl restart firewalld
重启防火墙
在实际公司里面不会这么做,一般都是开启了防火墙,需要时,开放需要的端口,从而提高安全性 -
firewall-cmd命令
man firewall-cmd
查看firewall-cmd命令的帮助文档firewall-cmd -V
firewall-cmd --get-default-zone
默认级别为public
firewall-cmd --get-active-zones
获取活动的区域firewall-cmd --get-zones
获取防火墙信任级别列表(共9个)
防火墙 firewalld 将不同的网络连接,归类到不同的信任级别,Zone 提供了以下几个级别:- block: 拒绝所有外部发起的连接,允许内部发起的连接
- dmz: 允许受限制的进入连接
- drop: 丢弃所有进入的包,而不给出任何响应
- external: 同上,对伪装的进入连接,一般用于路由转发
- home: 允许受信任的计算机被限制的进入连接
- internal: 同上,范围针对所有互联网用户
- public: 允许指定的进入连接
- trusted: 信任所有连接
- work: 允许受信任的计算机被限制的进入连接
-
开启单个防火墙端口命令:
firewall-cmd --zone=public --add-port=3306/tcp --permanent
命令参数含义: --zone #作用域:使用firewall-cmd --get-default-zone命令,可以查看当前系统默认的作用区域 --add-port=8080/tcp #添加端口,格式为:端口/通讯协议 --permanent #永久生效,如果不设置此参数,重启服务后失效
-
开启多个防火墙端口
firewall-cmd --zone=public --add-port=8080-8088/tcp --permanent
-
重新加载防火墙配置
firewall-cmd --reload
-
取消删除端口开放
firewall-cmd --zone=public --remove-port=3306/tcp --permanent
-
查询端口号3306是否开启
firewall-cmd --query-port=3306/tcp
-
列出当前开启的端口列表
firewall-cmd --list-port
-
列出当前开启的服务列表
firewall-cmd --list-services
-
查询服务的启动状态
firewall-cmd --query-service tcp
-
查询所有开启的服务和端口
firewall-cmd --list-all
3.ulimit命令和history命令
-
ulimit命令
ulimit
用于显示系统资源限制的信息,如:ulimit -a
语法:ulimit [param]
param参数可以为:
-a 显示目前资源限制的设定
-c <core文件上限> 设定core文件的最大值,单位为区块
-d <数据节区大小> 程序数据节区的最大值,单位为KB
-f <文件大小> shell所能建立的最大文件,单位为区块
-H 设定资源的硬性限制,也就是管理员所设下的限制
-m <内存大小> 指定可使用内存的上限,单位为KB
-n <文件数目> 指定同一时间最多可开启的文件数
-p <缓冲区大小> 指定管道缓冲区的大小,单位512字节
-s <堆叠大小> 指定堆叠的上限,单位为KB
-S 设定资源的弹性限制
-t <CPU时间> 指定CPU使用时间的上限,单位为秒
-u <程序数目> 用户最多可开启的程序数目
-v <虚拟内存大小> 指定可使用的虚拟内存上限,单位为KB -
history 命令
history
该命令可以查看操作Linux使用了那些历史命令history -c
清空历史命令
bash中默认命令记忆可达1000个,这些命令保存在主文件夹内的 .bash_history 中
~/.bash_history 记录的是前一次登录以前所执行过的命令,至于本次登录的命令暂时存储在内存中,注销成功后会写入文件中注意:这个情况并不会清空 ~/.bash_history 中的记录,只是清空内存中的记录
退出终端时,内存中的命令记录会存储到~/.bash_history 中,但是必须通过logout登出
强制关闭终端时,内存中的历史记录,也不会记录在~/.bash_history中,即使记录了也会有丢失增加历史记录最大条数
history默认记录最大1000条,可通过修改环境变量来增加条数。将HISTSIZE=1000修改为5000[root@localhost /]# vim /etc/profile
HOSTNAME=/bin/hostname 2>/dev/null
HISTSIZE=5000source /etc/profile
执行该命令加载source,使得配置即时生效history中增加操作时间记录
[root@localhost /]# vim /etc/profile
HOSTNAME=/bin/hostname 2>/dev/null
HISTSIZE=5000
HISTTIMEFORMAT="%Y/%m%d %H:%M:%S"
[root@localhost /]# source /etc/profilehistory命令使用,参考资料链接
4.RPM和Yum的使用
Linux安装软件包的几种方式:
-
使用rpm安装
RPM
是Red-Hat Package Manager(RPM软件包管理器)的缩写,是由Red Hat公司开发的一种软件包管理方式,使用rpm我们可以方便的进行软件的安装、查询、卸载等工作。但是使用rpm命令安装rpm软件包也有一些致命的缺点,它不能自己解决软件包之间的依赖性问题,需要自己一个一个去安装依赖的软件包。
rpm只能安装一个指定的软件包,如果该软件包存在依赖性关系,比如安装A软件包的时候,需要先安装B软件包,采用rpm安装方式,就要先安装B,再安装A。 -
使用yum安装
Yum
(全称为 Yellow dog Updater, Modified)是一个在RedHat、Fedora以及CentOS中的一种软件包管理器,它基于RPM包管理,能够从指定的服务器自动下载RPM包并且进行安装,可以自动处理软件包之间的依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。
yum能自动检测软件包之间的依赖关系,可以直接yum安装A包,yum能检测到A与B的依赖关系,自动安装B包。 -
通过源码编译安装
Linux安装软件第三种方式:就是通过源码编译安装(GCC),一般就是下载tar.gz安装包,自己解压源码到指定路径,进行安装。这种安装方式与yum相比的好处是,可以安装在指定的位置,yum安装,会导致安装文件不受控制,比较乱。 -
直接解压
Linux安装软件第四种方式:有些软件直接解压即可使用,(如:tomcat、zookeeper等)
Linux安装软件时,业内约定成俗,一般安装在三个地方,其他地方当然也能安装
1、/usr/local
2、/opt
3、/srv
rpm常用命令
rpm参数说明:-i
安装应用程序(install)-e
卸载应用程序(erase)-vh
显示安装进度;(verbose hash)-U
升级软件包;(update)-qa
显示所有已安装软件包(query all)
rpm -ivh jdk1.8.101.rpm
安装rpm包的软件rpm -qa | grep xxx
查看是否安装了某个rpm包rpm -e jdk1.8.101.rpm
删除某个rpm安装包
rpm安装软件,安装后的文件到处都有,散落一地,不好归档
yum常用命令yum search <keyword>
查找软件包命令,有些软件没有rpm包yum install <package_name>
安装指定的软件命令
比如:telnet
,使用该命令会提示:
-bash: telnet: command not found
yum install telnet -y 安装telnet软件包,就可以使用telnet命令了
telnet www.baidu.com
yum remove <package_name>
删除软件包命令yum list installed
列出所有已安装的软件包命令yum list installed | grep java
列出已安装的指定软件包命令
清理yum安装已下载的包命令,一般安装后可以清空缓存,释放资源,不影响使用yum clean all
(yum install 后的rpm包存放在/var/cache/yum/
下)
5.设置系统字符集
系统字符集,有时候可能需要修改,这里也介绍下,如:设置中文man手册,可能需要把系统字符集设置为中文字符集
-
查看当前的字符集
echo $LANG
locale
-
临时修改系统字符集
export LANG="zh_CN.UTF-8"
设置为中文字符集export LANG="en_US.UTF-8"
设置为英文字符集 -
永久修改系统字符集
需要写入/etc/profile
配置文件vim /etc/profile
添加内容export LANG="en_US.UTF-8"
添加内容后,在命令模式下:wq
保存并退出source /etc/profile
让修改配置生效
6.vi & vim编辑器
vi
是linux下标配的一个纯字符界面的文本编辑器,由于不是图形界面,相关的操作都要通过键盘输入命令来完成,需要记住一些常用的操作命令vim
是vi的升级版本,完全兼容vi,vim也可以完全当成vi使用,vim是在vi的基础上增加一些功能,比如语法着色等
vi和vim使用是比较简单的,记住几个常用的命令,即可vi(vim) filename
可以打开并修改文件
如果参数中的filename文件存在,则打开该文件,如果参数中的文件不存在,则会新建该文件(不是立即创建,而是在保存的时候创建)
vi(vim)有几种操作模式:
-
命令模式
按Esc
键,进入命令模式,命令模式下无法编辑
编辑好内容后,在命令模式下,按:wq
保存编辑内容退出,按:q!
不保存修改部分并退出 -
编辑模式
按a
或者i
字母键,进入编辑模式(此时,底部会出现insert) -
为了快速使用vi(vim)命令编辑文本内容,整理了一些常用的快捷键 (在命令模式下执行)
dd
删除光标所在行yy
复制光标所在行到缓冲区p
粘贴缓冲区中的内容gg
光标回到文件第一行GG
光标回到文件最后一行^
光标移动至当前行的行首$
光标移动至当前行的行尾/关键字
按斜杠/
键,可以输入想搜索的字符,然后确定进行搜索,如果第一次查找的关键字不是想要的,可以一直按n键往后查找到想要的关键字为止
7.文件同步、复制
更新中...
8.利用SCP命令进行文件传输
scp基础介绍:
- Linux
scp
命令用于 Linux 之间复制文件和目录。scp是secure copy的缩写,scp是Linux 系统下基于ssh登陆,进行安全的远程文件拷贝命令,和ssh 使用相同的认证方式,提供相同的安全保证 。 - scp 是加密的,rcp 是不加密的,scp 是 rcp 的加强版。
- scp不需要安装额外的软件,使用起来简单方便,安全可靠且支持限速参数,但是它不支持排除目录。
scp使用语法:
scp [可选参数] file_source file_target
这里的可选参数有很多,我列几个常用的:-p
保留原文件的修改时间,访问时间和访问权限-q
不显示传输进度条-r
递归复制整个目录,常用于传输文件夹-v
展示传输详情,scp和ssh(1)会显示出整个过程的调试信息。这些信息用于调试连接,验证和配置问题。-P
port:注意是大写的P,port是指定数据传输用到的端口号
scp使用示例:
-
从本地复制到远程
命令格式:scp local_file remote_username@remote_ip:remote_folder
或者scp local_file remote_username@remote_ip:remote_file
或者scp local_file remote_ip:remote_folder
或者scp local_file remote_ip:remote_file
第1,2个指定了用户名,命令执行后需要再输入密码,第1个仅指定了远程的目录,文件名字不变,第2个指定了文件名;
第3,4个没有指定用户名,命令执行后需要输入用户名和密码,第3个仅指定了远程的目录,文件名字不变,第4个指定了文件名;scp /home/space/music/1.mp3 root@www.runoob.com:/home/root/others/music scp /home/space/music/1.mp3 root@www.runoob.com:/home/root/others/music/001.mp3 scp /home/space/music/1.mp3 www.runoob.com:/home/root/others/music scp /home/space/music/1.mp3 www.runoob.com:/home/root/others/music/001.mp3
如果需要复制目录,使用命令格式:
scp -r local_folder remote_username@remote_ip:remote_folder
或者scp -r local_folder remote_ip:remote_folder
第1个指定了用户名,命令执行后需要再输入密码;
第2个没有指定用户名,命令执行后需要输入用户名和密码;
应用实例:scp -r /home/space/music/ root@www.runoob.com:/home/root/others/ scp -r /home/space/music/ www.runoob.com:/home/root/others/
上面命令将本地 music 目录复制到远程 others 目录下。
-
从远程复制到本地
从远程复制到本地,只要将从本地复制到远程的命令的后2个参数调换顺序即可,如下应用实例:scp root@www.runoob.com:/home/root/others/music /home/space/music/1.mp3 scp -r www.runoob.com:/home/root/others/ /home/space/music/
注意:
如果远程服务器防火墙有为scp命令设置了指定的端口,我们需要使用-P
参数来设置命令的端口号,命令格式如下:#scp 命令使用端口号 4588 scp -P 4588 remote@www.runoob.com:/usr/local/sin.sh /home/administrator
使用scp命令要确保使用的用户具有可读取远程服务器相应文件的权限,否则scp命令是无法起作用的。
该scp使用这部分,参考菜鸟教程
写博客是为了记住自己容易忘记的东西,另外也是对自己工作的总结,希望尽自己的努力,做到更好,大家一起努力进步!
如果有什么问题,欢迎大家一起探讨,代码如有问题,欢迎各位大神指正!