
小余
V1
2023/02/09阅读:22主题:科技蓝
linux命令
linux
介绍:Linux是一套免费使用和自由传播的操作系统。说到操作系统,大家比较熟知的应该就是Windows和MacOS操作系统,我们今天所学习的Linux也是一款操作系统。
使用:使用linux可以选择虚拟机、wsl、云服务器
基础
Linux目录结构:

编号 | 目录 | 含义 |
---|---|---|
1 | /bin | 存放二进制可执行文件 |
2 | /boot | 存放系统引导时使用的各种文件 |
3 | /dev | 存放设备文件 |
4 | /etc | 存放系统配置文件 |
5 | /home | 存放系统用户的文件 |
6 | /lib | 存放程序运行所需的共享库和内核模块 |
7 | /opt | 额外安装的可选应用程序包所放置的位置 |
8 | /root | 超级用户目录 |
9 | /sbin | 存放二进制可执行文件,只有root用户才能访问 |
10 | /tmp | 存放临时文件 |
11 | /usr | 存放系统应用程序 |
12 | /var | 存放运行时需要改变数据的文件,例如日志文件 |
root用户
root有着最高的系统控制权限。
使用root权限执行命令
1.登录root用户
2.可以借助sudo命令临时获取权限
只有认证的用户才可以使用 sudo cat /etc/shadow
命令自动补全
按一下Tab键可以自动补全命令或者文件名。
如果有多个选项则会补全最多重复名称
按下2下Tab可以自动列出所有可选的名称
强制中断
ctrl+c
历史记录
方向键上下查看上/下命令
ctrl+p/n 查看历史记录中的上/下命令
ctrl+r 向上搜索历史记录
alt+p 向上搜索历史记录
alt+>移动到历史记录末尾
history命令查看
history 命令
-c 清空所有历史记录
数字 查看最近数字条记录
!! 重复执行上一条命令
!n 运行历史记录的第n条命令
fc 编辑并执行上一条指令
fc -n 编辑并执行倒数第n条指令
!-n 运行倒数第n条指令
!$ 运行前一条指令最后的参数
管道
把多个命令连接起来,把一个命令的输出作为下一个命令的输入
cat /etc/passwd | grep zp
在/etc/passwd中查询zp记录
重定向
输入重定向
将命令的结果不在输出到显示屏,而是输出到后面命令> 文件 覆盖
命令>>文件 添加到文件后面
输出重定向
不在将键盘作为输入来源,而是将文件作为。 命令 < 参数来源
命令 << 分割符
> 文本内容
> 分隔符
该重定向会允许你一直输入知道输入分隔符停止
错误重定向
语法和输入重定向比较像,这个命令会将左边错误信息添加到右边 和输入重定向不一样的是>前面有数字2 命令 2> 文件
命令 2>> 文件
命令排序
;
命令1;命令2
先执行1无论对错在执行2
&&
命令1对在执行2
||
命令1不成功才执行2
命令续行
\来实现 \也可以作为转义符
命令替换
将命令的结果作为命令的参数
$()和``实现
kill -9 $(pidof vi) 查找vi在杀死
命令别名
查看已经定义的别名
alias
创建别名
alias [别名]=[需要定义别名的命令]
取消别名
unalias [别名]
基础命令:
格式:commond [-options] [parameter]
commond是命令
options是选项
parameter是参数
切换用户
su [-] 用户
- 是否加入环境参数
回退用户
回退到上一个用户
exit命令
ctrl+d
临时获取root权限
sudo 命令
获取sudo认证
visudo
在文件末尾添加
用户名 ALL=(ALL)
wq保存
获取帮助命令
man
获取手册(usr/share/man)目录下的资源
能够查看命令语法、各选项的意义以及相关命令
man 命令名
info
提供另一种格式的文档,相比man更有交互性
info 命令名
--help
不同的是会直接显示出来,而不是出现新的界面
命令名 --help
切换目录
cd(change directory)
~ 用户的home目录
. 所在目录
./ 上一层
查看目录文件
ls(list) 查看当前目录的内容
-l 查看当前目录的详细内容
可以缩写成ll
-a 显示所有的文件和目录(隐藏的也会显示)
.开头的都是隐藏
搜索内容
grep 从指定文件中查找内容
grep work filename区分大小写
清理屏幕
clear 清屏/ctrl+l
查看命令的所在文件
which 命令
权限控制信息
rwx 顺序代表读,修改(创建/删除/改名等),执行
-
代表没有权限
修改权限控制chmod
chmod [-R] 权限 文件/文件夹
-R 对文件夹内所有文件进行操作
文件和目录管理
文件类型
文件属性
drwxr-xr-x
1代表文件类型
- 常规文件
d 目录
b 块设备,如硬盘
c 字符设备 如键盘
l 符号链接,软链接
p 命令管道文件
s 套接字socket 通讯文件
2-4代表用户权限
5-7代表用户组权限
7-10代表其他用户权限
权限的内容见权限管理
文件命令
echo
用于字符串的输出
echo string
-e 开启转义
stat
用于显示文件或文件系统的详细信息。在显示文件信息时,比ls命令更加详细。
stat 文件
touch
若文件不存在,则创建,也可以用于修改文件的访问时间和修改时间
touch [选项] [文件]
-a 只修改访问时间
-m 只更改修改时间
-c 如果目标档案不存在,则不会创建新的档案
-t 使用指定时间,而不是当前时间
-r 把指定的文件或目录时间设置为和参考文件或目录时间相同
--no-create 不会建立新档案。
rm
删除文件
rm [选项][文件]
-i 删除前逐一询问确认。
-f 即使原档案属性设为唯读,亦直接删除,无需逐一确认。
-r 将目录及以下之档案亦逐一删除。
[rm -rf 直接强制删除 慎用]
ln
链接文件
ln [选项] [源文件或目录][目标文件或目录]
-s 建立软链接(类似快捷方式)
空格 建立硬链接
-f 强制执行-n 把符号链接视为一般目录
-v 显示详细的处理过程
--backup[=CONTROL] 备份已存在的目标文件
-b 类似 --backup ,但不接受参数
-d 允许超级用户制作目录的硬链接
-i 交互模式,文件存在则提示用户是否覆盖
cp
复制文件/目录复制的目录参数加/文件名 可以实现改名
cp [选项] 源文件 目的文件
-r 复制目录则要r
mv
移动文件/重命名
mv 可以对文件进行改名、或者移动 相当于另存为后删除原来的文件
mv source dest 改名还是移动取决于dest存不存在
mv a.txt b.txt 将a.txt 改名为b.txt
mv a.txt dir(/b.txt) 将 a.txt 移动到dir里面(并且改名为b.txt)
cat
显示文件内容
cat 文件
-n 由1开始显示编号
more
以分页来查询文件内容
q/ctrl+c 退出
b 向上滚动一屏
空格 向下滚动一屏
回车 x向下滚动一行
tail
查看文件的末尾
-f 动态读取文件末尾并显示,常用于日志输出
不加数字则是末尾10行,-20则是20行
find
找文件
finad 【】 文件名
-name name, -iname name : 文件名称符合 name 的文件。iname 会忽略大小写
-size n : 文件大小 是 n 单位,b 代表 512 位元组的区块,c 表示字元数,k 表示 kilo bytes,w 是二个位元组。
-type c : 文件类型是 c 的文件。
文本编辑
vi
vim(可以说是vi的升级,可以着色)
查找、实现行号、退出
命令模式:,/进入
:就可以由以下 wq 退出 q!不保存退出 set nu 显示行号
/ 就可以对文件进行查找
底行模式
在命令模式i/a/o进入插入模式
ESC会回到命令模式
插入模式
移动 上下左右
gg快速到开头
G快速移动到末尾
命令模式
vim安装
yum install vim
目录命令
pwd(print work directory)
查看当前在哪个目录
mkdir(make direcory)
创建目录
-p 可以对多层目录同时存在的时候进行创建
rmdir
删除空目录
-p 当子目录删除后,如果父目录为空则也删除
打包压缩
文件类型.tar只压缩 .tar.gz打包并压缩
tar [-zcxvf] fileName [files]
fileName 指定名称 如x.tar.gz
files指定打包文件
-z 压缩或者解压
-c 创建新的包
-x 从包中还原/解压
-v 显示执行过程
-f 用于指定包名称
-C 解压到指定地点
用户管理
用户配置文件
/etc/passwd
所有用户信息都存储在其中
每一行保存一个用户用:分割
username:password:uid:gid:userinfo:home:shell
username 用户名
password 加密密码,显示为x,其被映射到shadow文件中
uid 用户ID,root用户id为0,系统用户1-999,普通用户从1000开始
gid 用户组ID
userinfo 注释信息
shell 用户默认登陆的shell
/etc/shadow
是/etc/password的影子文件,主要保存账户密码配置情况
username:password:lastchg:min:max:warn:incative:expire:flag
password 如果是!/*则表示还没有设置密码或者不会用这个账号登录
lastchg 最后一次修改密码的日期,1970/1/1到上一次修改所花的时间
min 密码允许更换前的天数
max 密码需要更换前的天数
warn 密码更换警告的天数
incative 账号被取消激活前的天数,表示还有多少天该用户就会被禁止登录;或者说用户密码过期多少天后被禁用
expire 用户被禁止登录的时间
flag 保留字段
添加用户
通用useradd
useradd[选项][用户名]
-c 加上注释
-d 指定用户主目录
-g 指定用户所属用户组
-G 指定用户所属附加组
-s 指定用户的登录shell
-u 指定用户的用户号
-e 指定账户的有效期限
-f 密码过期多少天后官迷用户
-r 建立系统用户
Ubuntu 专用 adduser
修改用户
修改密码 passwd
passwd [选项][用户名]
使用后根据提示修改密码
-d,--delete 删除指定用户密码
-e,--expire 强制使账户密码过期
-l,--lock 锁定
-k,--keep-tokens 仅在密码过期后修改
-i,--inactive INACTIVE 密码过期后设置密码活动为INACTIVE
-u,--unlock 接触锁定
-n,--mindays 设置下次修改密码所需要等待时间
-q,--quiet 设置安静模式
修改账户信息 usermod
usermod [选项][用户名]
-c 注释
-d 登入时间
-e 有效时间
-f 缓冲天数
-l 账户名称
-L 锁定用户密码
-u 修改用户ID
-U 解除密码锁定
修改密码过期信息 chage
chage [选项][用户名]
-d 最后修改时间
-E 过期日期,0马上过期,-1永不过期
-h 显示帮助信息并且退出
-I 密码过期后,锁定账户天数
-l 列出用户以及密码有效期
-m 2次密码修改的最小天数
-M 密码保存有效的最大天数
-W密码过期前,提前收到警告天数
删除账户
userdel
userdel [选项][用户名]
-r 删除用户目录和目录所有文件
-f 强制
ubuntu deluser
用户组管理
配置文件
/etc/group 文件
显示组账户的配置文件
group_name:password:id:members
组名称
密码如果为x则映射到gshadow
用户组id
用逗号分隔的成员
/etc/gshadow
name:password:id:members
创建组
groupadd
groupadd [选][名]
-f 如果组存在则此选项失败,如果gid被使用则-g失效
-g 设置gid
-K 不适用/etc/login.defs中默认值
-o 可以重复gid组
-r 系统组
addgroup
修改组
groupmod [选项][组]
-g <群组识别码> 设置欲使用的群组识别码。
-o 重复使用群组识别码。
-n <新群组名称> 设置欲使用的群组名称。
删除组
groupdel[选][组]
管理组
gpasswd[选][组]
-a 添加用户到组
-d 删除组的一个用户
-A 指定管理员
-M 指定组成员
-r 删除密码
-R限制用户登录组
磁盘管理
查看磁盘设备文件列表
linux操作系统的设备文件位于/dev中 查看磁盘设备一般寻找sd开头的那么就是
ls /dev/sd*
列出文件系统的整体磁盘使用量 df
df [选项][目录或文件名]
-a :列出所有的文件系统,包括系统特有的 /proc 等文件系统;
-k :以 KBytes 的容量显示各文件系统;
-m :以 MBytes 的容量显示各文件系统;
-h :以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示;
-H :以 M=1000K 取代 M=1024K 的进位方式;
-T :显示文件系统类型, 连同该 partition 的 filesystem 名称 (例如 ext3) 也列出;
-i :不用硬盘容量,而以 inode 的数量来显示
检查磁盘空间使用量 du
du [选项] 文件名或目录
-a :列出所有的文件与目录容量,因为默认仅统计目录底下的文件量而已。
-h :以人们较易读的容量格式 (G/M) 显示;
-s :列出总量而已,而不列出每个各别的目录占用容量;
-S :不包括子目录下的总计,与 -s 有点差别。
-k :以 KBytes 列出容量显示;
-m :以 MBytes 列出容量显示;
fdisk 磁盘分区表操作
fdisk [选项] 装置名称
-l 列出指定磁盘设备的分区表状态
-u 改变分区大小的显示方式
-s 以扇区单位显示分区大小
-b 显示扇区计数和大小
-v 显示版本信息
fdisk命令交互界面
p 打印该磁盘的分区表,显示磁盘分区信息
n 创建一个新分区
d 删除磁盘分区
e 创建扩展分区
m 打印fdisk命令帮助
t 改变分区类型
w 保存退出
q 不保存退出
文件系统管理
支持的文件系统
linux首选文件系统是ext,主要有ext2、ext3、ext4等。Ubuntu使用ext4作为默认
查看linux支持的文件系统类型
ls /lib/modules/$(uname -r)/kernel/fs
创建文件系统命令 mkfs
mkfs [选项] [-t <类型>][文件系统选项]<设备>[<大小>]
-t 指定文件系统的类型,不指定,使用预设值ext2
-c 在建立文件系统前检查该partition(分组)是否有坏道
-V 详细显示模式,解释在运行的操作
大小 设备块数
设备 设备路径
-v 显示版本
其他工具有
mke2fs、mkfs.ext2、mkfs.ext3、mkfs.ext4、mkfs.ext5
文件系统挂载 mount
mount [选项] 设备名 挂载点
-t 文件系统类型,通常不指定会自动选择
-L 卷标
-o 挂载选项
loop 用来将一个档案当成硬盘分割挂上系统。
ro 只读方式
rw 读写方式
iocharset 指定字符集
文件系统卸载 umount
umount [选项] <源> |<目录>
-a 卸载/etc/mtab中所有文件系统
-n 卸载不要将信息存入/etc/mtab文件中
-r 若无法成功卸载,则尝试只读方式挂载
-t 只卸载选项中指定文件系统类型的文件系统
-v 显示详细
文件系统检查和修复 fsck
fsck[选项][设备名字]
-p 不提示用户直接修复
-c 检查可能的坏块,并将他们加入坏块列表
-f 强制进行检查
-n 只检查并修复
-v 显示更多信息
-y 所有问题都回答yes
进程管理
查看所有进程
ps 查看进程
可以用| 搭配grep一起使用,来查看特定的进程
a 显示终端所有进程
u 显示进程的归属用户和内存
x 显示没有控制终端的进程
l 长格式显示信息
c 列出进程显示每个进程真正的指令名称
f 显示进程关系
j 采用工作控制的格式显示进程状况
e 列出进程时,显示进程所使用的环境变量
动态监控
top [选项]
-d 刷新秒数,默认3s
-b 使用批处理模式输出,一般和-n合用,用于把top命令重定向到文件
-n 次数:指定top命令执行次数
-p 进程pid
-s 安全模式
-u 用户名
查看进程树
pstree [选项][进程号|用户]
-a 显示命令行参数
-c 不要对完全相同的子树压缩
-h 高亮显示当前进程和其父进程
-H 和h类似但是会特别表明指定程序
-l 长列格式显示
-n pid序列输出
-p 显示pid
-u 显示进程用户名
列出进程打开文件信息lsof
lsof 文件 //查看文件进程
lsof -p //查看pid进程的打开的所有文件
-i [协议] //列出[协议]所有网络连接
-u //指定用户
-a 所有
-d 后缀
-r //每秒打印次数
进程优先级控制
niceness越大优先级越低
调整优先级nice
nice 命令[选项] 进程
-n,--adjustment=N 将niceness设置成N(默认N为10)
--version 显示版本
作者介绍

小余
V1