linuxday02

本文详细介绍了Linux操作系统中的网络通信命令,如ping、ip addr、netstat,以及进程管理命令如ps、top、kill等。此外,还涵盖了用户与组的创建和删除、文件权限管理(chmod、chown、chgrp)、sudo权限配置和免密登录的实现。最后,讨论了软件安装机制(rpm、yum)以及定时任务crontab的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

网络通信命令

ping

命令路径:/bin/ping 执行权限:所有用户

作用:测试网络的连通性

语法:ping 选项 IP地址

-c 指定发送次数

ping 命令使用的是icmp协议,不占用端口

#ping -c 3 127.0.0.1

ip addr

英文:interface configure 命令路径:/sbin/ifconfig 执行权限:root

作用:查看和设置网卡网络配置

语法:ifconfig [-a][网卡设备标识]

-a: 显示所有网卡信息

ifconfig 网卡名字 查看单个的网卡信息

netstat

英文:network statistics 命令路径:/bin/netstat 执行权限:所有用 户

注意:如果在系统中默认没有这个命令:直接安装net-tools包即可

作用:主要用于检测主机的网络配置和状况

-a (all)显示所有连接和监听端口

-t (tcp)仅显示tcp相关选项

-u (udp)仅显示udp相关选项

-n 使用数字方式显示地址和端口号

-p 显示socket的PID和进程的名字

-l (listening)显示监控中的服务器的socket

# netstat -tlnu 查看本机监听的端口

# tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 协议 待收数据包 待发送数据包 本地ip地址:端口 远程IP地址:端口 netstat –antpl

# netstat -ntlp | grep httpd 查看某一个程序的端口信息

# netstat -atnp | grep httpd

# netstat -atnp | grep 80 查看端口

修改映射关系

修改主机名和ip地址之间的映射关系

执行# vim /etc/hosts 进入hosts文件,加入代码

主机ip 主机名

192.168.10.111 l01

192.168.10.112 l02

192.168.10.113 l03

最好让主机名字,虚拟机名字,网络连接名字保持一致

进程管理命令

ps命令

作用:查看系统中的进程信息

语法:ps [-auxle] 常用选项

a:显示所有用户的进程

u:显示用户名和启动时间

x:显示没有控制终端的进程

e:显示所有进程,包括没有控制终端的进程

l:长格式显示

查看系统中所有进程

ps aux #查看系统中所有进程,使用BSD操作系统格式,

unix ps -le #查看系统中所有进程,使用Linux标准命令格式

# ps -u or ps -l 查看隶属于自己进程详细信息

# ps aux | grep sam 查看用户sam执行的进程

# ps -ef | grep init 查看指定进程信息

pstree

需要安装软件包:psmisc.x86_64

作用:查看当前进程树

语法:pstree [选项]

-p 显示进程PID

-u 显示进程的所属用户

top

作用:查看系统健康状态

显示当前系统中耗费资源最多的进程,以及系统的一些负载情况。

语法:top [选项]

-d 秒数,指定几秒刷新一次,默认3秒(动态显示)

kill

作用:关闭进程

语法:kill [-选项] pId

# kill -9 进程号(强行关闭) 常用

# kill -1 进程号(重启进程)

# killall -l 关闭所有进程(忽略进程名的大小写)

w

作用: 查看用户信息

语法: w 用户名

# w root

显示:

USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT

root pts/0 10.0.158.3 06:02 0.00s 0.13s 0.00s w root

解释:

JCPU:以终端代号来区分,该终端所有相关的进程执行时,所消耗的CPU时间会显示在这里

PCPU:CPU执行程序耗费的时间

WHAT:用户正在执行的操作

nohup

作用: 使进程在用户退出登陆后仍旧继续执行,nohup命令将执行后的数据信息和错误信息默认储 存到文件nohup.out中

语法: nohup program & &在后台运行的意思

# nohup ping www.baidu.com &

使用:

# ps -ef | grep ping 查看当前的ping进程

uptime

作用: 查看负载

例如: 使用uptime确定是服务器还是网络出了问题。如果网络应用程序运行,运行uptime来了解 系统负载是否很高。如果负载不高,这个问题很有可能是由于网络引起的而非服务器。

语法: uptime

执行:

# uptime 显示: 06:32:04 up 19:57, 4 users, load average: 0.00, 0.01, 0.00

解释: 系统时间 用户数量 服务器在过去的1分钟、5分钟、15分钟的系统平均负 载值

用户与组的创建和删除

su

语法: su 用户名

作用: 切换用户

# su root 切换回root用户,注意:如果是root用户,每次都会 要求输入密码.普通的用户可以直接切换

useradd

添加用户

语法:useradd [选项] 用户名

passwd

修改密码命令

语法:passwd [选项][用户名]

用户密码:生产环境中,用户密码长度8位以上,设置大小写加数字加特殊字符,要定期更换密 码。

userdel

删除用户

-r 删除账号时同时删除宿主目录(remove)

注意:一个用户已经打开,需要删除

做法:先跳到当前用户下面,执行exit 或 exit 用户名。这时会自动跳回root界面。

如果还是无法删除,可以将系统重启

groupadd

用于添加组

-g 指定gid

groupmod

用于修改组

-n 更改组名(new group)

# groupmod -n new_gname old_gname

groupdel

用于删除组

如果要删除的组归属于某一个用户的所属组,则不能删除该组

# useradd -g hadoop hdfs

# groupdel hadoop

文件权限命令

三种基本权限

r 读权限(read)

w 写权限(write)

x 执行权限 (execute)

权限说明

第1位:文件类型(d 目录,- 普通文件,l 链接文件)

第2-4位:所属用户(所有者)权限,用u(user)表示

第5-7位:所属组权限,用g(group)表示

第8-10位:其他用户(其他人)权限,用o(other)表示

第2-10位:表示所有的权限,用a(all)表示

eg: -rw-r--r--. 1 root root 3664 Nov 30 17:42 CentOS-Vault.repo.bak

第十一位的1代表硬链接数

r

读权限

可以查看文件内容

可以列出目录的内容(ls)

w

写权限

可以修改文件内容

可以在目录中创建删除文件( mkdir,rm )

x

执行权限

可以执行文件

可以进入目录(cd)

对于文件,我们有执行权限的命令:

r-cat,more,head,tail,less

w-echo,vi

x-命令,脚本

对于目录,我们有执行权限的命令:

r-ls

w-touch,mkdir,rm,rmdir

x-cd

能删除文件的权限是必须对该文件所在的目录有wx权限。

chmod

用于权限更改 英文:change mode (change the permissions mode of a file)

作用:改变文件或目录权限

语法:

chmod [{ugoa}{+-=}{rwx}][文件名或目录]

chmod [mode=421][ 文件或目录]

参数:-R 下面的文件和子目录做相同权限操作(Recursive递归的)

可以有修改一个文件的权限:

1.root

2.文件所有者

# chmod u+x a.txt

# chmod u+x,o-x a.txt 用数字来表示权限(r=4,w=2,x=1,-=0)

# chmod 750 b.txt

rwx和数字表示方式能随意切换

注意:root用户是超级用户,不管有没有权限,root都能进行更改。用普通用户测试权限。 不能用一个普通用户去修改另一个普通用户的权限。

chown

用于更改所有者

英文:change file ownership

作用:更改文件或者目录的所有者

语法 : chown user[:group] file...

-R : 递归修改

参数格式 : user : 新的档案拥有者的使用者 ID

group : 新的档案拥有者的使用者群体(group)

# chown lee file1 把file1文件的所有者改为用户lee

# chown lee:test file1 把file1文件的所有者改为用户lee,所 属组改为test 

# chown –R lee:test dir 修改dir及其子目录的所有者和所属 组

chgrp

用于改变所属组

英文:change file group ownership

作用:改变文件或目录的所属组

语法 : chgrp [group] file...

# chgrp root test.log 把test.log的所属组修改为root

sudo权限的配置

root把本来只能超级用户执行的命令赋予普通用户执行。

sudo的操作对象是系统命令

修改sudoers文件

执行# visudo 这里实际修改的是/etc/sudoers文件

sudoers文件内部的信息解释

root ALL=(ALL) ALL

#用户名 被管理主机的地址(不是访问地址)=(可使用的身份) 授权命令(绝对路径)

%wheel ALL=(ALL) ALL

#%组名 被管理主机的地址=(可使用的身份) 授权命令(绝对路径)

# sudo -l 查看可用的sudo命令

注意: sudo命令用来以其他身份来执行命令,预设的身份为root。在/etc/sudoers中设置了可执行sudo 指令的用户。 若其未经授权的用户企图使用sudo,则会发出警告的邮件给管理员。 用户使用sudo时,必须先输入密码,之后有5分钟的有效期限,超过期限则必须重新输入密码。

语法

sudo(选项)(参数) 选项

-b:在后台执行指令;

-h:显示帮助;

-H:将HOME环境变量设为新身份的HOME环境变量;

-k:结束密码的有效期限,也就是下次再执行sudo时便需要输入密码;

-l:列出目前用户可执行与无法执行的指令;

-p:改变询问密码的提示符号;

-s:执行指定的shell;

-u:以指定的用户作为新的身份。若不加上此参数,则预设以root作为新的身份;

-v:延长密码有效期限5分钟;

-V :显示版本信息。

实例

1 配置sudo必须通过编辑/etc/sudoers文件,而且只有超级用户才可以修改它,还必须使用 visudo编辑。

2 之所以使用visudo有两个原因

一是它能够防止两个用户同时修改它

二是它也能进行有限的语法检查

3 所以,即使只有你一个超级用户,你也最好用visudo来检查一下语法。 visudo默认的是在vi 里打开配置文件,用vi来修改文件。我们可以在编译时修改这个默认项。

4 visudo不会擅自保存带有语法错误的配置文件,它会提示你出现的问题,并询问该如何处理, 错误提示:sudoers file:syntax error,line 22<<

此时我们有三种选择:

键入“e”是重新编辑

键入“x”是不保存退出 键入“Q”是退出并保存。如果真选择Q,那么sudo将不会再运行,直到错误被纠正。

免密配置

我们这样再添加一行配置文件

hdp1 ALL=NOPASSWD: /bin/ls, /usr/bin/sudo

再来sudo一下:不再需要密码

软件管理机制

Linux下软件的安装大概可以分为如下几种

1 二进制程序的安装(最简单安装)

2 rpm程序安装(后缀名为*.rpm)

3 yum源安装(本质也是rpm安装,它只是rpm的一种安装方式而已)

4 源码安装

二进制安装

Linux下二进制格式的软件是指事先已经在各种平台编译安装好相关软件,然后压缩打包,在 安装时只需解压或者执行安装可执行文件即可。

安装*.tar.gz、*.bz2二进制软件包

对于*.tar.gz软件格式解压:tar –zxvf xxxxxx.tar.gz 对于*.bz2软件格式解压: tar -jxvf xxxxxx.tar.gz这类软件的卸载,对于解压后只有单一目录的软件,可以直接删除对应软件目 录即可,如果解压后文件分散在几个目录中,需要一一手动删除目录。

提供安装程序的软件包

这种软件包都提供了安装脚本或者安装向导程序,只需在下载此类软件包后解压,然后进入 安装目录,找到类似的setup、install、install.sh之类的可执行文件运行即可,然后根据提示 (比如安装路径,参数设置等等)进行相应的设置,接着安装就自动完成,这类软件的卸载也提供了相应的卸载脚本或者卸载向导,根据提示即可完成软件卸载。

rpm安装

RPM软件包管理

RPM软件包也称为二进制软件包

rpm的常用参数

i:安装应用程序(install)

vh:显示安装进度(verbose hash)

U:升级软件包(update)

qa: 显示所有已安装软件包(query all)

e:卸载应用程序(erase) 注意:如果其它软件包有依赖关系,卸载时会产生提示信息,可使用--nodeps强行卸载。

查询所有安装的rpm包: # rpm –qa

查询mysql相关的包: # rpm –qa | grep mysql

安装:# rpm -ivh jdk.rpm

卸载: # rpm –e mysql*

强行卸载:# rpm –e mysql* --nodeps

yum日常操作

图形化界面,手动挂载

yum(yellowdog updater modified):软件包管理工具

1 自动解决软件包依赖关系

2 方便的软件包升级

查询

yum list 查询所有可用软件包列表

yum search 关键字 搜索服务器上所有和关键字相关的包

yum info 关键字 来查找包名

安装

yum -y install 包名 -y 自动回答yes

升级

yum -y update 包名

注意:如果不加包名,就升级所有的,包括内核。必须加包名升级单个软件包,慎用升级所有的

检测升级 yum check-update

卸载

yum -y remove 包名

其他操作

yum --help、man yum 帮助

yum clean all 清除缓存和旧的包

yum repolist 查看当前可用的yum源

yum deplist httpd 列出一个包所有依赖的包

scp命令

集群模式下,各节点之间如何方便的拷贝文件?

命令格式:

scp file 远程用户名@远程服务器IP:~/ (注意:冒号和目录之间不能有空格)

如果拷贝目录,需要加-r 选项。

使用root用户

# scp /etc/profile root@lee2:/etc

# scp -r /usr/jdk1.8 lee2:/usr/java 使用 root用户可以将远程用户名省略

# scp /root/a/ qianfeng02:$PWD 注:使用$PWD 默认到当前正在操作的目录(lee2的etc下)。

注意:目标主机要有与当前 正在操作的目录相同的目录,前面的文件或文件夹会直接拷贝到后面的目录中

~:到当前用户的宿主目录

# scp /etc/services lee2:/root/service.hard 可以通过这种方式修改拷贝的文件名。

ssh免密登录

ssh免密登录作用

方便的进行节点之间的切换 ssh node2

免密登录实现流程

在第一台机器上生成一对钥匙,公钥和私钥

ssh-keygen -t rsa

当前用户的宿主目录下的.ssh目录多了两个文件

将公钥拷贝给要免密码登录的机器

注意:

1 主机名和ip都可以(确保配置了ip的映射)

2 如果出现-bash: ssh-copy-id: command not found,说明ssh-copy-id这个指令没有找到, 自己安装下即可

安装命令: # yum -y install openssh-clients

还需要输入密码

拷贝完成之后,会在要免密登录的机器上生成授权密码文件

注意:免密码登录是单向的

ssh免密登录原理

1 node1 使用 ssh-keygen –t rsa 生成公钥和私钥

2 ssh-copy-id root@node2 将公钥拷贝到node2上,实际上是把公钥内容追加到 authorized_keys文件中。

3 请求时:node1向node2发送连接请求时,附带主机,ip地址等信息

4 node2收到请求后,去授权文件里查找node1的公钥,找到之后,随机生成一个字符串,并 用公钥加密,并发送给node1

5 node1接收到密文之后,用私钥解密,并把解密结果返回给node2

6 node2拿到解密结果之后,与之前的字符串进行比较,如果相同,则可以登录成功。

定时器crontab

- 在Linux中,周期性的执行任务一般由cron这个守护进程来处理,它是一个linux下 的定时任务 执行工具,可以在无需人工干预的情况下运行作业。

[ps -ef|grep cron]

- cron读取一个或多个配置文件,这些配置文件中包含了命令行及其调用时间。

- cron的配置文件称为“crontab”,是“cron table”的简写。

cron服务

# service crond start //启动服务

# service crond stop //关闭服务

# service crond restart //重启服务

# service crond reload //重新载入配置

# service crond status //查看服务状态

cron的配置文件位置

1 /var/spool/cron/

2 说明这个目录下存放的是每个用户包括root的crontab任务,每个任务以创建者的名字命名,比 如tom建的crontab任务对应的文件就是/var/spool/cron/tom。一般一个用户最多只有一个 crontab文件。

crontab命令格式

作用:用于生成cron进程所需要的crontab文件

格式:crontab [-u username] -e

文件内容格式

格式如下: * * * * * user-name command to be executed

共有六部分组成,分别表示:

分 时 日 月 星期 要运行的命令

解析:

        minute: 一小时中的哪一分钟 [0~59]

        hour: 一天中的哪个小时 [0~23]

        day: 一月中的哪一天 [1~31]

        month: 一年中的哪一月 [1~12]

        week: 一周中的哪一天 [0~6] 0表示星期天

        commands: 执行的命令

书写注意事项

        1 全都不能为空,必须填入,不知道的值使用通配符*表示任何时间

        2 每个时间字段都可以指定多个值,不连续的值用,间隔,连续的值用-间隔。

        3 命令应该给出绝对路径

        4 用户必须具有运行所对应的命令或程序的权限

        5 */num 表示频率

应用案例

1 每天早上6点

        0 6 * * * echo "Good morning." >> /tmp/test.txt

        //注意 如果不进行追加 ,从屏幕上看不到任何输出,因为cron把任何输出都email到 root的信箱了。

 2 每两个小时

        0 */2 * * * echo "Have a break now." >> /tmp/test.txt

 3 晚上11点到早上8点之间每两个小时和早上八点

        0 23-7/2,8 * * * echo "Have a good dream" >> /tmp/test.txt

4 周一到周五下午,5点半提醒学生15分钟后关机

        30 17 * * 1-5 /usr/bin/wall < /etc/issue

        45 17 * * 1-5 /sbin/shutdown -h now

5 学校的计划任务, 12点14点,检查apache服务是否启动

        */2 12-14 * 3-6,9-12 1-5

6 每月 1、1 0、2 2日的4:45运行/apps/bin目录下的backup.sh

        45 4 1,10,22 * * /apps/bin/backup.sh

7 每周六、周日的 1 : 10运行一个find命令

        10 1 * * 6,0 /bin/find -name "core" -exec rm {} \;

8 在每天 18:00至23 :00之间每隔30分钟运行/apps/bin目录下的dbcheck.sh

        0,30 18-23 * * * /apps/bin/dbcheck.sh

9 每星期六的 11:00 pm运行/apps/bin目录下的qtrend.sh

        0 23 * * 6 /apps/bin/qtrend.sh

时间同步服务器的搭建

同步网络上的时间

在每一台机器上,都可以使用定时任务crontab同步网络上的时间服务器 ,如 time.windows.com

前提:安装ntpdate.x86_64 然后: 使用root用户,进行定时 0 * * * * /usr/sbin/ntpdate -u time.windows.com

自定义时间服务器

如果集群没有联网,那么可以自己搭建一个时间服务器,让集群中的所有机器都同步局域网 内的时间服务器。

1 选择集群中的某一台机器master作为时间服务器

2 保证这台服务器安装了ntp.x86_64。

3 保证ntpd 服务运行......

        # sudo service ntpd start

        开机自启动:

        # chkconfig ntpd on

4 配置相应文件:# vi /etc/ntp.conf

        # Hosts on local network are less restricted.

        #restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap

        restrict 192.168.81.0 mask 255.255.255.0 nomodify notrap

        // 添加集群中的网络段位

        # Use public servers from the pool.ntp.org project.

        # Please consider joining the pool (http://www.pool.ntp.org/join.html).

        #server 0.centos.pool.ntp.org iburst 注释掉

        #server 1.centos.pool.ntp.org iburst 注释掉

        #server 2.centos.pool.ntp.org iburst 注释掉

        #server 3.centos.pool.ntp.org iburst 注释掉

        server 127.127.1.0 -master作为服务器

5 其他机器要保证安装ntpdate.x86_64 6

其他机器要使用root定义定时器

        */1 * * * * /usr/sbin/ntpdate -u master

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值