Linux系统常用指令

223 阅读17分钟

一.linux系统概述

二.Vim

Linux内置vi文本编辑器

1.模式

  • 正常模式

    • 默认的一般模式,使用[上下左右]移动光标,[删除字符]或[删除整行],[复制/粘贴]
  • 插入模式

    • 按下i,I,o,O,a,A,r,R进入编辑模式
  • 命令行模式

    • 输入esc+:进入,提供读取、存盘、替换、离开等操作

image-20220509175622703.png

2.快捷键

功能快捷键扩展
赋值yy拷贝当前行向下5行:5yy
粘贴p
删除dd删除当前行向下5行:5dd
查找/关键字回车查找,n移动到下一个
设置行号:set nu / :set nonu
定位[G]末行 [gg]首行
撤销u一般模式下
移动光标行号 shift + g 或 :行号一般模式下
  • 命令行下

    • wq 保存退出
    • q 退出
    • !q 强制退出,不保存

三.系统操作

1.关机/重启

shutdown -h now         立刻进行关机
shutdown -h 1           1分钟你后关机
shutdown -r now         立刻重启
halt                    关机
reboot                  重启
sync                    内存数据同步到磁盘
  • 关机重启前先执行sync命令

2.用户登录/注销

su -用户名 :    切换身份
logout :    注销用户 -只能在运行级别3运行

四.用户管理

1.用户

  • 添加用户

    • useradd 用户名
    • 会在/home下创建该用户家目录
    • useradd -d 指定目录 新的用户名 :创建指定目录下的新用户
  • 修改密码

    • passwd 用户名(不指定是给当前用户修改密码)
  • 删除用户

    • userdel 用户名:仅删除用户
    • userdel -r 用户名 :删除用户及其家目录
  • 查询用户信息

    • id 用户名
    • who am i查询当前用户信息(登录的用户)
  • 修改

    • usermod -d 目录名 用户名 改变该用户登陆的初始目录 (用户需要有进入新目录的权限)
  • 查看系统所包含的用户

    • cat etc/passwd

2.组

查看系统所包含的用户

  • cat etc/group

2.1 组管理

类似于角色,系统对有共性/权限的多个用户进行统一的管理

  • 新增/删除组

    • groupadd 组名 :新增
    • groupdel 组名:删除
  • 增加用户上组

    • useradd -g 用户组 用户名
    • usermod -g 用户组 用户名

相关文件

  • /etc/passwd 文件

    用户的配置文件,记录用户的各种信息:

    用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录shell
    
  • /etc/shadow文件

    口令的配置文件

    登录名:加密口令:最后一次修改时间:最小时间间隔:最大的同间隔:警告时间:不活动时间:失效时间:标志
    
  • /etc/group文件

    组配置文件,记录组信息

    组名:口令:组标识号:组内用户列表
    

linux每个用户必须属于一个组。每个文件都有所有者所在组其他组的概念

2.2 文件所有者

查看

ls -ahl

修改

chown [角色] [文件]

2.3 文件所在组

查看

ls -ahl

修改

chgrp [组名] [文件名]

2.4 文件其他组

除文件所有者和所在组的用户外,系统的其他用户都是文件的其他组

3.权限

3.1 格式说明

-rw-r--r-- 1 root root 0 May 9 20:58 hello.txt

权限 文件数 所有者 所在组 大小 修改日期 文件名

0-9位说明:

  • 0位表示文件类型:d - l c b

    • d :目录
    • l :链接
    • c :字符设备文件、鼠标、键盘
    • b :块设备(硬盘)
    • —:普通文件
  • 1-3位表示文件所有者对文件的权限(User)

  • 4-6位表示所属组对文件的权限(Group)

  • 6-9位表示其他用户对文件的权限(Other)

3.2 RWX权限

作用到文件:

[ r ] 表示可读(read):可以读取查看

[ w ] 表示可写(write):可以修改,但不代表可以删除,只有对文件所在目录有写权限才能删除该文件

[ x ] 表示可执行(execute):可以被执行

作用到目录:

[ r ] 表示可读(read):可以读取查看

[ w ] 表示可写(write):可以修改,对目录内创建+删除+重命名目录

[ x ] 表示可执行(execute):可以进入该目录

3.3 权限修改

chmod 指令

可以修改文件或目录权限

变更权限

使用 + - = 变更权限 。u所有者,g所有组,o其他组,a所有人

chmod u=rwx,g=rx,o=x 文件/目录名 定义权限

chmod o+w 文件/目录名 给o添加w权限

chmod a-x 文件/目录名 给所有人取消x权限

也可以采用数字变更权限

rwx = 111

chmod 751 文件目录名 对文件赋值权限

修改文件所有者

chown [角色] [文件]

chown [角色:组] [文件]

chown -R [角色:组] [文件] 递归生效

五.实用指令

1.运行级别

0:关机

1:单用户【找回丢失密码】

2:多用户状态没有网络服务

3:多用户状态有网络服务

4:系统未用保留给用户

5:图形界面

6∶系统重启

通过 init [0123456] 切换不同的运行级别

  • 查看当前运行级别

    systemctl get-default

  • 设置默认运行级别

systemctl set-default TARGRT.target

multi-user.target : 3

graphical.target : 5

找回root密码:(centos7)

1.开机按e

2.找到linux16行,后面跟上 init=/bin/sh 输入ctrl+X 进入单用户模式

3.输入mount -o remount,rw / 回车

4.输入passwd 回车

5.输入两次密码

6.输入 touch /.autorelabel 回车

7.输入 exec /sbin/init 回车,等待,系统重启修改生效

2.帮助指令

  • man获取帮助信息

    man [命令或配置文件]

  • help指令

    help 命令 获取shell内置命令帮助信息

3.文件目录类

  • pwd指令

    pwd 显示当前工作目录的绝对路径

  • ls 指令

    ls [选项] [目录或是文件]

    -a:显示当前目录所有的文件和目录,包括隐藏的

    -l:以列表的方式显示信息

    -h : 人性化查看

  • cd 指令

cd [参数] 切换到指定目录

cd ~ 或 cd :切换到家目录

cd .. 回到上一级目录

  • mkdir 指令

    mkdir [选项] 要创建的目录 用于创建目录

    -p : 创建多级目录

    mkdir dog

    mkdir -p animal/tiger

  • rmdir指令

    rmdir [选项] 要删除的空目录 用于删除目录

    默认目录下有内容是无法删除的

    当删除非空目录采用 rm -rf 删除目录

  • touch指令

touch [文件名称] 创建空文件

  • cp 指令

    cp [选项] source dest 用于拷贝文件到指定目录

    -r : 递归复制整个文件夹

    cp hello.txt bbb/

    强制覆盖不提示的方法: \cp

  • rm 指令

    rm [选项] 要删除的文件或目录 移除文件或目录

    -r :递归删除

    -f :强制删除不提示

  • mv 指令

    mv oldNameFile newNameFile 文件重命名

    mv /dir/file /targetDir 移动文件

  • cat 指令

    cat [选项] 文件 查看文件内容

    -n :显示行号

    cat [选项] 文件 | more

  • more 指令

    more指令是一个基于VI编辑器的文本过滤器,它以全屏幕的方式按页显示文本文件的内容。more指令中内置了若干快捷键,详见操作说明

    more 文件 查看文件

image-20220509210647133.png

  • less 指令

    功能类似more,更强大,显示大文件效率更高(动态加载)

    less 文件 查看文件

image-20220509211017882.png

  • echo 指令

    echo [选项] [输出内容] 输出内容到控制台

    echo $PATH

  • head 指令

    head 文件 查看文件头10行内容

    head -n 5文件 查看文件头5行内容

  • tail 指令

    tail 文件 查看文件尾10行内容

    tail -n 5文件 查看文件尾5行内容

    tail -f 文件 实时跟踪文档的所有更新

  • > 和 >> 指令

    输出重定向 和 追加

    ls -l > 文件 列表的内容写入到文件中(覆盖写)

    ls -al >> 文件 列表的内容写入到文件中(追加写)

    cat 文件1 > 文件2 文件1内容覆盖到文件2

    echo ‘内容’ >> 文件 追加内容

  • ln 指令

    ln -s [原文件或目录] [软连接名] 给源文件创建一个软链接

  • history 指令

    history 查看执行过的历史命令

    history 10 查看最近执行过的10条历史命令

    !5 执行曾经执行过的第5条指令

4.时间日期类

  • date 指令

    • 显示

      date 显示当前时间

      date + %Y 显示当前年份

      date + %m 显示当前月份

      date + %d 显示当前天数

      date "+%Y-%m-%d %H:%M:%S" 显示年月日时分秒

    • 设置

      date -s 字符串时间 设置系统当前时间

  • cal 指令

    cal [选项] 显示日历信息

    2020 :显示2020年的所有日历

5.搜索查找类

  • find 指令

    find [搜索范围][选项] 从指定目录向下递归遍历其各个子目录,将满足条件的文件或目录显示在终端

image-20220510101533990.png

> find /home -name *.txt
>
> find / -size 200M (+n大于 -n小于 n等于,单位k,M,G)
  • locate 指令

    locate 搜索文件 快速定位文件路径

    locate可以快速定位文件路径,无需遍历整个文件系统,但需要提前创建数据库

    第一次执行updatedb创建locate数据库

  • which 指令

    which 指令查看某个指令在某个路径下

  • grep 指令 和 管道符号 |

    grep [选项] 查找内容 源文件 将前一个命令的结果输出传递给后面的命令处理,常常和管道符号一起用

    -n : 显示匹配行及行号

    -i :忽略大小写

6.压缩解压类

  • gzip/gunzip 指令

    gzip 文件 压缩文件,只能将文件压缩为.gz文件

    gunzip 文件.gz 解压文件

  • zip/unzip 指令

    zip [选项] 文件(夹) 压缩文件和目录

    -r : 递归压缩

    unzip [选项] 文件.gz 解压文件

    -d<目录> 解压到指定目录存放

  • tar 指令

    tar [选项] xxx.tar.gz 打包的内容 打包目录

image-20220510104833333.png

> tar -zcvf target.tar.gz /a.txt /b.tx

六.任务调度 crond

1.crond 任务调度

系统在某个时间执行特定的命令或程序(反复执行)

crontab [选项]

-e : 编辑crontab定时任务

-I : 查询crontab任务

-r : 删除当前用户所有的crontab任务

service crond restart [重启任务调度]

*/1 **** [命令]

image-20220510153326269.png

image-20220510154743903.png

2.at 定时任务

只执行一次的定时任务

at的守护进程atd是以后台模式运行,不断检查作业队列。默认状态下每60秒检查一次,当有作业时检查作业运行时间,如果时间匹配则执行此作业,执行结束后将不再执行该作业。

注:保证atd进程运行 ps -ef | grep atd

at 指令

at [选项] [时间] 增加at作业

ctrl + D 两次结束at命令的输入

atq 查询作业

atrm n 删除编号为n的作业

image-20220510160005567.png

image-20220510160155432.png

at 5pm + 2 days

七.空间管理

1.目录结构

目录结构.png

2.磁盘分区,挂载

1.硬盘:linux硬盘分为IDE硬盘和SCSI硬盘

lsblk [-f] 查看设备挂载情况

hd x :ide硬盘

sd x:scsi硬盘

vd x:云上普大赛固态硬盘

2.硬盘分区:

1.数据安全:
主要方面:只用一个分区,若遇到系统需要重装或者分区需要进行格式化等,原有的重要文件无法在本硬盘保留,而若提前进行了合理分区,则用户数据不会收到影响
次要方面,我们知道,同等外部条件下,读取越频繁,磁盘越容易受损,我们把读写频繁的目录挂载到一个单独的分区,可以把磁盘的损伤控制在一个集中的区域。
​
2.效率(针对目前常用的机械硬盘,固态硬盘方面还不太了解):
主要方面:分区将数据集中在某个磁柱的区段,当有数据要读取自该分区时, 硬盘只会搜寻相应区段,有助于数据读取的速度与效能的提升!

fdisk /dev/sda 分区命令

m 显示命令列表

p显示磁盘分区

n新增分区

d删除分区

q退出不生效

w写入并退出

3.格式化磁盘:

mkfs -t ext4 /dev/sdb1 格式化分区为ext4类型

4.挂载(mount) :将硬盘以文件形式映射到文件系统中

mount /dev/sdb1 dir 挂载(用命令行挂载 重启会失效

卸载重新挂载:修改

umount /dev/sdb1 或 dir 卸载

/etc/fstab 挂载点配置文件

永久挂载

修改/etc/fstab 文件 mount -a 生效

5.磁盘情况查询

df -h 查询整体磁盘使用情况

使用率到80%以上需要注意

du -h /目录 查询指定目录磁盘占有情况

-s 指定目录占用大小汇总

-a 含文件

-h 带单位

--max-depth=1 子目录深度

-c 列出明细,增加汇总值

统计文件数目

ls -l /dir | grep "^-" | wc -l 统计dir文件夹下的文件个数

ls -l /dir | grep "^d" | wc -l 统计dir文件夹下的目录个数

ls -lR /dir | grep "^-" | wc -l 递归统计dir文件夹下的文件个数

ls -lR /dir | grep "^d" | wc -l 递归统计dir文件夹下的目录个数

tree /dir 树状显示目录个数

八.网络配置

ifconfig 查看网络配置

ping 目的主机 测试网络连接是否通畅

cat /etc/sysconfig/network-scripts/ifcfg-eth0 查看网络配置

service network restart 重启网络服务

附录A 虚拟机三种网络连接模式

设置主机名

hostname 查看主机名

/etc/hostname 配置主机名,重启成效

在windows下:C:\Windows\System32\drivers\etc\hosts 下指定 192.168.1.xxx 主机名

在linux下:/etc/hosts 下指定192.168.1.xxx 主机名

windows下dns相关

ipconfig /displaydns dns域名解析缓存

ipconfig /flushdns 手动清理dns缓存

九.进程管理

1.进程管理指令

进程分为前台后台,每个进程拥有一个PID

ps 指令

ps -a 显示当前终端所有进程信息

ps -u 以用户的格式显示进程信息

ps -x 显示后台进程运行的参数

ps -e 显示所有进程

ps -f 显示全格式

kill 指令

kill [选项] 进程号 杀死进程

-9 :强迫进程立即停止

killall 进程名称 通过进程名终止进程,子进程也会杀死

pstree 指令

pstree [选项] 查看进程树

-p 显示进程pid

-u 显示所属用户

2.动态监控进程

top指令

top类似于ps,用来显示正在执行的进程,但可以执行一段时间可以更新正在运行的进程(任务管理器)

top [选项]

-d 秒数 : 指定每隔几秒刷新。默认是3

-i :不显示闲置或者僵死进程

-p : 通过指定监控进程Id来监控某个进程

交互操作:

P :以CPU使用率排序

M:以内存使用率排序

N:以PID排序

u 用户:监控特定用户

k pid:杀死进程

q:退出

3.监控网络状态

netstat 指令

netstat [选项] 查看系统网络情况

-an 按一定顺序排列输出

-p 显示哪个进程在调用

ping指令

ping address

十.服务管理

服务本质就是进程,是运行在后台的,通常监听某个端口,等待其他程序的请求,又称为守护进程

1.service 相关指令

service 服务名 [start| stop |restart |reload | status]

systemctl centos7.0后很多服务采用该指令管理

/etc/init.d service管理的服务文件

2.服务运行级别

0:关机

1:单用户【找回丢失密码】

2:多用户状态没有网络服务

3:多用户状态有网络服务

4:系统未用保留给用户

5:图形界面

6∶系统重启

开机流程:

image-20220512153402745.png

系统运行级别

通过 init [0123456] 切换不同的运行级别

  • 查看当前运行级别

    systemctl get-default

  • 设置默认运行级别

systemctl set-default TARGRT.target

multi-user.

target : 3

graphical.target : 5

chkconfig指令

给服务各个运行级别设置自 启动/关闭

chkconfig --list [|grep xxx] 查看服务

chkconfig 服务名 --list

chkconfig --level 5 服务名 on/off

服务设置reboot后生效

3.systemctl指令

systemctl指令

systemctl [start| stop |restart |reload | status] 服务名

/usr/lib/systemd/system文件查看相关配置

systemctl list-unit-files [| grep xxxx] 查看服务开机启动状态

systemctl enable 服务名 设置开启自启

systemctl disable 服务名 关闭开机自启

systemctl is-enabled 服务名 查询是否自启

4.端口管理

firewall指令

firewall-cmd --permanent --add-port=端口号/协议 打开端口

firewall-cmd --permanent --remove-port=端口号/协议 关闭端口

firewall-cmd --reload 重新载入配置生效

firewall-cmd --query-port=端口号/协议 查看端口是否开放

可以使用netstat -anp查看网络连接和端口协议

十一.安装包管理

1.rpm

rpm用于互联网下载包的打包及安装工具,它包含在某些Linux分发版中。它生成具有.RPM扩展名的文件。RPM是RedHat Package Manager (RedHat软件包管理工具)的缩写,类似windows的setup.exe,这一文件格式名称虽然打上了RedHat的标志,但理念是通用的。

本地包安装

1.查看

rpm -qa | grep xx 查看已安装rpm列表

python-gobject-base-3.22.0-1.el7_4.1.x86_64

名称 python-gobject-base

版本号 3.22.0-1

适用操作系统 el7_4.1.x86_64 (i686/i386表示32位系统,noarch表示通用)

rpm -q 软件包名 查询软件包是否已安装

rpm -qi 软件包名 查询软件包信息

rpm -ql 软件包名 查询软件包中的文件

rpm -qf 文件全路径名 查询文件所属软件包

2.包管理

删除

rpm -e [--nodeps] 包名 卸载rpm包 [强制删除,但可能存在依赖,不建议]

安装

rpm -ivh 包全路径名称

i:install安装

v:verbose提示

h:hash进度条

2.yum

Yum是一个Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包。

应用商店

yum list | grep xx软件列表 查询yum服务器是否有需要安装的软件

yum install xxx 下载安装

附录A 虚拟机三种网络连接模式

#

1.桥接模式

虚拟系统可以和外部系统通讯,但容易造成ip冲突

即:虚拟机系统的ip需要分配与主机同网段的ip,但如果在外部同一网段存在与虚拟机分配ip相同的ip地址,就会产生冲突。相当于一台独立主机,外部网络也可以ping通虚拟机。

2.NAT模式

网络地址转换模式,虚拟系统可以和外部系统通讯,不造成ip冲突

即:在虚拟机系统分配一个与主机ip不同网段的ip地址,主机存在一个该网段地址与虚拟机系统形成连接,当虚拟机系统进行外部通信时,采用将本机实际ip作为代理的方式访问外部网络。外部网络无法访问该虚拟机。

3.仅主机模式

独立的系统,不与外界产生联系

image-20220508224459982.png

附录B 虚拟机相关操作

1.虚拟机克隆

  • 直接拷贝虚拟机文件
  • 使用vm克隆操作

2.虚拟机快照

在使用虚拟机系统的时候(比如linux),你想回到原先的某一个状态,也就是说你担心可能有些误操作造成系统异常,需要回到原先某个正常运行的状态,vmware也提供了这样的功能,就叫快照管理。

3.虚拟机迁移删除

拷贝或删除文件夹即可

4.VMTools

在windows下更好的管理vm虚拟机

  • 可以设置系统间的共享文件夹

image-20220508225524863.png