命令的用法

1:netstat命令

查看网络的相关信息 

常见的选项:

-n 以数字的形式显示ip地址和端口号
-a 显示所有的socket套接字
-p 显示进程的相关信息
-t 显示tcp传输协议的套接字
[root@localhost /]# netstat -pant
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:39467           0.0.0.0:*               LISTEN      -                   
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      1/systemd           
tcp        0      0 0.0.0.0:20048           0.0.0.0:*               LISTEN      1174/rpc.mountd     
tcp        0      0 0.0.0.0:44753           0.0.0.0:*               LISTEN      1124/rpc.statd  

 

如果没有n的话,就会以主机名来显示ip地址

 

-a:显示所有的套接字(就是监听的状态和已经建立的连接),如果没有这个选项的话,就显示已经建立的连接,

-t:显示tcp的连接

 

2:chattr和lsattr命令

这个命令就是更改文件或者目录的属性,连root用户都要被受限制

常用的选项:

-a 文件只能被追加写入,不能进行任何的操作,文件夹有着个权限的话,能在里面创建文件,不能重命名
-i 文件被锁定,进行不了任何的操作,文件夹有这个权限的话,什么都不能做

这2个选项一但设置后,root用户都删除不了,但是可以通过root用户修改这2个权限

 

3:/etc/shadow的字段和密码

/etc/shadow的字段

q7:$6/::0:99999:7:::

每个字段的含义:

第一个字段为:用户名

第二个字段为:加密口令

第三个字段为:最后一次修改的日期(距离1970年1月1日过去的天数)

第三个字段为;最小修改密码的时间

第四个字段为:最大修改密码的时间

第五个字段为:密码过期前的警告天数

第六个字段为:账户宽限日期,就是密码被禁用后的宽限天数

第七个字段为:账户被禁用日期(距离1970年过去的天数)

保留字段:功能扩展用的

密码的状态

ntp:!!:19637::::::

*表示非登录用户,就是系统用户

!!表示没有设置密码

!表示密码被锁定

设置密码被锁定的命令

usermod -L 锁定密码

usermod -U 解锁密码

passwd -l 锁定密码

passwd -u 解锁密码

passwd -S 查看密码的状态

4:ssh的密钥的设置

1:scp命令

就是在连接上了xshell后可以使用的命令,就是远程复制主机上的内容

2:免密登录的介绍

就是服务器登录到其他的主机上面去,不需要输入密码(比较麻烦)

免密的操作:

1)在客户端上面生成密钥

[root@client ~]# ssh-keygen -t rsax 

需要输入三次回车

会生成几个文件

known_hosts 记录ssh访问过计算机的公钥

id_rsa 生成的私钥

id_rsa.pud 生成的公钥

authorized_keys 存放过的无密码登录服务器公钥,与公钥的内容相同

[root@client .ssh]# ls
id_rsa  id_rsa.pub
[root@client .ssh]# 

2)将生成的公钥发送给服务器

ssh-copy-id 服务器的ip地址

[root@client .ssh]# ssh-copy-id  192.168.10.100

这样服务器上面就会有几个文件

/root/.ssh

[root@server .ssh]# ls
authorized_keys  known_hosts
[root@server .ssh]# 

3)修改服务器上面的配置文件

口令认证就是:每次登录需要输入用户名和密码

密钥登录就是:需要密钥进行匹配,认证成功就能直接登录上去

就是客户机有密钥和私钥(自己留着),公钥发送给服务器,当服务器接收到客户机的请求时,就会将自己的公钥与客户机的公钥进行匹配

[root@server ssh]# vim /etc/ssh/sshd_config 

修改里面的几个参数
PermitRootLogin yes   允许root用户登录
PasswordAuthentication no 是否允许口令认证

4)重启sshd服务

[root@server ssh]# systemctl restart sshd

5)客户机登陆服务器

就是需要密钥才能登入,禁止使用密码来登录

[root@client /]# ssh 192.168.10.100

配置好了之后,不需要输入密码就能直接连接上去了,就是修改ssh的配置文件的话,会影响xshell的连接主机,如果是设置了不能使用密码的话,连接主机的时候就只能使用密钥来登录

  

5:date命令

常用的日期和时间域

  

%F 完整的日期格式,等于%Y-%m-%d
%T 完整的时间格式,等于%H%M%S

显示完整的日期和时间

#多个选项,用 双引号来包含
[root@localhost opt]# date +'%F %X'
2023-11-08 23时01分23秒
[root@localhost opt]#  

设置日期

 使用选项-s

[root@controller ~]# date -s "2021-01-01 21:23:11"
Fri Jan  1 21:23:11 CST 2021

  

六:硬链接和软连接

都是使用link命令

格式:

link 选项 源文件 目标文件

1:创建一个硬链接

[q7@controller mnt]$ ls
11
[q7@controller mnt]$ sudo link /mnt/11 /mnt/22
[q7@controller mnt]$ ll
total 8
-rw-r--r--. 2 root root 6 Nov 12 16:28 11
-rw-r--r--. 2 root root 6 Nov 12 16:28 22
[q7@controller mnt]$  

硬链接就是源文件一样,对硬链接文件进行修改,就相当于是对源文件进行修改

[q7@controller mnt]$ sudo vim 22
dasda
dasd
ada
da
~                                                                                                                    
~   
#查看源文件
[q7@controller mnt]$ cat 11
dasda
dasd
ada
da
[q7@controller mnt]$ 

2:创建一个软连接

加上一个-s的选项

[q7@controller mnt]$ sudo ln -s /mnt/11 /mnt/22
[q7@controller mnt]$ ls
11  22
[q7@controller mnt]$ ll
total 4
-rw-r--r--. 1 root root 18 Nov 12 16:32 11
lrwxrwxrwx. 1 root root  7 Nov 12 16:44 22 -> /mnt/11
[q7@controller mnt]$ 

  

  

 七:/etc/sudoers

这个配置文件就是用户授权的文件

每个字段的意思

q7 all=(all) NOPASSWD:ALL 

第一个字段:代表授权使用sudo的用户或者组

第二个字段:代表允许授权用户在哪些主机上使用这些权利

第三个字段:允许被授权的用户提权到什么组级别的权限,all包含root用户权限

第四个字段:提权的时候是否需要输入自身的密码使用特权

第五个字段:代表执行什么的命令,all代表允许执行所有命令

 

八:Linux与windows之间的文件上传

安装lrzsz软件包

[root@client ~]# yum -y install lrzsz

 

rz将文件上传到linux里面

 

sz将文件上传到windows里面 sz 文件名 

 

 

 九:scp命令的用法

 

scp命令是基于ssh协议的文件的传输

-r 选项能将文件夹的里面的内容都拷贝过去

从本地主机复制文件到远程服务器

scp 本地文件名 username@主机名:/文件路径

[root@controller mnt]# scp /mnt/11 root@client:/mnt/

  

 从远程服务器复制文件到本地

[root@controller mnt]# scp root@client:/mnt/22 /mnt

  

将文件夹里面的内容复制过来

[root@controller mnt]# ls
11  22  dd  hgfs
[root@controller mnt]# scp -r /mnt/dd/ root@client:/opt

  

 

 10:curl命令的用法

curl是利用url语法在命令行方式下工作的开源文件传输工具

1:curl +url 可以获取网页的源码

[root@controller mnt]# curl huaweiyun.com
<html>
<head><title>301 Moved Permanently</title></head>
<body bgcolor="white">
<center><h1>301 Moved Permanently</h1></center>
<hr><center>nginx</center>
</body>
</html>
[root@controller mnt]# 

 

2:o和O选项

-o就是将文件保存为命令中指定的文件名的文件

[root@controller mnt]# curl -o  /root/22 www.baidu.com/index.php

  

-O使用URL默认的文件名保存文件到本地

[root@controller mnt]# curl -O www.baidu.com/index.php

  

11:tailf查看日志的命令

tailf跟tail -f 一样跟踪的查看文件的内容

 

12:/etc/fstab

/dev/mapper/rhel-swap   none                    swap    defaults        0 0

 

第一个字段:file system 这里就是挂载的文件系统的设备名称或者块的信息,也可以是远程文件系统

第二个字段:挂载点,文件系统挂载的地方,swap分区这里是none,没有挂载点

第三个字段:type,这里就是指定文件系统的类型,ext4,xfs

第四个字段:options,defaults这个选项包含(rw,suid,async)

第五个字段:dump是否备份,此处为1的话,就是要备份,0的话就是不备份

第六个字段:pass 这里用来指定如何使用fsck来检查硬盘,0的话就是不检查

一般的话,就是 /dev/sdb1 /mnt ext4 default 0 0

 

 13:crontab命令

就是一个计划任务,就是关于什么时候执行命令

这个命令的描述在/etc/crontab这个文件里面

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root

# For details see man 4 crontabs

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name  command to be executed

  

里面的字段的含义:

第一个字段:表示分钟(0~59)

第二个字段:小时(0~23)

第三个字段:几号(1~31)

第四个字段:月份(1~12)

第五个字段:week(0~7)

第六个字段:command,可以是系统命令也可以是自己编写的脚本文件

还可使用一下特殊字符

*:表示所有可能出现的值

,:表示隔开的值制定一个列表的范围 1,3,5,7

-:可以整数之间的中杠表示一个整数的范围2-6表示2,3,4,5,6

/:指定时间的间隔频率, 0~23/2 表示每隔2个小时执行一次,*/10 表示每隔10分钟执行一次

一些特殊的含义:

* * * * * command命令
* 表示每分钟都执行或者每小时执行
1-5表示1到5分钟之内或者1到5小时之间执行
*/5 表示每隔5分钟执行,或者每隔5小时执行
1,5,6 表示1分钟,5分钟,6分钟执行

  

软件包为crontabs

[root@controller ~]# systemctl status crond.service 
● crond.service - Command Scheduler
   Loaded: loaded (/usr/lib/systemd/system/crond.service; enabled; vendor preset: enabled)
   Active: active (running) since Sat 2023-11-18 22:49:56 CST; 8min ago
 Main PID: 1423 (crond)  

服务的名称为crond

 

命令的选项为:

-u 就是指定用户

-e 编辑用户的crontab

-l:列出用户的crontab

-r:就是删除用户的crontab

 

 14:firewall和selinux的设置

1:服务

firewall-cmd 服务相关的命令

临时放行服务和临时删除服务

临时添加
[root@controller /]# firewall-cmd --add-service=http
success

[root@controller /]# firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: ens160 ens192
  sources: 
  services: cockpit dhcpv6-client http mountd nfs rpc-bind samba ssh
  ports: 

#临时删除
[root@controller /]# firewall-cmd --remove-service=http
success
[root@controller /]# firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: ens160 ens192
  sources: 
  services: cockpit dhcpv6-client mountd nfs rpc-bind samba ssh
  ports: 

 

永久放行和永久删除------要配合permanent参数使用

--reload参数---让永久生效的规则立刻生效

[root@controller /]# firewall-cmd --permanent --add-service=http
success
#使用 --reload这个命令,让永久生效的命令立刻生效
[root@controller /]# firewall-cmd --reload 
success


[root@controller /]# firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: ens160 ens192
  sources: 
  services: cockpit dhcpv6-client http mountd nfs rpc-bind samba ssh

#永久删除
[root@controller /]# firewall-cmd --permanent --remove-service=http
success
[root@controller /]# firewall-cmd --reload 
success
[root@controller /]# firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: ens160 ens192
  sources: 
  services: cockpit dhcpv6-client mountd nfs rpc-bind samba ssh
  ports: 

  

查看防火墙的状态

[root@controller /]# firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: ens160 ens192
  sources: 
  services: cockpit dhcpv6-client mountd nfs rpc-bind samba ssh
  ports: 
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 
[root@controller /]# 

 

获取所有支持的服务

[root@controller /]# firewall-cmd --get-services | grep mountd
RH-Satellite-6 amanda-client amanda-k5-client amqp amqps apcupsd audit bacula bacula-client bb bgp bitcoin bitcoin-rpc bitcoin-testnet bitcoin-testnet-rpc bittorrent-lsd ceph ceph-mon cfengine cockpit collectd condor-collector ctdb dhcp dhcpv6 dhcpv6-client distcc dns dns-over-tls docker-registry docker-swarm dropbox-lansync 

  

2:端口

临时添加端口和临时删除端口(reload之后就会失效)

[root@controller /]# firewall-cmd --add-port=6666/tcp
success
[root@controller /]# firewall-cmd --list-ports 
6666/tcp

[root@controller /]# firewall-cmd --remove-port=6666/tcp
success
[root@controller /]# firewall-cmd --list-ports 

[root@controller /]# 

 

永久生效端口和永久删除端口(reload之后生效)

要加端口号和类型

#永久添加端口
[root@controller /]# firewall-cmd --permanent --add-port=6666/tcp
success
[root@controller /]# firewall-cmd --reload 
success
[root@controller /]# firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: ens160 ens192
  sources: 
  services: cockpit dhcpv6-client mountd nfs rpc-bind samba ssh
  ports: 6666/tcp

#永久删除端口
[root@controller /]# firewall-cmd --permanent --remove-port=6666/tcp
success
[root@controller /]# firewall-cmd --reload 
success
[root@controller /]# firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: ens160 ens192
  sources: 
  services: cockpit dhcpv6-client mountd nfs rpc-bind samba ssh
  ports: 

    

selinux的设置

就是开启一些服务的布尔值,就是要知道跟这个服务有关的布尔值

查看ftpd服务布尔值
[root@controller /]# semanage boolean -l | grep ftpd
ftpd_anon_write                (off  ,  off)  Allow ftpd to anon write
ftpd_connect_all_unreserved    (off  ,  off)  Allow ftpd to connect all unreserved
ftpd_connect_db                (off  ,  off)  Allow ftpd to connect db
ftpd_full_access               (on   ,   on)  Allow ftpd to full access
ftpd_use_cifs                  (off  ,  off)  Allow ftpd to use cifs
ftpd_use_fusefs                (off  ,  off)  Allow ftpd to use fusefs
ftpd_use_nfs                   (off  ,  off)  Allow ftpd to use nfs
ftpd_use_passive_mode          (off  ,  off)  Allow ftpd to use passive mode
[root@controller /]# 

#修改关闭布尔值
[root@controller /]# setsebool -P ftpd_full_access=off
[root@controller /]# semanage boolean -l | grep ftpd
ftpd_anon_write                (off  ,  off)  Allow ftpd to anon write
ftpd_connect_all_unreserved    (off  ,  off)  Allow ftpd to connect all unreserved
ftpd_connect_db                (off  ,  off)  Allow ftpd to connect db
ftpd_full_access               (off  ,  off)  Allow ftpd to full access
ftpd_use_cifs                  (off  ,  off)  Allow ftpd to use cifs
ftpd_use_fusefs                (off  ,  off)  Allow ftpd to use fusefs
ftpd_use_nfs                   (off  ,  off)  Allow ftpd to use nfs
ftpd_use_passive_mode          (off  ,  off)  Allow ftpd to use passive mode
[root@controller /]# 

 

semanage 加上-P的选项就是永久修改,不加上就是临时修改

selinux可以修改文件的上下文类型,布尔值,这些与服务保持类似性,就能够被服务所加载 

[root@controller www]# semanage fcontext -a  -t httpd_sys_content_t '/www/aaa(/.*)?'
[root@controller www]# restorecon -RFv /www/aaa
Relabeled /www/aaa from system_u:object_r:default_t:s0 to system_u:object_r:httpd_sys_content_t:s0
Relabeled /www/aaa/index.html from system_u:object_r:default_t:s0 to system_u:object_r:httpd_sys_content_t:s

  

  

15:history-c和history -w

history -c:该命令用于清除历史记录。它会删除当前会话中的所有历史记录,使得当前会话中的历史记录列表为空。这对于临时清除历史记录非常有用,例如在临时关闭终端或会话时。

history -w:该命令用于将当前终端的历史记录保存到指定的文件中。它会将当前会话中的历史记录保存到指定的文件中,以便在其他终端或会话中继续查看和使用。这个命令通常用于将历史记录导出到文件,以便长期保存或共享。您需要指定一个有效的文件路径作为参数,以便将历史记录保存到该文件中。

 

16:echo命令

选项参数:

-e:使用反斜杠的转义功能生效

-n:输出时,不在行尾换行

echo自带换行

 

17:grep命令

选项:

-r 递归的搜索文本的内容
-l 只列出包含内容的文件名
-v 取反
   

运维的操作:

查找报错的日志:

[root@controller httpd]# grep -r error 

 

18:rpm -qc 包名

就是查找安装的包,安装了哪些配置文件

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  

 

posted @ 2023-11-03 19:06  q_7  阅读(17)  评论(0编辑  收藏  举报