导图社区 Linux系统 Shell命令
Linux系统 Shell命令知识梳理,包括Linux目录类命令、文件操作命令、管道及重定向、用户权限管理等等。
编辑于2022-09-28 17:09:22 福建省Linux系统 Shell命令
Linux目录类命令
Linux系统的目录结构
/home
包含Linux系统各个用户的主用户
/root
root用户的主目录
/bin
二进制目录,存放许多用户级的GNU
/sbin
系统二进制目录存放GNU管理员级工具
/dev
设备目录,Linux在这里创建设备节点
/lib
库目录,存放系统和应用程序的库文件
/tmp
临时目录,可以在该目录中创建临时工作文件
/mnt
挂载目录,可以在该目录中创建和删除临时工作文件
/boot
启动目录,存放启动文件
/media
媒体目录,可移动媒体设备的常用挂载点
/etc
系统配置文件目录
/proc
进程目录,存放现有硬件及当前进程的相关信息
/usr
用户二进制目录,大量用户级的GNU工具和数据文件存储在这里
/var
可变目录,用以存放经常变化的文件,比如日志文件
目录操作
增
mkdir 创建目录
命令格式
mkdir 【选项】 【目录】
mkdir选项说明
-p
若路径中的目录不存在,先创建目录
-v
每次创建目录都显示信息
删
rmdir 删除空目录
命令格式
rmdir 【选项】 【目录】
rmdir命令选项说明
-p
删除递归目录,当子目录删除后,其父目录为空时,也一同被删除
-v
输出处理的目录详情
改
cd 更改工作目录路径
命令格式
cd 【目录】
说明
.
代表当前所在目录
..
代表当前目录位置的上一层目录
~
代表家目录(home),即login时所在的目录
查
ls 列出目录和文件信息
命令格式
ls 【选项】 【目录】【文件】
ls选项说明
-l
以详细信息的形式展示出当前目录的文件
-a
显示当前目录中的全部文件(包括隐藏文件)
-d
查看目录属性
-t
按照创建时间顺序列出文件
-F
显示文件类型
-la
同时显示-l-a的信息
pwd显示当前工作目录的绝对路径
命令格式
pwd
注意
绝对路径
指从根目录(/)开始到当前目录(文件)的路径
相对路径
指从当前目录到其下子目录(文件)的路径
文件操作命令
文件操作
改
touch 更改文件时间
命令格式
touch 【选项】 文件
touch命令选项说明
-a
只更改访问时间(atime)
-m
更改文件的修改时间记录
-c
假如目标文件不存在,则不会建立新的文件
-d<字符串>
使用指定字符串表示时间,而非当前时间
-t<日期时间>
使用MMDDhhmm格式的时间,而非当前的时间
cp 复制文件和目录
命令格式
cp命令选项说明
-f
强制复制文件和目录,无论目的文件或目录是否已经存在
-r
递归复制目录下的子目录和文件
-i
若目标文件存在,则提示用户如何操作
mv 文件和目录改名、移动文件和目录路径
命令格式
mv 【选项】【源文件|目录】【目标文件|目录】
mv命令选项说明
-f
移动时自动替换已经存在的目标文件,不提示
-i
若目标文件存在,则提示用户如何操作
删
rm 删除文件或目录
命令格式
rm【选项】【文件|目录】
rm 命令选项说明
-f
强制删除文件,不给出提示信息
-r
递归删除目录及其子目录和文件
-i
删除前需要确认
PS注意
rm -tf *. *
表示强制删除当前目录下的所有文件,管理员权限慎用,被删除根目录下的全部文件及其相关目录
增
touch 创建空文件
命令格式
touch 文件
注意:file*
查找以file的文件,*代表任意的文件
查
find 用于查找文件或目录
命令格式
find【查找范围 】【选项】
find 命令选项说明
-name<文件名>
匹配文件名称
-user<用户名>
匹配文件的所有者
-perm<权限>
匹配文件的权限
-type<文件类型>
匹配文件类型查找
-size n【ckMG】
匹配文件的大小(+50k查找超过50k的文件,而-50k则代表查找小于50k的文件)
拓展
-a
and 和
-o
-not
文件所有及其他用户具有权限
2
写
4
读
6
读写
例如:644
从左到右,6,代表所有者的权限,4,代表所属组的权限,4,代表其他人的权限
使用-exec rm { } \;
{ }与\之间必须有空格
查找文件或目录which/whereis
which
命令格式
which 文件
主要用来搜索二进制文件、可执行文件或者Shell命令行的位置
whereis
命令格式
whereis 文件
主要用来搜索二进制文件的位置、源代码的位置和帮助文件的位置
文件内容操作命令
cat 显示文本文件,连接文件内容
命令格式
cat 【选项】 【文件】
cat命令的选项说明
-n
对输出的所有行编号
-b
对非空输出行编号
例:cat file1 file2>file3
将file1,file2两个文本文件连接起来输出到文本文件file3中,>指向,空不空格无所谓
more 分页显示文本文件
命令格式
more 【选项】 【文件】
more命令选项说明
+n
从第n行开始显示文件内容,n代表数字
-n
一次显示的行数,n代表数字
说明
Ctrl+f(或空格键)
向下显示一屏
Ctrl+b
向上滚动一屏
Enter键
向下滚动一行
q键
退出more命令
head 显示指定文件的前若干行
命令格式
head -n 行数值 【文件】
默认缺省显示文件的前10行内容,n 代表行数
tail 查看文件末尾数据
命令格式
tail -n 行数值 【文件】
默认缺省显示文件的前后0行内容,n 代表行数
grep 在文件中搜索与字符串匹配的行输出
命令格式
grep【选项】 查找条件 源文件
grep 命令选项说明
-i
查找时忽略大小写
-v
反转查找,输出与查找条件不相符的行
说明
查找条件设置:要查找的字符串以双引号括起来,“......”表示以......开头,“......$”表示以......结尾,“^$”表示空行
文件链接与文件压缩
ln 文件链接
命令格式
ln 【选项】 源文件【目标】
Linux链接方式
硬链接
建立硬链接时,链接文件和被链接文件必须位于同一文件系统中,并且不能建立指向目录的硬链接。默认情况下,ln产生硬链接,原文件与链接文件两者具有相同的inode。
符号链接(软链接)
等价于Windows系统下的快捷方式文件。符号链接文件可以用来建立在不同的文件系统之上,并且可以对目录建立符号链接。ln命令加参数-s产生符号链接。
说明
链接的对象可以是文件,也可以是目录。不加参数默认创建的是一个硬链接,目录不能创建硬链接;-s创建一个软链接(符号链接)。
ln原理
文件放在外存,文件信息形成FCB,FCB的几集合构成目录
tar文件打包,压缩
命令格式
tar 【参数】 打包文件名文件
tar命令选项说明
-c
产生.tar打包文件
-v
列出打包/解包的详细过程
-f
指定打包文件的名称
-z
以.gz的格式压缩或打包文件
-j
以.bz2的格式压缩或解压打包文件
-x
从打包文件中还原文件
-C
解压到指定文件
-r
将文件追加到打包文档末尾
tar常用命令
打包
tar -czvf
【存放路径】打包文件名.tar.gz 源文件或目录
tar -cjvf
【存放路径】打包文件名.tar.bz2 源文件或目录
tar -cJvf
【存放路径】打包文件名.tar.xz 源文件或目录
解压
tar -xzvf
【存放路径】打包文件名.tar.gz 【-C 解压目录】
tsr -xjvf
【存放路径】打包文件名.tar.bz2 【-C 解压目录】
tar -xJvf
【存放路径】打包文件名.tar.xz 【-C 解压目录】
管道及重定向
输入输出流控制
输入重定向
输入重定向主要用于改变一个命令的输入源,指定输入可以不来自标准输入(键盘),而来自一个指定文件
符号
<
一般命令格式
命令<文件名
例如:cat<file
cat从file获得输入数据
输出重定向
输出重定向指将命令的执行结果输出到指定文件中,而不是直接显示在屏幕上
符号
重定向标准输出
>
将命令的执行结果输出到指定文件,而不是直接显示在屏幕上
>>
将命令的执行结果输出到指定文件
重定向标准错误
2>
清空指定文件的内容,并将标准错误信息保存到改文件中
2>>
将标准错误信息追加到指定的文件中
重定向标准输出和标准错误
&>
将标准输出、标准错误的内容全部保存到指定文件中,而不是直接显示在屏幕上
注意
Shell遇到“>”操作符
判断右边文件是否存在
存在
先删除,并且创建新文件
不存在
直接创建
无论左边命令执行是否成,右边文件都会变空
“>>”操作符
子主题
判断右边文件,如果不存在,先创建,以添加方式打开文件
管道操作
cut
命令格式
command1|command2|command3|command4
语法格式
cyt -d “分割字符” 【-cf】 fields
cut参数路径
-d
后面接的是分隔字符,默认是空格符
-c
后面接的第几个区块
-f
后面接的第几个区块
用户权限管理
认识系统中的用户和组
Linux的用户类型
超级用户(root用户)
UID为0,拥有计算机系统的最高权限,所有系统的设置和修改都只有超级用户才能执行
普通用户
在安装后由超级用户创建,普通用户的权限相当有限,只能操作其拥有权限的文件和目录,只能管理自己启动的进程。
系统用户
正常运行系统时的账户,每个进程运行在系统里都有一个系统用户,系统用户不允许登录,如bin、damon、mail 等
用户账户配置文件
/ect/passawd
具体格式
用户名:用户密码:UID:GID:用户信息说明:用户主目录:登录Shell
用户名
在linux系统中用唯一的字符串区分不同的用户
用户密码
出于安全考虑,此处为密码占位符x,字符加密后存放在/ect/shadow这个文件中
UID
用户识别码0~65535,用于唯一标识Linux系统的用户,用户名和UID都可以用于标识用户
GID
表示用户所属组
用户信息说明
用途较小,主要解释账号的意义
用户主目录(用户主目录的绝对路径)
用户登录Shell将该目录作为用户的工作目录,超级用户的工作目录为/root;每个用户都有自己的主目录,默认一般在/home下建立与用户名一致的目录
登录Shell
当前用户登录系统时运行的程序名称,通常是/bim/bash,/sbin/nologin的表示用户不能登录
/ect/shadow(影子文件)
具体格式
用户账号的名称:加密的密码字串信息:上次修改密码的时间(距离1970.1.1):密码的最短有效天数,默认值为0:密码的最长有效天数,默认值为99999:提前多少天警告用户口令将过期,默认值为7:在密码过期之后多少天禁用此用户:账户失效时间,默认值为空:保留字段(未使用)
注意
该文件只有超级用户才有权限读取
组账户
基本组(私有组,主要组)
当创建一个新的用户账户时,如果没有指定该用户属于哪一个组群,那么Linux就会创建一个和该用户组同名的组群,这个组群就是私有组群,在这个私有组群中只包含这个用户。
附加组(公共组,次要组)
可以包含多个用户账户,一个用户账户只能属于一个基本组,可以属于多个附加组。
组账户配置文件
/etc/group文件
自段含义
用户组名:用户组密码:用户组标识符:组内用户列表
用户组名
用户组名跟用户名一样,不可重复
用户组密码
该字段存放是用户组加密后的密码,但是该字段一般很少使用,Linux系统的用户组都没有密码
用户组标识符
简称GID,用户唯一标识一个用户组
组内用户列表
属于这个组的所有用户列表
管理用户及组
添加用户
useradd
命令格式
useradd 【选项】用户名
命令常见选项
-u
指定用户ID
-G
指定用户的附属组(补充组)
-s
指定用户登录后所使用的Shell
-d
设置登录时使用的主目录
-M
不建立用户主目录
设置用户密码
passwd
命令格式
passwd 【选项】用户名
passwd命令常见选项
-u
指定用户ID
-G
指定用户的附属组(补充组)
-s
指定用户登录后所使用的Shell
-d
设置登录时使用的主目录
-M
不建立用户主目录
删除用户
userdel
命令格式
userdel 【选项】用户名
userdel命令常见选项
-r
同时删除用户组及目录
修改用户账户
usermod
命令格式
usermod 【选项】... 用户名
usermod命令常见选项
-s
修改用户登录后所使用的Shell
-u
修改用户ID
-g
修改用户所属基本组
-G
修改用户所属附加组
添加用户组
groupadd
命令格式
groupadd 【-g GID】组账户名
-g参数
表示指定新建用户组的组ID
删除用户组
groupdel
命令格式
groupdel 组账号名