Linux必知必会

CentOS6和CentOS7区别

版本查看

查看Linux内核版本和CentOS版本信息

1
2
3
4
5
6
## 可以使用uname -a查看
[root@node01 ~]# uname -a
Linux node01 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 21:09:27 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
## 也可以直接查看文件/etc/redhat-release 信息
[root@node01 ~]# cat /etc/redhat-release
CentOS Linux release 7.4.1708 (Core)

区别比较

系统 CentOS6 CentOS7
init系统 Sysvinit Systemd
桌面系统 GNOME 2.x GNOME 3.x(GNOME Shell)
文件系统 ext4 xfs
内核版本 2.6.x-x 3.10.x-x
防火墙 iptables firewalld
默认数据库 MySQL MariaDB
主机名 /etc/sysconfig/network /etc/hostname
文件结构 /bin, /sbin, /lib,/lib64(在/下) /bin, /sbin, /lib, /lib64移到/usr下
启动停止服务 service service_name start service service_name stop systemctl start service_name systemctl stop service_name
服务列表 chkconfig –list systemctl list-unit-files && systemctl –type service
IP信息 ifconfig ip address

Linux文件基本属性

基本说明

使用ls -l命令查看文件基本信息

1
2
3
4
5
## 使用ls -l或者ll命令
[root@node01 tools]# ls -l
total 185368
drwxr-xr-x. 8 10 143 255 Dec 20 2017 jdk1.8.0_162
-rw-r--r--. 1 root root 189815615 Dec 26 2020 jdk-8u162-linux-x64.tar.gz

这里一共包含十个字符。
第1个字符表示文件类型,其中:

  • d表示文件夹
  • -表示文件
  • l表示链接文档

接下来的9个字符,每3个为一组。其中:

  • 第2-4个字符表示文件的拥有者(owner)权限
  • 第5-7个字符表示文件的拥有者所在组(group)权限
  • 第8-10个字符表示其它用户(others)权限

文件权限具体分为四种:
r:可读
w:可写
x:可执行
-:无权限

在 Linux 中我们通常使用以下两个命令来修改文件或目录的所属用户与权限:
chown (change owner) : 修改所属用户与组
chmod (change mode) : 修改用户的权限

chown的使用

chown [–R] 属主名 文件名
chown [-R] 属主名:属组名 文件名

1
2
3
4
5
6
## 注意:修改前后文件夹权限变化
[root@node01 tools]# ls -l
drwxr-xr-x. 8 10 143 255 Dec 20 2017 jdk1.8.0_162
[root@node01 tools]# chown -R root:root jdk1.8.0_162
[root@node01 tools]# ll
drwxr-xr-x. 8 root root 255 Dec 20 2017 jdk1.8.0_162

chmod的使用

数字表示法

各权限的分数对照表如下:
r:4
w:2
x:1
-:0
例如一个文件,它的权限为: -rwxrwx—
三个三个一组按规则累加计算:
owner = rwx = 4+2+1 = 7
group = rwx = 4+2+1 = 7
others= - - - = 0+0+0 = 0
那么这个文件的权限这是770。
如果我们需要将该用户组设置为只读,那么只需要变更成740即可。
owner = rwx = 4+2+1 = 7
group = rwx = 4+0+0 = 4
others= - - - = 0+0+0 = 0

1
chmod 740 test

符号表示法

我们可以根据不同的用户组来划分,分别是
user:用u表示
group:用g表示
others:用o表示。
同时用a(all)代表全部,而权限属性即可用r,w,x三个字符来表示。
权限的操作包括:
+:添加权限
-:删除权限
=:重新赋权

1
chmod g=r test

Linux系统查看端口占用情况

在Linux中,我们可以使用netstat命令或者lsof命令来查看端口占用情况。具体如下

netstat命令

格式:netstat -tunlp|grep <port>
可选参数

  • -t (tcp) 仅显示tcp相关选项
  • -u (udp)仅显示udp相关选项
  • -n 拒绝显示别名,能显示数字的全部转化为数字
  • -l 仅列出在Listen(监听)的服务状态
  • -p 显示进程标识符和程序名称
1
2
3
## 查看9870端口
[root@bd12 opt]# netstat -tunlp|grep 9870
tcp    0   0 10.8.40.112:9870    0.0.0.0:*       LISTEN   27012/java

lsof命令

格式:lsof -i:<port>

1
2
3
4
 ## 查看9870端口
[root@bd12 opt]# lsof -i:9870
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
java  27012 hdfs 234u IPv4 907288   0t0 TCP bd12:9870 (LISTEN)

Linux文件上传下载命令

通常情况下,我们可以通过xftp等工具直接拖拽进行文件或文件夹的上传下载。也可以使用sz和rz命令同Windows进行文件传输。
注意:使用sz和rz命令只能进行文件传输。

简单使用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
## 安装插件
[root@node01 ~]# yum -y install lrzsz
## 安装完成之后可以通过sz和rz命令进行查看具体操作
[root@node01 ~]# sz --help
sz version 0.12.20
...
[root@node01 ~]# sz --help
sz version 0.12.20
...
## 具体示例
## 1.从Linux服务器下载文件到Windows本地
## 使用sz命令+文件名回车之后会弹出Windows窗口供用户选择下载路径
[root@node01 tools]# ll
total 458220
-rw-r--r--. 1 root root 279396579 Jul 13 2021 flink-1.10.1-bin-scala_2.12.tgz
-rw-r--r--. 1 root root 189815615 Dec 26 2020 jdk-8u162-linux-x64.tar.gz
[root@node01 tools]# sz flink-1.10.1-bin-scala_2.12.tgz
## 2.从Windows本地上传文件到Linux服务器
## 使用rz命令回车之后会弹出Windows窗口供用户选择需要上传的文件
[root@node01 tools]# rz

scp和rsync的简单使用

在Linux中,scp命令通常用来实现服务器与服务器之间的安全拷贝,而rsync命令通常用来备份和镜像。
它们的区别在于:scp每一次都会对所有文件进行拷贝,而rsync则只对差异性文件进行更新,因此,用rsync命令做文件的复制要比scp更快。
一般而言,rsync命令需要我们单独安装,而scp命令一般Linux自带。

1
2
3
4
5
6
7
8
## 查看是否安装scp
[root@node02 ~]# which scp
/usr/bin/scp
## 查看是否安装rsync,如果没有,安装rsync。
## 注意:只有各个节点都安装了scp和rsync才能使用相关命令进行文件传输。
[root@node02 ~]# which rsync
/usr/bin/which: no rsync in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin)
[root@node02 ~]# yum install -y rsync

简单使用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
## 使用scp命令递归拷贝文件到另一台服务器上
## 参数含义: -r 递归拷贝
[root@node02 opt]# scp -r test/ root@node03:/opt/
## 使用rsync命令递归拷贝文件到另一台服务器上
## 参数含义: -a 归档拷贝,-v 显示拷贝过程
[root@node02 opt]# rsync -av test root@node03:/opt/
sending incremental file list
test/
test/word.txt
## 注意:如果这里是test/,那么只会拷贝test目录下面的文件,而不会拷贝test文件夹本身。
## 而使用scp则都是拷贝整个test文件夹。
[root@node02 opt]# rsync -av test/ root@node03/opt/
./
word.txt

rpm的简单使用

在Linux中,我们可以通过使用rpm命令来管理套件。
这里根据实际的使用情况,进行简单整理。

参数说明

参数 说明
-q 使用询问模式,当遇到任何问题的时候,rpm会先询问用户
-a 查询所有套件
-e 删除指定套件
-i 显示套件的相关信息
-v 显示指令执行过程
-h 套件安装时列出标记:####
–nodeps 不验证套件的相互关联性
–help 帮助神器

简单使用

1
2
3
4
rpm -qa|grep mariadb #检查是否安装mariadb
rpm -e mariadb-libs-5.5.56-2.el7.x86_64 #卸载已安装mariadb
rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64 #强力卸载mariadb
rpm -ivh mysql-community-client-5.7.27-1.el7.x86_64.rpm # 安装MySQL客户端

crontab的简单使用

在Linux中,crontab命令通常用来设置定时任务。

参数说明

参数 说明
-e 编辑crontab定时任务
-l 查看crontab定时任务
-r 删除当前用户所有的crontab定时任务

时间表格式

基本格式:* * * * * command
规则说明

位置 代表含义 数字范围
第一个* minute 分钟 0 - 59,多个不连续时间可以用逗号分隔,连续时间可以用-表示,比如0-5,下同
第二个* hour 小时 0 - 23,多个不连续时间可以用逗号分隔
第三个* day of month 日期 1 - 31,多个不连续时间可以用逗号分隔
第四个* month 月份 1 - 12,多个不连续时间可以用逗号分隔
第五个* day of week 星期 0 - 6 (注意:这里如果数字为0或7都表示周日)

注意:星期和日期最好不要同时出现,它们定义的都是天数,非常容易混乱。

简单使用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
##编辑定时任务,每隔1分钟向指定文件追加hello
[root@hadoop01 test]# crontab -e
##编辑内容如下
*/1 * * * * /bin/echo 'hello' >> /opt/test/hello.txt
##编辑完成之后,需要重新启动crond服务
[root@hadoop01 test]# systemctl restart crond.service
##查看定时任务
[root@hadoop01 test]# crontab -l
*/1 * * * * /bin/echo 'hello' >> /opt/test/hello.txt
##查看目标文件内容(如果不存在,自动新建hello.txt文件)
[root@hadoop01 test]# cat /opt/test/hello.txt
hello
##等待一分钟再次查看
[root@hadoop01 test]# cat /opt/test/hello.txt
hello
hello
##s删除定时任务并再次查看
[root@hadoop01 test]# crontab -r
[root@hadoop01 test]# crontab -l
no crontab for root

注意:下面两种写法的区别

1
2
3
4
##每1分钟执行一次
*/1 * * * *
##每小时的第1分钟执行一次
1 * * * *
打赏
  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!
  • Copyrights © 2015-2023 henrrywan

请我喝杯咖啡吧~

支付宝
微信