Linux 常用命令
一. 文件与目录管理命令
01.查看与切换
1.1 ls
参数 | 含义 |
---|---|
-a | 显示指定目录下所有的子目录与文件,包括隐藏文件 |
-l | 以列表方式显示文件详细信息 |
-h | 配合-l 以人性化的方式显示文件大小 |
1.2 通配符的使用
通配符 | 含义 |
---|---|
* | 代表任意个数个字符 |
? | 代表任意一个字符,至少1个 |
[] | 表示可以匹配字符组中的任意一个 |
[abc] | 匹配啊a、b、c中的任意一个 |
[a-f] | 匹配从a到f范围内的任意一个字符 |
1.3 cd
命令 | 含义 |
---|---|
cd | 切换到当前用户的主目录(/home/用户目录) |
cd ~ | 切换到当前用户的主目录(/home/用户目录) |
cd . | 保持在当前目录不变 |
cd … | 切换到上级目录 |
cd - | 可在最近两次工作目录之间来回切换 |
02. 文件的创建与删除
2.1 touch
- 在当前目录下创建新文件或修改文件末次修改日期
2.2 mkdir
- 创建一个新的目录
选项 | 含义 |
---|---|
-p | 可以递归创建目录 |
新建目录的名称 不能与当前目录中___已有的文件或目录___同名
2.3 rm
- 删除文件或目录
rm
命令删除文件后不能恢复
参数 | 含义 |
---|---|
-f | 强制删除,忽略不存在的文件,无需显示 |
-r | 递归地删除目录下的内容,删除文件夹 时必须加此参数 |
03. 拷贝与移动文件
序号 | 命令 | 对应英文 | 作用 |
---|---|---|---|
01 | tree[目录名] | tree | 以树状图列出文件目录结构 |
02 | cp 源文件 目标文件 | copy | 复制文件或者目录 |
03 | mv 源文件 目标文件 | move | 移动文件或者目录/文件或者目录重命名 |
3.1 tree
tree
命令可以以树状图列出文件目录结构
选项 | 含义 |
---|---|
-d | 只显示文件夹 |
3.2 cp
cp
命令的功能是将给出的__文件__或__目录__复制到另一个__文件__或__目录__中,相当于__DOS__下的copy
命令
选项 | 含义 |
---|---|
-f | 已经存在的目标文件直接覆盖,不会提示 |
-i | 覆盖文件前提示 |
-r | 若给出的源文件是目录文件,则__cp__将递归复制该目录下的所有子目录和文件,目标文件必须为一个目录名 |
3.3 mv
mv
移动文件或者目录/文件或者目录重命名
选项 | 含义 |
---|---|
-i | 覆盖文件前提示 |
04 查看文件内容
序号 | 命令 | 对应英文 | 作用 |
---|---|---|---|
01 | cat 文件名 | concatenate | 查看文件内容,创建文件,文件合并,追加文件内容等功能 |
02 | more 文件名 | more | 分屏显示文件内容 |
03 | grep 搜索文本文件名 | grep | 搜索文本内容 |
4.1 cat
选项 | 含义 |
---|---|
-b | 每行前面显示行数,空行不显示 |
-n | 空行显示 |
4.2 grep
grep
允许对文本文件进行__模式__查找,所谓模式查找,又被称为正则表达式
选项 | 含义 |
---|---|
-n | 显示匹配行及行号 |
-v | 显示不包含匹配文本的所有行(相当于求反) |
-i | 忽略大小写 |
- 常用的两种查找模式
参数 | 含义 |
---|---|
^a | 行首,搜寻以a开头的行 |
ke$ | 行尾,搜寻以ke结束的行 |
05. 其他
5.1 echo
echo
会在终端中显示参数指定的文字,通常会和 重定向 联合使用
5.2 重定向 > 和 >>
- Liunx 允许将命令执行结果 重定向 到一个文件
- 将本应显示在__终端上的内容 输出/追加 __ 到__指定文件中__
其中
>
表示输出,会覆盖文件原有内容>>
表示追加,会将内容追加到已有文件的末尾
5.3 管道 |
- Linux 允许将__一个命令的输出__ 可以__通过管道__ 作为__另一个命令的输入__
常用的管道命令有:
more
分屏显示内容grep
在命令执行结果的基础上查询指定的文本
二. 远程管理常用命令
相关内容:
- 关机/重启
shutdown
- 查看或配置网卡
ifconfig
ping
- 远程登录和复制文件
ssh
scp
01.关机/重启
序号 | 命令 | 对应英文 | 作用 |
---|---|---|---|
01 | shutdown 选项 时间 | shutdown | 关机/重新启动 |
1.1 shutdown
shutdown
命令可以 安全 关闭或__重新启动电脑__
选项 | 含义 |
---|---|
-r | 重新启动 |
提示:
- 不指定选项和参数,默认表示__1分钟__之后__关闭电脑__
- 远程维护服务器时,最好不要关闭系统,而应该重新启动系统
- 用__now__表示立刻执行
02. 查看或配置网卡信息
2.1网卡和IP地址
网卡:
- 网卡……
- IP地址是设置在网卡上的地址信息
IP地址
- 每台电脑都有独立的IP地址,且各不相同
2.2 ifconfig
ifconfig
可以查看/配置计算机当前的网卡配置信息- 通常以
ifconfig |grep inet
来过滤查找IP地址 127.0.0.1
被称为 本地回环/环回地址,一般用来测试本机为网卡是否正常
2.3 ping
0.3 远程登录和复制文件
序号 | 命令 | 对应英文 |
---|---|---|
01 | ssh [-p 端口] 用户名@IP | secure shell |
02 | scp 用户名@IP:文件名或路径 用户名@IP:文件名或路径 | secure copy |
3.1 ssh
简单使用格式:
ssh [-p port] user@remote
user
是远程机器上的用户名,如果不指定的话默认为当前的用户remote
是远程机器的地址,可以是__IP/域名__ ,或者是 其他别名port
是 SSH Server 监听的端口,如果不指定,就默认值为22
提示:
- 使用
exit
退出当前用户登录注意:
ssh
命令只能在Linux
或者unix
系统下使用- Windows 安装PuTTy 或者XShell
3.2 scp
- scp 是在Linux 下用的__远程拷贝文件__ 的命令
- 他的地址格式与 ssh 基本相同,需注意的是,在指定端口时用的是大写的
-P
而不是小写的
选项 | 含义 |
---|---|
-r | 若给出的源文件是目录文件,则scp将递归复制该目录下的所有文件和子目录,目标文件必须为一个目录名 |
-p | 若远程ssh 服务器端口不是 22 ,需要使用大写的字母 -p 选定指定的端口 |
3.3 SSH 高级
提示:有关SSH 配置信息都保存在用户家目录下的
.ssh
目录下
1)免密码登录
- 配置公钥
- 执行
ssh-keygen
即可生成SSH 钥匙,回车即可
- 执行
- 上传公钥到服务器
- 执行
ssh-copy-id -p port user@remote
,可以让远程服务器记住我们的公钥
- 执行
2)配置别名
- 在
~/.ssh/
创建config
文件 - 在里面追加以下内容:
Host new_name
HostName ip
User old_name
Port 22
- 保存之后,就可以用
ssh new_name
实现远程登录了,scp
同样可以使用
三. 用户权限
01. 用户 和权限 的基本概念
1.1 基本概念
- 用户 是Linux系统工作中重要的一环,用户管理包括 用户和组的概念
- 在Linux系统中,不论是由本机或是远程登录系统,每个系统都必须拥有一个账号,并且对于不同的系统资源拥有不同权限
- 在Linux中,可以指定 每一个用户针对不同的文件或者目录 的不同权限
- 对文件/目录 的权限包括:
序号 | 权限 | 英文 | 缩写 | 数字代号 |
---|---|---|---|---|
01 | 读 | read | r | 4 |
02 | 写 | write | w | 2 |
03 | 执行 | excute | x | 1 |
1.2 组
- 为了方便用户管理,提出了组的概念,如: 开发组
- 在实际应用中,可以预先针对 组 设置好权限,然后 将不同的用户添加到对应的组中,从而不用依次为每一个用户设置权限
1.3 ls -l 的扩展
ls-l
可以查看文件夹下的详细信息,从左到右依次是:- 权限 ,第1个字符如果是
d
表示目录 - 硬链接数 ,通俗的讲,就是有多少种方式,可以访问到当前的目录/文件
- 拥有者 ,家目录下 文件/目录 的拥有者通常是当前的用户
- 组 ,在Linux中,很多时候,会出现组名和用户名相同的情况
- 大小
- 时间
- 名称
- 权限 ,第1个字符如果是
目录 | 拥有者权限 | 组权限 | 其他用户权限 | |||||||
---|---|---|---|---|---|---|---|---|---|---|
文件 | - | r | w | - | r | w | - | r | - | - |
目录 | d | r | w | x | r | w | x | r | - | x |
1.4 chmod
chmod
可以修改 用户/组 对文件/目录 的权限- 命令格式如下:
chmod
+/- rwx 文件名|目录名注:只能简单的修改文件的权限,不能精确到 用户/组/其他用户 的权限
1.5 超级用户
- Linux 系统中的
root
账号通常 用于系统的维护和管理,对操作系统的所有资源 具有所有访问权限
sodu
su
是substitute user
的缩写,表示使用另一个用户的身份sudo
命令用来以其他身份来执行命令,预设的身份为root
- 用户使用
sudo
时 ,必须先输入密码,之后有5分钟的有效权限,超过期限必须重新输入密码
若未经授权的用户企图使用
sudo
,则会发出警告邮件给管理员
02. 组管理 终端命令
提示:创建组/删除组 的终端命令都需要通过
sudo
执行
序号 | 命令 | 作用 |
---|---|---|
01 | groupadd 组名 | 添加组 |
02 | groupdel 组名 | 删除组 |
03 | cat / etc / group | 确认组信息 |
04 | chgrp 组名 文件/目录名 | 修改文件/目录的所属组 |
提示:
- 组信息保存在
/etc/group
文件中/etc
目录是专门用来保存 系统配置信息 的目录
03.用户管理 终端命令
提示:创建用户/删除用户/修改其他用户密码 的终端命令都需要通过
sudo
执行
3.1 创建用户/设置密码/删除用户
序号 | 命令 | 作用 | 说明 |
---|---|---|---|
01 | useradd -m -g 组 新建用户名 | 添加新用户 | -m 自动建立用户家目录 -g 指定用户所在的组,否则会建立一个同名的组 |
02 | passwd 用户名 | 设置用户密码 | 如果是普通用户,直接使用passwd 可以修改自己的账户密码 |
03 | userdel -r 用户名 | 删除用户 | -r 选项会自动删除用户家目录 |
04 | **cat /etc/passwd |grep 用户名 ** | 确认用户信息 | 新建用户后,用户信息会保存在 /etc/passwd 文件中 |
提示:
- 创建用户时,如果忘记添加
-m
选项指定新用户的家目录——最简单的方法就是删除用户,重新创建- 创建用户信息时,默认会创建一个和用户名一样的组名
- 用户信息保存在
/etc/passwd
文件中
3.2 查看用户信息
序号 | 命令 | 作用 |
---|---|---|
01 | id [用户名] | 查看用户UID 和 GID |
02 | who | 查看当前所登录的用户列表 |
03 | whoami | 查看当前登录用户的帐户名 |
passwd 文件
/etc/passwd
文件存放的是用户的信息,有 6 个分号组成的 7 个信息,分别是:
- 用户名
- 密码(x,表示加密的密码)
- UID (用户标识)
- GID (组标识)
- 用户全名或本地账号
- 家目录
- 登录使用的shell,就是登录之后,使用的终端命令,
ubuntu
默认dash
usermod
usermod
可以用来设置 用户 的主组 /附加组 和 登录shell,命令格式如下:- 主组:通常在新建用户时指定,在
etc/passwd
的第 4 列 GID 对应的组 - 附加组,在
etc/group
中的最后一列表示该组的用户列表,用于指定 用户的附加权限
提示:设置了用户的附加组之后,需要重新登陆才能生效!
# 修改用户的主组 (passwd 中的GID)
- usermod -g 组 用户名
# 修改用户附加组
- usermod -G 组 用户名
# 修改用户登录 shell
- usermod -s /bin/bash
注意: 默认使用
useradd
添加的用户是没有权限使用sudo
以root
身份执行命令的,可以使用以下命令,将用户添加到sudo
附加组中
- usermod -G sudo 用户名
which
提示
/etc/passwd
适用于保存用户信息的文件/uer/bin/passwd
是用于修改用户密码的程序
-
which
命令可以查看执行命令所在位置,例如:which ls # 输出 #/bin/ls which useradd #输出 #/user/sbin/useradd
bin 和 sbin
-
在Linux 中,绝大多数可执行文件都是保存在
/bin
、/sbin
、/user/bin
-
/bin(binary)
是二进制执行文件目录,主要用于具体应用 -
/sbin(system binary)
是系统管理员专用的二进制代码存放目录,主要用于系统管理 -
/user/bin
(user commands for applications
) 后期安装的一些软件 -
/user/sbin
(super user commands for applicaton
) 超级用户的一些管理程序
提示:
cd
这个终端命令是内置在系统内核中的,没有独立的文件,因此用which
无法找
3.3 切换用户
序号 | 命令 | 作用 | 说明 |
---|---|---|---|
01 | su -用户名 | 切换用户,并切换目录 | - 可以切换到家目录,否则保持位置不变 |
02 | exit | 退出当前目录 |
su
不接用户名,可以切换到root
, 但不推荐使用,因为不安全exit
示意图如下:
04. 修改文件权限
序号 | 命令 | 作用 |
---|---|---|
01 | chown | 修改拥有者 |
02 | chgrp | 修改组 |
03 | chmod | 修改权限 |
- 命令格式如下:
# 修改文件|目录的拥有者
chown 用户名 文件名|目录名
#递归修改文件|目录的组
chgrp -R 组名 文件名|目录名
#递归修改文件权限
chmod -R 755 文件名|目录名
chmod
在设置权限时,可以简单的使用三个数字分别对应 拥有者 /组 ** 和其他** 用户权限
r | w | x |
---|---|---|
4 | 2 | 1 |
- 多种权限只需将对应的数字相加,如:
- 7 5 5 分别对应着 拥有者 (r-w-x)组 (r–x)其他 (r–x)
四. 系统信息相关命令
- 时间与日期
- date
- cal
- 磁盘与目录空间
- df
- du
- 进程信息
- ps
- top
- kill
01.时间与日期
序号 | 命令 | 作用 |
---|---|---|
01 | cal | 查看日历,-y 选项可以查看一年的日历 |
02 | date | 查看系统时间 |
02. 磁盘信息
序号 | 命令 | 作用 |
---|---|---|
01 | df -h | disk free 显示磁盘剩余空间 |
02 | du -h [目录名] | disk usage 显示目录文件下的文件大小 |
- 选项说明
参数 | 含义 |
---|---|
-h | 以人性化的方式显示文件大小 |
03. 进程信息
- 所谓 进程,就是 当前正在执行的一个程序
序号 | 命令 | 作用 |
---|---|---|
01 | ps a/u/x | process status 查看进程的详细情况 |
02 | top | 动态显示运行中的进程并且排序 |
03 | kill [-9] 进程代号 | 终止指定代号的进程,-9 表示强行终止 |
ps
默认只会显示当前用户通过终端启动的应用程序
ps
选项说明
选项 | 含义 |
---|---|
a | 显示终端上的所有进程,包括其他用户的进程 |
u | 显示进程的详细状态 |
x | 显示没有控制终端的进程 |
提示: 使用
kill
命令时,最好只终止当前用户开启的进程,而不要终止root
开启的进程,否则可能会导致系统崩溃
- 要退出
top
可以直接输入q
退出
五. 其他命令
目标
- 查找文件
find
- 软连接
ln
- 打包和压缩
tar
- 软件安装
apt-get
01. 查找文件
find
命令功能强大,通常用来在 __特定的目录下 搜索 __ 符合条件的文件
序号 | 命令 | 作用 |
---|---|---|
01 | find [路径] -name “*.py" | 查找指定路径下扩展名是**.py** 的文件,包括子目录 |
- 如果省略路径,表示在当前文件夹下查找
- 之前学习的通配符,在使用
find
命令时同时可用
02. 软链接
序号 | 命令 | 作用 |
---|---|---|
01 | ln -s 被链接的源文件 链接文件 | 建立文件的软链接,类似Windows 下的快捷方式 |
- 注意:
- 1.没有
-s
选项建立的是一个 硬链接文件- 两个文件占用相同大小的硬盘空间,工作中几乎不会建立文件的硬链接
- 2.源文件要使用绝对路径,不能使用相对路径,这样可以方便文件移动链接文件后,仍然能够正常使用
文件软硬链接示意图
在Linux中,文件名 和 文件的数据 是分开储存的
03. 打包压缩
- Windows 常用
rar
- Mac 常用
zip
- Linux 常用
tar.gz
3.1 打包 / 解包
tar
是Linux中最常用的 备份 工具,此命令可以 把一系列文件 打包到 一个大文件中tar
命令格式如下:
# 打包文件
tar -cvf 打包文件.tar 被打包的文件/路径……
#解包文件
tar -xvf 打包文件.tar
tar
选项说明
选项 | 含义 |
---|---|
c | 生成档案文件,创建打包文件 |
x | 解开档案文件 |
v | 列出归档解档的详细过程,显示进度 |
f | 指定档案文件名称,f后面一定是 .tar 文件,所以必须放选项最后 |
注意:
f
选项必须放在最后,其它选项随意
3.2 压缩/解压缩
1)gzip
tar
与gzip
命令结合可以使用实现文件 打包和压缩tar
只负责打包文件,但不压缩- 用
gzip
压缩tar
打包后的文件,其扩展名一般用xxx.tar.gz
在
Linux
中,最常见的压缩文件格式就是xxx.tar.gz
- 在
tar
命令中有一个选项-z 可以调用gzip
,从而可以方便的实现压缩和解压缩的功能 - 命令格式如下:
#压缩文件
tar -zcvf 打包文件.tar.gz 被压缩的文件/路径……
#解压文件
tar -zxvf 打包文件.tar.gz
#解压缩到指定的路径
tar -zxvf 打包文件.tar.gz -C 目标路径
选项 | 含义 |
---|---|
-C | 解压缩到指定目录 ,注意:要解压缩的目录必须存在 |
2)bzip2(two)
tar
与bzip2
命令结合可以使用实现文件 打包和压缩 (用法和gzip
一样)- 用
bzip2
压缩tar
打包后的文件 ,其扩展名一般用xxx.tar.bz2
- 用
- 在
tar
命令中有一个选项**-j** 可以调用bzip2
, 从而可以方便的实现压缩和解压缩的功能 - 命令格式如下:
#压缩文件
tar -jcvf 打包文件.tar.bz2 被压缩文件/路径……
#解压缩文件
tar -jxvf 打包文件.tar.bz2
04. 软件安装
4.1 通过 apt 安装/卸载软件
- apt 是
Advanced Packaging Tool
,是Linux 下的一款安装包管理工具 - 可以在终端中方便的 安装/卸载/更新软件包
#1.安装软件
$ sudo apt install 软件包
#2.卸载软件
$ sudo apt remove 软件名
#3.更新已安装的包
$ sudo apt upgrade