Linux命令笔记(1)
zhouwen
编辑于 2022年11月21日 21:31

whatis 命令 查看命令简短的信息

apropos 配置文件 查看配置文件简短的信息

压缩和解压缩

.gz   gzip  gunzip(gzip -d)

.tar  tar   -cf   -xf   

.tar.gz   tar -zcf  -zxf 

    .zip   zip   -r    unzip 

.bz2   bzip2   bunzip2 

.tar.bz2   tar -cjf -xjf 

网络命令 

write  给用户发消息,ctrl + D保存结束

ping  

ping 192.168.1.156

ping -c 3 192.168.1.156    ping三次

mail    发送邮件, ctrl + D 保存结束

last    列出目前与过去登入系统的用户信息

lastlog 查看某特定用户上次登录的时间的信息

traceroute 显示数据包到主机间的路径(探测网络路由) 

netstat  显示网络状态(相关信息) 

选项:

-t: tcp协议

-u: udp协议

-l: 监听

-r: 路由

-n: 显示IP地址和端口号

范例: 

netstat -tlun 查看本机监听的端口

netstat -an 查看本机所有的网络连接

netstat -rn     查看本机的路由表

shutdown  关机和重启命令

选项:

-c:取消前一个关机命令

-h:关机

-r:重启

系统的运行级别

0: 关机

1: 单用户

2: 不完全多用户,不含NFS服务

3: 完全多用户

4: 未分配

5: 图形界面

6: 重启

vim 

命令: r R

r: 替换一个字符, R: 进入替换模式

      /string 搜索指定字符串

  搜索时忽略大小写: set ic 

      :%s/old/new/g 全文替换指定的字符串

      :n1,n2s/old/new/g  在一定范围内替换指定字符串

      :! 命令 在vim中执行命令

      :r 文件名 在vim中带导入文件

      :r !命令 导入命令的执行结果

 

      定义快捷键:map快捷键 触发命令

        范例: :map ^P I#<ESC>      (I在行首插入的意思) 

              :map ^B 0x           (跳到行首) 

      连续行注释:n1, n2s/^/#/g

     :n1,n2s/^#//g

     :n1,n2s/^/\/\//g

      替换

:ab mymail samlee@lampbrother.net

rpm  -ivh  包全名 # 安装rpm包

选项: 

-i (install) 安装

-v (verbose) 显示详细信息

-h (hash)   显示进度

--nodeps 不检测依赖性

rpm  -e 包名

选项: -e (erase) 卸载

--nodeps   不检测依赖性

rpm  -q 包名      # 查询包是否安装

选项: -q   查询(query) 

rpm  -qa         # 查询所有已经安装的rpm包

选项: -a 所有(all) 

rpm  -qi 包名 # 查询软件包的详细信息

选项: -i 查询软件信息(information) 

-p 查询未安装包信息(package) 注:要加包全名

rpm  -qf  系统文件名    # 查询系统文件属于哪个rmp包

选项: -f 查询系统文件属于哪个软件包 (file) 

rpm  -qR  包名   # 查询软件包的依赖性

-R  查询软件包的依赖性(requires) 

-p  查询未安装包信息(package)

rpm  -V  rpm包效验

-V 效验指定RPM包中的文件(verify) 

 

验证内容中的8个信息的具体内容如下: 

S 文件的大小是否改变

M 文件的类型或文件的权限(rwx)是否被改变

5 文件MD5效验和是否该改变(可以堪称文件内容是否改变) 

D 设备的中,从代码是否改变

L 文件路径是否改变

U 文件的属主(所有者)是否改变

G 文件的属组是否改变

T 文件的修改时间是否改变

文件类型

c 配置文件(config file) 

d 普通文件 (documentation) 

g "鬼&#​34;文件(ghost file) 很少见,就是该文件不应该被这个PRM包包含

l 授权文件(license file) 

r 描述文件(read me) 

rpm2cpio 包全名 | cpis -idv .文件绝对路径 # rpm 包中文件提取

rpm2cpio   # 将rpm包转换成cpio格式的命令

cpio # 是一个标准的工具,它用于创建软件档案文件和从档案文件中提取文件

cpis  选项  <[文件|设备]>

-i: copy-in模式, 还原 

-d: 还原时自动新建目录

-v: 显示还原过程

启动网卡

vi /etc/sysconfig/network-scripts/ifcfg-eth0

把ONBOOT="no&#​34; 改成

ONBOOT="yes&#​34;

重启网络服务

service network restart     # 重启网络服务

网络yum源

vi /etc/yum.repos.d/CentOS-Base.repo 

[base] 容器名称, 一定要放在[]中

name 容器说明, 可以自己随便写 

mirrorlist 镜像站点,这个可以注释掉

baseurl 我们的yum源服务器的地址。默认是CentOS官方的yum源服务器,是可以服务的,如果你觉得慢可以改成你喜欢的yum源地址。

enabled 此容器是否生效,如果不写或写成enable=1都是生效,写成enable=0就是不生效

gpgcheck如果是1是指RPM的数字证书生效,如果是0则不生效 

gpgkey  数字证书的公钥文件保存位置。不用修改。

常用的yum命令

1) 查询

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

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

2) 安装

yum -y install 包名

选项: 

install 安装

-y 自动回答yes

3) 升级

yum -y update 包名

update 升级

-y 自动回答yes

4) 卸载

yum -y remove 包名

remove 卸载

-y 自动回到yes

yum 软件组管理命令

yum group list # 列出所有可用的软件组列表

yum groupinstall 软件组名 # 安装指定软件组,组名可以有grouplist查询出来

yum groupremove 软件组名 # 卸载指定软件组

光盘yum源搭建步骤

1) 挂载光盘

mount /dev/cdrom  /mnt/cdrom 

2) 让网络yum源文件失效

cd /etc/yum.repos.d/ 

mv CentOS-base.repo CentOS-Base.repo.bak

mv CentOS-DebugInfo.repo CentOS-Debuginfo.repo.bak

mv CentOS-Vault.repo  CentOS-Vault.repo.bak

3) 修改光盘yum源文件

vim CentOS-Medio.repo 

[c6-media]

name=CentOS-$releasever-Media

# 地址为你自己的光盘挂载地址

baseurl=file:///mnt/cdrom 

# 注释这两个不存在的地址

# file:///media/cdrom/

# file:///media/cdrecorder/ 

# 把enabled=0改为enabled=1, 让这个yum源配置文件生效

gpgcheck=1

enabled=1 

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

RPM默认安装路径

/etc/ 配置文件安装目录

/usr/bin/ 可执行命令安装目录

/usr/lib/ 程序所使用的函数库保存位置

/usr/share/doc/ 基本的软件使用手册保存位置

/usr/share/man/ 帮助文件保存位置

源码包安装位置

/usr/local/软件包/

安装位置不同带来的影响

RPM包安装的服务可以使用系统服务管理命令(service)来管理,例如RPM包安装的apache的启动方法是: 

/etc/rc.d/init.d/httpd start

service http start 

源码包安装的服务则不能被服务管理命令管理,因为没有安装到默认路径下。所以只能用绝对路径进行服务的管理,如: 

/usr/local/apache2/bin/apachectl start 

源码包安装过程

1. 安装准备

安装C语言编译器

下载源码包

http://mirror.bit.edu.cn/apache/httpd/

2. 安装注意事项

源代码保存位置: /usr/local/src/ 

软件安装位置: /usr/local/ 

如何确定安装过程报错: 

安装过程停止

并出现error、warning或no的提示

3. 源码包安装过程

下载源码包

解压缩下载的源码包

进入解压缩目录

  ./configure 软件配置与检查

定义需要的功能选项

检测系统环境是否符合安装要求

把定义好的功能选项和检测系统环境的信息都写入Makefile文件,用于后续的编辑

 

用户管理简介

越是对服务器安全性要求高的服务器,越需要建立合理的用户权限等级制度和服务器操作规范。 

在linux中主要是通过用户配置文件来查看和修改用户信息 

用户的家目录: 

普通用户:/home/用户名/, 所有者和所属组都是此用户,权限是700 

超级用户:/root/, 所有者和所属组都是root用户,权限是550

用户的邮箱

/var/spool/mail/用户名/   # 可以用mail命令发送邮件,包括发送给同一主机的其他用户,以及发送qq邮件等

用户模版目录

/etc/skel #  创建用户时在家目录下出现的文件

用户管理命令

用户添加命令useradd

修改用户密码passwd

修改用户信息usermod

修改用户密码状态chage

删除用户userdel 

用户切换命令su 

useradd命令格式

useradd [选项] 用户名

-u UID: 手工指定用户的UID号

-d 家目录: 手工指定用户的家目录

-c 用户说明: 手工指定用户的说明

-g 组名: 手工指定用户的初始组 

-G 组名: 指定用户的附加组

-s shell: 手工指定用户的登录shell。默认是/bin/bash

 用户默认值文件

/etc/default/useradd 

GROUP=100 # 用户默认组

HOME=/home # 用户家目录

INACTIVE=-1 # 密码过期宽限天数(shadow文件7字段)

EXPIRE= # 密码失效时间(shadow文件的8字段)

SHELL=/bin/bash # 默认shell

SKEL=/etc/skel # 模版目录

CREATE_MAIL_SPOOL=yes # 是否建立邮箱

/etc/login.defs 

PASS_MAX_DAYS 9999 # 密码有效期(5)

PASS_MIN_DAYS 0 # 密码修改间隔(4) 

PASS_MIN_LEN 5 # 密码最小5位(PAM) 

PASS_WARN_AGE 7 # 密码到期警告(6) 

UID_MIN 500 # 最小和最大UID范围

GID_MAX 60000 

ENCRYPT_METHOD SHA512 # 加密模式

passwd命令格式

passwd [选项] 用户名

-S 查询用户密码的密码状态。仅root用户可用

-l 暂时锁定用户。仅root用户可用

-u 解锁用户。仅root用户可用

--stdin 可以通过管道符输出的数据作为用户的密码。

修改用户信息 usermod

usermod  [选项]   用户名

-u UID: 修改用户的UID号 

-c 用户说明: 修改用户的说明信息

-G 组名: 修改用户的附加组 

—L: 临时锁定用户(Lock) 

-U: 解锁用户锁定(Unlock)

修改用户密码状态chage

chage [选项] 用户名

-l: 列出用户的详细密码状态

-d日期: 修改密码最后一次更改日期(shadow  3 字段 )

-m天数: 两次密码修改间隔(4字段 ) 

-M天数: 密码有效期(5字段)

-W天数: 密码过期前警告天数(6字段)

-I天数:  密码过后宽限天数(7字段)

-E日期: 账号失效时间(8字段)

示例: chage -d 0 lamp 

# 这个命令其实是把密码修改日期归0了(shadow 第3字段) 

# 这样用户一登录就要修改密码

删除用户 userdel

userdel [-r] 用户名

选项: 

-r 删除用户的同时删除用户家目录

手工删除用户:

vi /etc/passwd

vi /etc/shadow

vi /etc/group

vi /etc/gshadow

rm -rf /var/spool/mail/lamp 

rm -rf /home/lamp 

查询用户的uid和gid:

id 用户名

用户切换su:

su [选项] 用户名

选项:

-: 选项只是用"-&#​34; 代表连带用户的环境变量一起切换

-c命令: 仅执行一次命令,而不切换用户身份

添加用户组

groupadd [选项] 组名

选项: 

-g GID: 指定组

修改用户组

groupmod [选项] 组名

选项:

-g GID: 修改组ID

-n 新组名: 修改组名

删除用户组

groupdel 组名