导图社区 Linux命令大全
针对Linux命令进行全方面梳理总结,是入门与日常使用的好参考材料,适合于计算机管理、维护、操作等相关人士参考使用。
编辑于2021-06-20 15:47:01Linux
基础
虚拟机安装
网络适配器连接模式
桥连接模式
虚拟机的操作系统所分配的IP地址和母机的IP地址位于同一个网段
优点:Linux可以直接和其他操作系统通信
缺点:同一网段用户太多有可能会造成ip冲突
同一个网段例如192.168.0.*最多只能容纳253个IP地址
192.168.0.1
一般作为网关地址
192.168.0.255
这是广播地址
NAT:网络地址装换方式
当使用这种方式连接时,Windows操作系统上会出现两个ip1、本来所在网络环境下的一个ip2、和当前母机所在的网段不同网段下的一个ip和虚拟机中的ip构成一个独立的网络环境
优点:Linux可以访问到外网,也不会造成IP冲突
主机模式
虚拟机中的IP是一个独立的ip,不可以访问外网
手动分区
/boot
Linux在启动的时候所需要的配置文件默认存放在这个分区中
200M足矣
swap
交换分区:当系统的内存不够使用的时候,可以暂时的使用swap分区
物理内存的1-2倍
/
根分区
剩余全部
设置好的共享文件夹
/mnt/hgfs下
目录结构
/根目录
/boot
/root
....
...
windows
C:
D:
F:
Linux默认目录作用
bin
常用指令存放目录
binary
boot
启动Linux的核心文件,包括连接文件及镜像文件
dev
硬件设备映射成的文件
etc
所有的系统管理所需要的配置文件和子目录
例如:mysql安装之后的配置文件:my.conf 环境变量文件
home
家目录,创建用户时候就会出现对应的文件
普通用户的家目录
lib
库文件(动态连接共享库)系统开机所需要的最基本的动态库文件
media
自动识别的一些设备挂载的目录,文件(U盘,dvd...)
mnt
挂载目录,让用户临时挂载别的文件系统,例如外部存储
opt
给主机额外安装的软件存放的位置,默认为空
root
root用户的文件
sbin
存放系统管理员使用的系统管理程序
selinux
security-enhanced linux 是一个安全子系统,能控制程序只能访问特定文件
被入侵会被触发
proc
系统内存的映射,可获取系统信息
sys
系统
srv
service的缩写,存放一些服务启动之后要提取的数据
tmp
临时
usr
用户的很多应用程序和文件都存在这个目录下,类似program file目录
/usr/local
给主机额外安装软件,所安装的目录,一般通过编译源码方式安装的程序
var
存放不断扩充的东西,习惯将经常修改的目录放在这个目录下,以及日志文件之类...
lost+found
一般是空的,非法关机之后这里会存放一些文件
远程登录
前提
远程的Linux系统上开启了sshd服务,这个服务监听22号端口,专门提供远程登录服务
查看服务是否启动
命令:setup
查看系统服务中的sshd是否标【*】
查看ip
命令:ifconfig
vi/vim编辑器
所有的Linux系统都会内置vi文本编辑器,vim是vi的增强版
模式
正常模式
可以使用快捷键
yy 拷贝当前行
3yy 拷贝3行(当前行以及下2行)
p 将拷贝的内容粘贴
dd 删除当前行
5dd 删除5行(当前行以及下4行)
/关键词 查找关键词
在/的后面输入关键字后回车,按n键查找下一个
G 定位到文件末行
gg 定位到文件的首行
数字 shift+g 定位到指定的行
u 撤销操作
插入模式
可以输入内容
进入
i
I
O
a
A
命令行模式
提供相关的指令,完成读取,存盘...等功能
wq 保存退出
q! 强制退出 打开了并修改了不想保存
q 退出 只是打开了,没有修改
set nu 设置行号
set nonu 取消行号
开机/重启
shutdown
-h
now 立即关机
1 一分钟后关机
-r
now 立即重启
halt
直接使用,等价于关机
reboot
重启系统
sync
把内存的数据同步在磁盘上
执行之后看不到效果,但是要养成关机前执行的习惯防止数据丢失
登录和注销
注销
logout
图形界面无效,运行级别3下有效
用户管理
基本介绍
Linux系统是一个多个用户多任务的操作系统,任何一个要使用系统资源的用户,都必须要向系统管理员申请一个账号,然后以这个账号进入系统
添加用户
命令:useradd [选项] 用户名
创建了一个用户,并且在home目录下新建了以用户名命名的文件夹,作为此用户的目录
默认创建了一个用户组,用户组的名字和用户名一样,并且这个用户属于这个默认创建的用户组
选项
-d
useradd -d /home/tiger qiulin 这个目录要事先没用,是通过这个命令添加用户的时候新创建的
指定目录作为给新创建的用户的家目录
-g
useradd -g 组名 用户名
指定新建的用户属于哪个组
指定/修改密码
命令:passwd 用户名
删除用户
命令:userdel 用户名
保留家目录的删除
实际开发中,一般不会删除用户的家目录
命令:userdel -r 用户名
不保留家目录的删除
查询用户信息
命令:id 用户名
存在==>返回用户的信息
uid 用户的idgid 用户所在组id组 用户所在的组
不存在==>“无此用户”
切换用户
命令:su - 用户名
使用exit回到本来的用户
查看当前用户
whoami
用户组
介绍
类似于角色,系统可以对有共性的多个用户进行统一的管理
创建组
groupadd 组名
删除组
groupdel 组名
修改组
usermod -g 新用户组 用户名
用户和组的相关文件
/etc/passwd
用户信息配置文件
记录用户的各种信息
含义:用户名:密码(x):用户id:组id:[描述]:家目录:登录Shell
/etc/group
组配置文件
记录Linux包含的组信息
含义 组名:口令:组标识号:组内用户列表(处理了看不到)
/etc/shadow
口令配置文件(加密)
含义: 登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志
实用指令
运行级别
指令运行级别
0、关机
1、单用户
可以找回密码
找回root密码思路:进入单用户模式,然后修改root密码,因为进入单用户模式,root不需要密码就可以登录 步骤:开机的时候在引导的时候输入回车 出现的界面中输入e 选择第二行(编辑内核)->输入e 在出现的最后输入1,回车 再输入b(boot)进入单用户模式 使用passwd修改root的密码 reboot 重启 ==root密码修改完
2、多用户无网络服务
3、多用户有网络服务(用的多)
4、保留 (暂时未定义)
5、图形界面
6、系统重启
系统的运行级别配置信息文件
/etc/inittab
id:5:initdefault:
切换运行级别指令
init [012356]
开机
BIOS
/boot
init进程
运行级别对应的服务
帮助指令
当我们对某个指令不熟悉的时候,可以使用帮助指令来获取使用方法
man [命令 | 配置文件]
man ls
help 命令
help cd
文件目录类
pwd
显示当前目录的绝对路径
ls
显示查看目录的详细信息
参数
-a 显示信息文件
-l 列表的方式显示详细信息
cd
切换工作目录
参数
~ 当前用户家目录
.. 回到上级目录
mkdir 目录名
创建目录(make directory)
参数
-p 创建多级目录
rmdir 目录名
删除空目录
非空目录使用 :rm -rf
touch 文件名
创建个空文件
cp [参数] 文件 新文件
当目标目录下有相同文件的时候回提示是否覆盖原来的文件 强制覆盖命令:\cp 文件 新文件
拷贝指令
参数
-r 递归复制文件夹
rm [参数] 文件 | 目录
删除文件指令
参数
-r 递归删除文件
-f 删除不提示
mv 文件名
移动或者重命名
mv oldName newName (重命名)
在同一个文件夹下面
mv 要移动的文件 移动到的位置
cat [参数] 文件名
查看文件内容
直接在终端上显示完全部的内容
一般使用管道符配合more使用查看大文件进行分页显示使用空格下一页
参数
-n 显示行号
more
基于vi编辑器的文本过滤器,以全屏的方式分页显示文本文件
快捷键
空格 下一页
enter 下一行
q 退出显示
Ctrl+F 向下滚动一屏
Ctrl+B 返回上一屏
= 输出当前行号
:f 输出当前文件名和当前行号
less
分屏查看文件内容,功能和more类似,但比more强大,支持各种显示终端,显示内容时不是一次性加载完全部内容,而是依据显示需求加载,对于大文件有较高的效率
快捷键
空格 下一页
pagedown | pageup 上下翻页
/子串 向下匹配 n:下一个,N:上一个
?子串 向上匹配 n:上一个,N:下一个
q 退出显示
> 、>>
> 输出重定向
重定向原有的内容会被覆盖
>> 追加
history
查看执行过的历史指令
默认显示全部执行过的指令,后面加数字,显示最后指定数量的指令
后面加 !行号 执行指定行的指令
echo [选项] [输出内容]
输出环境变量
echo $PATH
head [参数] 文件
用于显示文件的开头内容
参数
-n 数字 要显示的前多少行,默认前10行
tail [参数] 文件
用于显示文件的开头内容
参数
-n 数字 要显示的前多少行,默认最后10行
-f 实时追踪文档的所有更新
如果有变化,会看到变化
ln -s [原文件或目录] [软链接名]
给原文件创建一个软链接
实用rm -rf 软连接名
时间日期类
date
显示当前日期
语法
date +%Y
显示年份
date +%m
显示月份
date +%d
显示天
date "+%Y-%m-%d%H:%M:%S"
参数
-s 设置系统时间
cal
查看日历指令
查找指令
find [范围] [参数]
从指定目录下递归遍历各个子目录,将满足条件的文件显示在终端
参数
-name 要查找的文件名
find /home -name hello.txt 可以使用*来作为通配符来查找
-user 用户
查找指定用户的文件
-size 大小(20M)
+n 大于 +20M==>大于20M的文件-n 小于n 等于 k M小写k 大写M
locate 要查找的文件
可以快速的定位文件路径,原理:使用事先建立好的locate数据库实现快速定位,无需遍历文件系统
使用之前要使用updatedb建立locate数据库
grep [参数] 查找内容 源文件
过滤查找
经常和管道指令连起来使用
| :管道符 表示将前一个命令的处理结果交给后面的指令处理
参数
-n 显示匹配的行和行号
-i 忽略字母大小写
解压缩
gzip/gunzip
gzip 文件名
压缩文件为*.gz 原文件被删除
gunzip 文件.gz
解压*.gz文件 压缩文件被删除
zip/unzip
zip [参数] XXX.zip 要压缩的内容
压缩
参数
-r 递归压缩目录
unzip [参数] XXX.zip
解压缩
参数
-d 指定解压后文件的存放目录
指定的目录不存在将会创建
tar [参数] xxx.tar.gz 打包的内容
压缩后的文件格式:*tar.gz
参数
-c 参数.tar打包文件
-v 显示详细信息
-f 指定压缩后的我文件名
-z 打包同时压缩
-x 解包.tar文件
解压到指定目录:-C 指定目录
指定的目录必须先存在
进阶
组管理
组介绍
Linux中每个用户必须属于一个组,不能独立于组外,每个文件有所有者,所在组,其他组概念
文件中组的信息
所有者 文件所属的用户
一般文件的创建者就是该文件的所有者
查看文件所有者
ls -ahl
改变文件所有者
chown 用户名 文件名
所在组不变 所在组合所有者所在组不同
所在组 默认情况是在所有者的组下,可以更改
改变文件所在组
chgrp 组名 文件名
改变用户所在组
usermod -g 组名 用户名
修改用户登录的初始目录
usermod -d 目录名 用户名
其他组 除去所在组的其他所有的组
权限管理
权限简介
文件类型
- 普通文件
d 目录
l 软链接
c 字符设备
b 块文件,硬盘
文件权限
第一个rwx 文件所有者的权限
第二个rwx 文件所在组用户的权限
第三个rwx 文件其他组的用户的权限
rwx
r 可以读取查看
w 写权限,若要删除文件的前提是对文件所在目录有写的权限
目录:可在目录内删除,创建,重命名
x 文件:可执行 目录:可进入
修改权限
chmod
修改文件或者目录权限
方式一
=、-、+变更权限
u 所有者
g 所有组
o 其他组
a 所有人(ugo总和)
chmod u=rwx,g=ro,o=x 文件或目录
chmod o+w 文件或目录
chmod a-x 文件或目录
方式二
通过数字的方式改变权限
r 4
w 2
x 1
chmod 755 文件或目录
修改文件所有者
chown
chown 新所有者 文件
chown 新所有者:新所在组 文件
同时改变文件所在组和所有者
-R 递归修改目录下所有文件所有者或所在组
修改文件所在组
chgrp 新所在组 文件
-R 递归修改目录下所有文件所在组
任务调度
crontab [参数]
进行定时任务的设置
如果只是简单的任务,可以不用写脚本,只在在crontab中添加任务即可,复杂的写shell脚本
参数
-e 编辑crontab 回车 编辑任务
-l
列出任务
-r
删除任务
时间参数
第一个* 一小时当中的第几分钟
0~59
第二个* 一天中的第几小时
0~23
第三个* 一个月中的第几天
1~31
第四个* 一年中的第几个月
1~12
第五个* 一周当中的星期几
0-7(0和7都代表星期日)
特殊符号
* 代表任何时间
, 代表不连续的时间
- 代表连续的时间范围
*/n 代表每隔多久执行一次
分区/挂载
分区信息
方式
mbr
最大只支持4个主分区
系统只能安装在主分区
扩展分区要占用一个主分区
最大只支持2TB,但有最好的兼容性
gtp
支持无限多个主分区,但是操作系统可能会限制,windows最多只有128个
最大支持18EB容量
1EB=1024PB
windows7 64位之后支持gtp
Linux上的硬盘
种类
IDE
老式的并口硬盘
用hdx~标识
hd 代表IDE类型的硬盘
x 代表盘号
a 基本盘
b 基本从属盘
c 辅助主盘
d 辅助从属盘
~ 代表分区
1~4 代表主分区或扩展分区
5以后 逻辑分区
SCSI
目前基本都是SCSI硬盘
用sdx~标识
sd 代表SCSI 类型的硬盘
查看当前设备的硬盘信息
lsblk -f
增加一个硬盘
1、增加硬盘之后分区
分区命令:fdisk /dev/sdb (对那个硬盘进行分区)
m 显示命令列表
p 显示磁盘分区 同fdisk -l
n 新增分区
选择扩展分区或主分区
d 删除分区
w 保存并退出
2、格式化磁盘分区
命令:mkfs -t ext4 /dev/sdb1
ext4是分区类型
3、挂载
命令:mount /dev/sdb1 要挂载到的目录
一个目录只能挂载一个分区,再挂载的时候,会先卸载第一个分区
卸载:umount 设备名或者挂载目录
卸载的时候,不能在挂载点
umount /dev/sdb1
umonut 目录
4、自动挂载
编辑 /etc/fstab
设备 挂载点 磁盘类型 defaults 0 0
/dev/sdb1 /home/newdisk ext4 defaults 0 0
磁盘情况查询
查询当前系统磁盘使用情况
df -lh
查询某个目录磁盘占用情况
du -h 目录
常用:du -ach --max-depth=? 目录名
参数
a 指定目录占用大小总汇
c 列出明细的同时,增加汇总值
h 带计量单位
-max-depth=1 子目录深度为1
统计某个目录中的文件个数
ls -l 目录 | grep "^-" | wc -l
递归统计目录下包含子目录的所有文件个数
ls -lR 目录 | grep "^-" | wc -l
“^-” 以-开头
查看目录树状图
tree 目录
网络配置
自动获取IP
优点:Linux启动之后会自动获取ip
缺点:每次获取的ip地址可能不一样
因此,这个方式不合适做服务器,因为服务器的IP需要是固定的
指定固定的IP
1、直接修改配置文件来指定IP,并且可以连接到外网
编辑:/etc/sysconfig/network-scripts/ifcfg=eth0
1、ONBOOT=yes
启用boot获取Ip
2、BOOTPROTO=static
设置以静态的方式获取ip
3、IPADDR=要指定的静态IP
4、GATEWAY=网关地址
5、DNS1=网关地址
dns和网关保存一致
重启网络服务生效
service network restart 或者 重启(reboot)
进程管理
查看进程 ps
参数 -aux
a 显示当前终端的所有进程信息
u 以用户的格式显示进程的信息
x 显示后台进程运行的参数
-ef
以全格式显示当前所有的进程 可以显示父进程的PID
pstree
以树状的形式展示进程
-p 显示pid
-u 显示进程所属用户
终止进程 kill
kill [参数] 进程号
通过进程号结束进程
killall 进程名
通过进程名结束进程,支持通配符
参数
-9 表示强迫进程立即停止
有一些服务是系统的,使用kill杀不了,要加-9这个参数去强制停止
服务管理
本质
服务的本质就是一个进程,但是运行在后台,通常会监听某个端口,等待其他程序的请求
管理指令
service 服务名 [start | stop | restart | reload | status]
可以使用Windows的telnet来测试Linux的某个端口是否被监听
在Centos7.0之后使用systemctl
服务状态立即生效,但重启之后回归以前对服务的设置
chkconfig
可以给每个服务的各个运行级别设置自启动/关闭
chkconfig --list | grep xxx
查看服务在各个运行级别的是否自启
chkconfig xxx --list
chkconfig --level 级别 服务名 on/off
设置服务在运行级别是否自启
查看服务
setup
带* 号的是自启的,可以使用空格取消自启
/etc/init.d
这里面存储的是系统有哪些服务
服务的运行级别
0-6 对应运行级别
监控服务
动态监控进程
top [参数]
top和ps很相似,都可以用来显示正在执行的进程,但是top可以在执行一段时间后更新正在运行的进程
参数
-d秒数 指定更新间隔
默认3秒
-i 不显示闲置或者僵尸进程
-p 直径监控进程ID来仅仅监控某个进程状态
交互
P 以CPU使用率排序(默认)
M 以内存使用率排序
N 以PID排序
k 杀死指定PID进程
q 退出top
查看系统网络情况
netstat [参数]
-an 按一定顺序排序输出
-p 显示那个进程在调用
软件包管理
rpm
ReadHat Package Manager
一种利用网络互联网下载包的打包及安装工具,生成具有.RPM文件
查询已经安装的rpm列表
rpm -qa | grep xxx
el6.centos.x85_64 适用于centos6.x的64位系统
i686、i386表示32位系统
noarch表示通用的
查询软件包是否安装
rpm -q 软件包名
查询软件包信息
rpm -qi 软件名
查询软件包安装的具体文件
rpm -ql 软件名
查询文件所属的软件包
rpm -qf 文件
卸载软件包
rpm -e 软件包
--nodeps 强制删除 可能会导致其他程序无法运行
rpm -ivh 软件包名
i install安装
v verbose提示
h hash进度条
yum
一个shell前端软件包管理器,基于rpm包管理
可以从指定服务器上自动下载rpm包并安装,可以自动处理依赖关系,并且一次性安装好所有依赖包
yum list | grep 软件包
查询yum服务器是否有需要安装的软件
yum install 软件包
安装指定软件
apt
包管理指令,在/etc/apt/sources.list中保存了所有包的地址
默认的源位于美国,可以改为清华的软件镜像仓库
地址:http://mirrors.tuna.tsinghua.edu.cn
命令
子主题 1
搭建环境
防火墙开启端口
vim /etc/sysconfig/iptables
重启防火墙
远程登录
ubuntu服务器上默认没有安装sshd服务
Windows远程登录Linux必须要sshd服务
Linux远程另外的Linux
双方都要安装open-
ssh 用户名@ip