Linux 命令
0 前言
0.1 为什么要学Linux命令
目前,大多数企业或者其他机构的后台服务器都是部署的Linux操作系统,而Linux是CLI操作界面(Command Line Interface),需要用命令去控制操作系统,这是程序员需要学习Linux命令的根本原因。
与Windows的GUI(Graphics User Interface)的易用性不同,CLI需要通过一定的学习记忆掌握。
0.2 关于命令
本文对命令的介绍按以下两部分展开:
(一)常用Linux命令
(二)Linux命令分类
- 文件管理
- 文档编辑
- 文件传输
- 磁盘管理
- 磁盘维护
- 网络通信
- 系统管理
- 系统设置
- 备份压缩
- 设备管理
0.3 学习参考
参考:https://www.runoob.com/linux/linux-tutorial.html
0.4 在线练习
如果实在没有Linux服务器,也不想安装虚拟机的。试试如下几个网站,可以直接在线练习Linux命令(命令不太完整,基础性的练习没问题)。
- https://www.masswerk.at/jsuix/index.html
- http://cb.vu/
- https://copy.sh/v86/?profile=linux26
- https://bellard.org/jslinux/
1 远程连接Linux
1.1 云服务器
可以试用或购买云服务器进行学习。
https://www.runoob.com/linux/linux-cloud-server.html
Linux部署在服务器上,而服务器一般放在机房,你一般不会在机房操作你的 Linux 服务器。
这时我们就需要远程登录到Linux服务器来管理维护系统。
Linux 系统是通过 ssh(Secure Shell)服务实现的远程登录功能,默认 ssh 服务端口号为 22。
Window 系统上 Linux 远程登录客户端有 X shell、SecureCRT、 Putty、 SSH Secure Shell 等。
1.2 X shell连接阿里云服务器
- 1)阿里云进入购买的云服务器实例页面,获取获取主机号(公网IP)和密码
a. 实例:云服务器实例其实就是一个虚拟的计算环境,包含 CPU、内存、操作系统、带宽、磁盘等最基础的计算组件。用户可以将云服务器实例简单理解为一个独立的虚拟机。ECS实例是云服务器最为核心的概念
b. 实例密码:云服务器密码。需要重置实例密码,密码要记住,连接服务器要使用。
- 2)运行 X Shell,新建会话
Name:自己命名
Protocol:默认SSH
Host: 阿里云服务的公网IP(ECS 实例详情可以看到)
Port:默认22
- 3)设置用户名和密码
用户名:默认root
密码:你的云服务器实例的密码
- 4)服务器远程连接成功
2 常用Linux命令
2.1 参考
21天,搞定软件测试从业者必备的Linux命令(完整篇)
https://mp.weixin.qq.com/s?__biz=MzA3OTQzMjc3NA%3D%3D&mid=2650567960&idx=1&sn=b0e41dbbe85a95e12404e6476f0d5cec&scene=45#wechat_redirect
2.2 技巧
clear
清空当前终端屏幕ifconfig
查看当前服务器IP
2.3 命令
软件测试
注意!!!以下注释是简述,具体的使用方法需要阅读详细的使用手册和实际操作。
| 分类 | 命令 | English | 注释 |
|---|---|---|---|
| 目录管理 | ------------ | ------------ | ------------ |
| 1 | ls | list | 显示文件/目录 |
| 2 | mkdir | make directory | 创建目录 |
| 3 | cd | change directory | 切换目录 |
| 4 | rmdir | remove a empty directory | 删除空目录 |
| 5 | rm | remove | 删除目录/文件 |
| 6 | mv | move | 移动目录/文件,或重命名 |
| 7 | pwd | print working directory | 显示目前目录 |
| 8 | cp | copy | 拷贝 |
| 文件查看 | ------------ | ------------ | ------------ |
| 9 | cat | concatenate files and print on the standard output | 显示文件内容 |
| 10 | find | find | 搜索文件 |
| 11 | grep | (Global Regular Expression)print lines matching a pattern | 在文件中查找符合条件的字符串 |
(1)ls
ls(list)列出当前目录中所有的子目录和文件
-
ls /
列出根目录/下的所有目录。[root@iZwz9fhqn5vfnx7l59pw48Z ~]# ls / bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var -
ls -a
列出目录下的所有文件(包含隐文件) -
ls -l
列出文件的详细信息(包括权限、所有者、文件大小等)[root@iZwz9fhqn5vfnx7l59pw48Z ~]# ls -al Practice //列出 Practice 目录下的所有目录/文件及其详细信息 total 0 // 没有文件 drwxr-xr-x 6 root root 57 Jun 22 08:09 . dr-xr-x---. 11 root root 264 Jun 22 08:03 .. drwxr-xr-x 2 root root 6 Jun 22 02:42 20220622 drwxr-xr-x 2 root root 6 Jun 22 08:09 One drwxr-xr-x 2 root root 6 Jun 22 08:09 Three drwxr-xr-x 2 root root 6 Jun 22 08:09 Two
(2)mkdir
mkdir(make directory)创建目录
-
mkdir < name >
mkdir HelloWorld表示创建一个 HelloWorld 目录。 -
mkdir < name1 >[/name2][/name3]
mkdir HelloWorld/Practice表示创建一个多层级文件夹,母文件夹为 HelloWorld,子文件夹为 Practice。 -
mkdir < name > < name > < name >
mkdir File1 File2 File3表示创建3个文件夹,分别是File1、File2、File3。
(3)cd
-
cd [ 相对或绝对路径](change directory) 切换目录[root@iZwz9fhqn5vfnx7l59pw48Z ~]# mkdir Good //root目录(家目录)下创建一个 Good 目录 [root@iZwz9fhqn5vfnx7l59pw48Z ~]# cd /root/Good //绝对路径切换到 Good 目录 [root@iZwz9fhqn5vfnx7l59pw48Z Good]# cd ~ //切换到 root 目录 [root@iZwz9fhqn5vfnx7l59pw48Z ~]# cd ./Good //相对路径切换到 Good 目录 [root@iZwz9fhqn5vfnx7l59pw48Z Good]# cd .. //返回上一级目录 [root@iZwz9fhqn5vfnx7l59pw48Z ~]# cd .. [root@iZwz9fhqn5vfnx7l59pw48Z /]# cd .. //此处返回到根目录
(4)rmdir
rmdir (remove a empty directory)删除空目录
- rmdir [-p] < name/ >
(5)rm
rm(remove)删除目录/文件
- rm < /name1 >[/name2][/name3]
rm Practice/20220622表示删除 Practice 目录下的 20220622 文件。
(6)mv
mv [-fiu] source destination移动目录/文件,或修改名称
-f :force 强制,如果目标文件已经存在,不会询问而直接覆盖;
-i :若目标文件 (destination) 已经存在时,就会询问是否覆盖;
-u :若目标文件已经存在,且 source 比较新,才会升级 (update);
(7)pwd
pwd(print working directory)显示目前目录
-
pwd单纯显示目前的工作目录[root@host ~]# cd /root/HelloWorld [root@host HelloWord]# pwd /root/HelloWorld -
pwd [-P]显示出完整的绝对路径的工作目录
(8)cp
cp(copy)拷贝
(9)cat
cat [-AbEnTv] [-p] 由第一行开始显示文件内容
cat记忆法:
< concatenate > v. to put two or more computer files or pieces of computer information together in order to form a single unit; n.used for describing two or more computer files or pieces of computer information that have been put together to form a single unit
选项与参数:
-A :相当於 -vET 的整合选项,可列出一些特殊字符而不是空白而已;
-b :列出行号,仅针对非空白行做行号显示,空白行不标行号;
-E :将结尾的断行字节 $ 显示出来;
-n :列印出行号,连同空白行也会有行号,与 -b 的选项不同;
-T :将 [tab] 按键以 ^I 显示出来;
-v :列出一些看不出来的特殊字符
举例:查看 /etc/issue 这个文件的内容:
[root@host ~]# cat /etc/issue //查看当前目录下的 issue 文件
CentOS release 6.4 (Final)
Kernel \r on an \m
(10)find
find path -option [-print ] expression 指定目录下查找文件
任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则 find 命令将在当前目录下查找子目录与文件,并且将查找到的子目录和文件全部进行显示。
关于可选性,请用
man find命令查看或参考:https://www.runoob.com/linux/linux-comm-find.html
find 根据下列规则判断 path 和 expression:在命令列上第一个 - 之前的部份为 path,之后的是 expression。如果 path 是空字串则使用目前路径,如果 expression 是空字串则使用 -print 为预设expression。
举例1:找出当前目录(/Practice)及其子目录下所有的文件:
[root@host ~]# ls -a
C-disk D-disk E-disk F-disk Good HelloWorld Practice
[root@iZwz9fhqn5vfnx7l59pw48Z ~]# ls /root/Practice
One Three Two
[root@iZwz9fhqn5vfnx7l59pw48Z ~]# find ./Practice -type f //找出当前目录(`/Practice`)及其子目录下所有的文件
./Practice
./Practice/One
./Practice/Two
./Practice/Three
举例2:找出/var/log日志目录下过去 1 日内修改过的文件:
[root@host ~]# cd /var
[root@host var]# ls /var
account adm cache crash db empty ftp games gopher kerberos lib local lock log mail nis opt preserve run spool tmp yp
[root@host var]# ls ./log
boot.log ...
[root@host var]# find ./log -type f -mtime 1 //找出`/var/log`目录下过去 1 日内修改过的文件
./log/sssd/sssd.log
./...
./log/boot.log
(11)grep
grep 用于查找内容包含指定的范本样式的文件。如果发现某文件的内容符合所指定的范本样式,grep 指令会把含有范本样式的内容显示出来。若不指定任何文件名称,或是所给予的文件名为-,则 grep 指令会从标准输入设备读取数据。
grep [-options][-A<显示行数>][-B<显示列数>][-C<显示列数>][-d<进行动作>][-e<范本样式>][-f<范本文件>][--help][范本样式][文件或目录...]
关于可选性,请用
man find命令查看或参考:https://www.runoob.com/linux/linux-comm-find.html
3 Linux命令分类
3.1 文件管理
3.1.1 目录管理
常见的处理目录的命令:
你可以使用
man <命令>来查看各个命令的使用方法,如:man cp。
- ls(list files): 列出目录及文件名
- cd(change directory):切换目录
- cp(copy file): 复制文件或目录
- rm(remove): 删除文件或目录
- mv(move file): 移动文件与目录,或修改文件与目录的名称
- pwd(print work directory):显示当前目录
- mkdir(make directory):创建一个新的目录
- rmdir(remove directory):删除一个空的目录
3.1.2 文件查看
常见的文件查看的命令:
你可以使用
man <命令>来查看各个命令的使用方法,如:man cat。
- cat: 由第一行开始显示文件内容
- tac: 从最后一行开始显示,可以看出 tac 是 cat 的倒着写!
- nl : 显示的时候,顺道输出行号!
- more: 一页一页的显示文件内容
- less: 与 more 类似,但是比 more 更好的是,他可以往前翻页!
- head: 只看头几行
- tail: 只看尾巴几行