一、Linux背景
1.发展史
1991年10月5日,赫尔辛基大学的一名研究生Linux Benedict Torvalds宣布他编制出一种类似UNIX的小操作系统
2.开源
- Linux是一种自由和开放源代码的类UNIX操作系统,该操作系统在1991年首次发布后,在加上用户空间的应用程序之后,就称为了Linux操作系统。严格来讲,Linux只是操作系统的内核本身,但通常采用"Linux内核"来表达该意思。而Linux则常用来指代基于LInux内核的完整操作系统,它包括GUI组件和许多其他的实用工具。
- GNU通用公共许可协议(GNU General Public License,简称GPL),是一个广泛被使用的自由软件许可协议条款,GPL给予了计算机程序自由软件的定义,任何基于GPL软件开发的衍生产品在发布时必须采用GPL许可证方式,且必须公开源代码
- Linux是自由软件和开放源代码软件发展中最著名的例子。只要遵循GNU通用公共许可证,任何个人和机构都可以自由地使用Linux的所有源代码,也可以自由的修改和再发布。随着Linux操作系统飞速的发展,各种集成在Linux上的开源软件和实用工具也得到了应用和普及,因此Linux也成为开源软件的代名词。
3.官网
kernel官网https://www.kernel.org/
4.企业应用现状
Linux在服务器领域的发展
距权威部门统计,目前Linux在服务器领域已经占据了75%的份额,同时Linux在服务器市场的迅速崛起,已经引起了全球IT产业的高度关注,并以强劲的势头成为服务器操作系统领域中的中坚力量
Linux在桌面领域的发展
近年来,特别是在国内市场,Linux桌面操作系统的发展趋势非常迅猛。国内如中标麒麟Linux,红旗Linux,深度Linux等系统软件厂商都推出Linux桌面操作系统,目前已经在政府企业OEM等领域得到广泛应用。但是从系统整体的功能性能来看,Linux桌面系统与Windows来比还有一定差距,主要在系统易用性,系统管理和软硬件兼容性,软件的丰富程度等方面
Linux在移动嵌入式领域的发展
Linux的低成本,强大的定制功能以及良好的移植性能,使得Linux在嵌入式系统方面也得到广泛应用,目前Linux以广泛应用于手机,平板电脑,路由器,电视和电子游戏机等领域。在移动设备上广泛使用的Android 操作系统就是创建在Linux内核之上的。目前,Android已经成为全球最流行的智能手机操作系统。
Linux在云计算/大数据领域的发展
互联网产业迅猛发展,促使云计算、大数据产业形成并快速发展,促使云计算、大数据产业的形成并快速发展。其作为一个基于开源软件的平台,Linux占据了核心优势。
5.发行版本
Debian
Debian运行起来极为稳定,非常适合用于服务器。Debian这款操作系统适合于系统管理员和高级用户
Ubuntu
Ubuntu是Debian的一款衍生版本,也是当今最受欢迎的免费操作系统。Ubuntu侧重于它在这个市场的应用,在服务器,云计算,甚至一些运行Ubuntu Linux的移动设备上很常见。适用于新手·
红帽企业级Linux
这是第一款面向商业市场的Linux发行版。它有服务器版本,支持众多处理器架构,包括X86和X86_64
CentOS
CentOS是一款企业级Linux发行版,它使用用红帽企业级Linux中免费源代码重构而成。这款重构版本完全去掉了注册商标以及Binary程序包方面一个非常细致的变换。适用于不想支付一大笔费用,又能领略红帽企业级Linux
...
6.os概念,定位
使用计算机更好用!这是操作系统的根本要义!

二、使用Xshell远程登陆Linux
关于Linux桌面
很多朋友的Linux启动进入图形化的桌面,这个东西大家以后就可以忘记了,以后工作中没有机会使用图形化界面。
使用图形化界面会导致效率变低,有一定的安全问题等
下载安装Xshell
Xshell是一个远程终端软件,官网https://www.netsarang.com/products/xsh_overview.html
查看Linux主机ip
在终端下敲ifconfig指令,查看到ip地址
使用Xshell登录主机
在Xshell终端下敲ssh [ip],ip为刚刚看到的ifconfig的结果
如果网络通畅,将会提示输入用户名密码,输入即可正确登录。
Xshell下的复制粘贴
复制:Ctrl+insert
粘贴:shift+insert
Ctrl+c/Ctrl+v是不行的
三、Linux下的基本指令
ls 指令
语法: ls [选项] [目录或文件]
功能:对于目录,该命令列出该目录下所有子目录与文件。对于文件,将列出文件名以及其他的信息
常用选项:
-
-a 列出目录下所有文件,包括以.开头的隐含文件。
-
-d将目录像文件一样显示,而不是显示其下的文件。如:ls -d 指定目录
-
-i 输出文件的i节点的索引信息。如ls-ai指定文件
-
-k 以k字节的形式表示文件的大小
-
-l 列出文件的详细信息
-
-r 对目标进行反向排序
-
-t 以时间排序
-
-s 在l文件名后输入该文件的大小
-
-R列出所有子目录下的文件
-
-1一行之输出一个文件
[root@iZ2zeiwy4tf4rghoyh5d1yZ 118]# ls
hello2.txt hello.txt
[root@iZ2zeiwy4tf4rghoyh5d1yZ 118]# ls -a
. .. hello2.txt hello.txt
[root@iZ2zeiwy4tf4rghoyh5d1yZ 118]# ls -l
total 0
-rw-r--r-- 1 root root 0 Jan 30 23:04 hello2.txt
-rw-r--r-- 1 root root 0 Jan 30 23:02 hello.txt
[root@iZ2zeiwy4tf4rghoyh5d1yZ 118]# ls -alFn
total 0
drwxr-xr-x 2 0 0 41 Jan 30 23:04 ./
dr-xr-x---. 11 0 0 242 Jan 30 22:59 ../
-rw-r--r-- 1 0 0 0 Jan 30 23:04 hello2.txt
-rw-r--r-- 1 0 0 0 Jan 30 23:02 hello.txt
pwd指令
语法:pwd
功能:显示用户当前所在的目录
[root@iZ2zeiwy4tf4rghoyh5d1yZ dir]# pwd
/root/118/dir
cd 指令
Linux理论知识:路径的认识
- Linux系统中,磁盘上的文件和目录被组成一颗目录树,每个结点都是目录或者文件
- 其中普通文件一定是目录树的叶子节点
- 目录可能是叶子(空目录),也可能是路上节点
- 理解路径存在的意义:树状组织方式,都是为了保证快速定位查找到指定文件,而定位文件就需要具有唯一性的方案来定位文件。其中任何一个节点,都只有一个父节点,所以从根目录开始定位指定文件,路径具有唯一性。
- 绝对路径:一般从/开始,不依赖其他目录的定位文件的方式
- 相对路径:相对于当前用户所处目录,定位文件的路径方式
- 绝对路径一般不会随着用户的路径变化而丧失唯一性,一般在特定服务的配置文件中经常被使用
- 相对路径因为它的便携性,一般在命令行中使用较多


语法:cd 目录名
功能:改变工作目录,将当前的工作目录改变到指定的目录下
# 返回上级目录
[root@iZ2zeiwy4tf4rghoyh5d1yZ dir]# pwd
/root/118/dir
[root@iZ2zeiwy4tf4rghoyh5d1yZ dir]# cd ..
[root@iZ2zeiwy4tf4rghoyh5d1yZ 118]# pwd
/root/118
#绝对路径定位目录或者文件
[root@iZ2zeiwy4tf4rghoyh5d1yZ ~]# pwd
/root
[root@iZ2zeiwy4tf4rghoyh5d1yZ ~]# cd /root/118/dir
[root@iZ2zeiwy4tf4rghoyh5d1yZ dir]# pwd
/root/118/dir
#相对路径定位目录或者文件
[root@iZ2zeiwy4tf4rghoyh5d1yZ 118]# pwd
/root/118
[root@iZ2zeiwy4tf4rghoyh5d1yZ 118]# cd ../117/dir
[root@iZ2zeiwy4tf4rghoyh5d1yZ dir]# pwd
/root/117/dir
#每一次新建一个用户都会/home目录下为新用户创建新的工作目录,目录以新用户名称命名
#root用户在安装操作系统的时候,就已经内置的工作目录:/root
[root@iZ2zeiwy4tf4rghoyh5d1yZ dir]# ls /home
admin xhx_home
#返回到最近访问的目录
[root@iZ2zeiwy4tf4rghoyh5d1yZ dir]# pwd
/root/117/dir #当前在该目录下
[root@iZ2zeiwy4tf4rghoyh5d1yZ dir]# cd /root/118/dir
[root@iZ2zeiwy4tf4rghoyh5d1yZ dir]# cd - #直接可以回退到最近一次所处的目录
/root/117/dir
touch 指令
语法: touch [选项] 文件
功能:touch命令参数可更改文档或者目录的日期时间,包括存取时间和更改时间,或者新建一个不存在的文件。
常用选项:
-
-a :change only the access time
-
-m : change only the modification time
#创建普通文件
[root@iZ2zeiwy4tf4rghoyh5d1yZ 117]# ls
dir hello4.txt
[root@iZ2zeiwy4tf4rghoyh5d1yZ 117]# touch newfile.txt
[root@iZ2zeiwy4tf4rghoyh5d1yZ 117]# ls
dir hello4.txt newfile.txt#查看文件时间
[root@iZ2zeiwy4tf4rghoyh5d1yZ 117]# stat newfile.txt
File: newfile.txt
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: fd01h/64769d Inode: 454844 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2026-01-30 23:44:45.308963546 +0800
Modify: 2026-01-30 23:44:45.308963546 +0800
Change: 2026-01-30 23:44:45.308963546 +0800
Birth: -#修改文件access时间
[root@iZ2zeiwy4tf4rghoyh5d1yZ 117]# touch -a newfile.txt
[root@iZ2zeiwy4tf4rghoyh5d1yZ 117]# stat newfile.txt
File: newfile.txt
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: fd01h/64769d Inode: 454844 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2026-01-30 23:47:09.285242975 +0800
Modify: 2026-01-30 23:44:45.308963546 +0800
Change: 2026-01-30 23:47:09.285242975 +0800
Birth: -#修改文件modify时间
[root@iZ2zeiwy4tf4rghoyh5d1yZ 117]# touch -m newfile.txt
[root@iZ2zeiwy4tf4rghoyh5d1yZ 117]# stat newfile.txt
File: newfile.txt
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: fd01h/64769d Inode: 454844 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2026-01-30 23:47:09.285242975 +0800
Modify: 2026-01-30 23:47:56.274639641 +0800
Change: 2026-01-30 23:47:56.274639641 +0800
Birth: -
mkdir指令
语法: mkdir [选项] dirname...
功能:在当前目录下创建一个名为 dirname 的目录
常用选项:
-
-p/--parents:可以是一个路径名称。此时若路径中的某些目录尚不存在,加上该选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录
#创建普通空目录
[root@iZ2zeiwy4tf4rghoyh5d1yZ 118]# ls
dir hello2.txt hello.txt
[root@iZ2zeiwy4tf4rghoyh5d1yZ 118]# mkdir mydir
[root@iZ2zeiwy4tf4rghoyh5d1yZ 118]# ls -l
total 0
drwxr-xr-x 2 root root 24 Jan 30 23:14 dir
-rw-r--r-- 1 root root 0 Jan 30 23:04 hello2.txt
-rw-r--r-- 1 root root 0 Jan 30 23:02 hello.txt
drwxr-xr-x 2 root root 6 Jan 31 14:03 mydir#递归建立多个目录,创建指定路径
[root@iZ2zeiwy4tf4rghoyh5d1yZ 118]# mkdir -p a/b/c/d
[root@iZ2zeiwy4tf4rghoyh5d1yZ 118]# tree
.
├── a
│ └── b
│ └── c
│ └── d
├── dir
│ └── hello3.txt
├── hello2.txt
├── hello.txt
└── mydir6 directories, 3 files
rmdir指令&&rm指令
rmdir是一个与mkdir相对应的命令,mkdir是建立目录,而rmdir是删除
语法:rmdir [-p] [dirName]
适用对象:具有当前目录操作权限的所有使用者
功能:删除空目录
常用选项:
-
-p 当子目录被删除后如果父目录也变成空目录的话,就连父目录一起删除。
#删除空目录
[root@iZ2zeiwy4tf4rghoyh5d1yZ 118]# clear
[root@iZ2zeiwy4tf4rghoyh5d1yZ 118]# ll
total 0
drwxr-xr-x 3 root root 15 Jan 31 14:05 a
drwxr-xr-x 2 root root 24 Jan 30 23:14 dir
-rw-r--r-- 1 root root 0 Jan 30 23:04 hello2.txt
-rw-r--r-- 1 root root 0 Jan 30 23:02 hello.txt
drwxr-xr-x 2 root root 6 Jan 31 14:03 mydir
[root@iZ2zeiwy4tf4rghoyh5d1yZ 118]# tree mydir/
mydir/0 directories, 0 files
[root@iZ2zeiwy4tf4rghoyh5d1yZ 118]# rmdir mydir
[root@iZ2zeiwy4tf4rghoyh5d1yZ 118]# ll
total 0
drwxr-xr-x 3 root root 15 Jan 31 14:05 a
drwxr-xr-x 2 root root 24 Jan 30 23:14 dir
-rw-r--r-- 1 root root 0 Jan 30 23:04 hello2.txt
-rw-r--r-- 1 root root 0 Jan 30 23:02 hello.txt#删除路径
[root@iZ2zeiwy4tf4rghoyh5d1yZ 118]# ll
total 0
drwxr-xr-x 3 root root 15 Jan 31 14:05 a
drwxr-xr-x 2 root root 24 Jan 30 23:14 dir
-rw-r--r-- 1 root root 0 Jan 30 23:04 hello2.txt
-rw-r--r-- 1 root root 0 Jan 30 23:02 hello.txt
[root@iZ2zeiwy4tf4rghoyh5d1yZ 118]# tree a
a
└── b
└── c
└── d3 directories, 0 files
[root@iZ2zeiwy4tf4rghoyh5d1yZ 118]# rmdir -p a/b/c/d
[root@iZ2zeiwy4tf4rghoyh5d1yZ 118]# ll
total 0
drwxr-xr-x 2 root root 24 Jan 30 23:14 dir
-rw-r--r-- 1 root root 0 Jan 30 23:04 hello2.txt
-rw-r--r-- 1 root root 0 Jan 30 23:02 hello.txt#指定路径中有不为空的路径,便无法删除
[root@iZ2zeiwy4tf4rghoyh5d1yZ 118]# rmdir -p a/b/c/d
rmdir: failed to remove directory 'a/b/c': Directory not empty
[root@iZ2zeiwy4tf4rghoyh5d1yZ 118]# tree a
a
└── b
└── c
└── name.txt2 directories, 1 file
rm命令可以同时删除文件或者目录
语法:rm[-f-i-r-v][dirName/dir]
适用对象:所有使用者
功能:删除文件或目录
常用选项:
-
-f 即是文件属性为只读(即写保护),亦直接删除
-
-i 删除前逐一询问确认
-
-r 删除目录及其下所有文件
#删除普通文件
[root@iZ2zeiwy4tf4rghoyh5d1yZ 118]# ll
total 0
drwxr-xr-x 3 root root 15 Jan 31 14:17 a
drwxr-xr-x 2 root root 24 Jan 30 23:14 dir
-rw-r--r-- 1 root root 0 Jan 30 23:04 hello2.txt
-rw-r--r-- 1 root root 0 Jan 30 23:02 hello.txt
[root@iZ2zeiwy4tf4rghoyh5d1yZ 118]# rm hello.txt
rm: remove regular empty file 'hello.txt'? yes
[root@iZ2zeiwy4tf4rghoyh5d1yZ 118]# ls
a dir hello2.txt#删除目录文件
[root@iZ2zeiwy4tf4rghoyh5d1yZ 118]# ls
a dir hello2.txt
[root@iZ2zeiwy4tf4rghoyh5d1yZ 118]# rm dir
rm: cannot remove 'dir': Is a directory
[root@iZ2zeiwy4tf4rghoyh5d1yZ 118]# rm -r dir
rm: remove directory 'dir'? yes
[root@iZ2zeiwy4tf4rghoyh5d1yZ 118]# ls
a hello2.txt#删除普通文件前询问
[root@iZ2zeiwy4tf4rghoyh5d1yZ 118]# rm -i hello2.txt
rm: remove regular empty file 'hello2.txt'? yes
[root@iZ2zeiwy4tf4rghoyh5d1yZ 118]# ls
a#删除目录前询问
[root@iZ2zeiwy4tf4rghoyh5d1yZ 118]# rm -ir a
rm: descend into directory 'a'? y
rm: descend into directory 'a/b'? y
rm: remove regular empty file 'a/b/hello.txt'? y
rm: remove directory 'a/b'? y
rm: remove directory 'a'? y
[root@iZ2zeiwy4tf4rghoyh5d1yZ 118]# ls#递归强制删除非空目录
[root@iZ2zeiwy4tf4rghoyh5d1yZ 118]# ls
a
[root@iZ2zeiwy4tf4rghoyh5d1yZ 118]# tree a
a
├── b
│ ├── c
│ │ └── d
│ └── file2.txt
└── file1.txt3 directories, 2 files
[root@iZ2zeiwy4tf4rghoyh5d1yZ 118]# rm -f a
rm: cannot remove 'a': Is a directory
[root@iZ2zeiwy4tf4rghoyh5d1yZ 118]# rm -rf a
[root@iZ2zeiwy4tf4rghoyh5d1yZ 118]# ls
man指令
Linux的命令有很多参数,我们不可能全记住,可以通过查看联机手册获取帮助
语法: man [选项] 命令
常用选项
- -k 根据关键字搜索联机帮助
- num 只在第num章节查找
- -a 将所有章节的都显示出来,比如man printf他缺省从第一章开始搜索,知道就停止,用a选项,当按下q退出,他会继续往后面搜索,直到所有章节都搜索完毕
man 手册分为9章(不同系统可能会有所差别)
-
是普通命令
-
是系统调用,如open write之类的
-
是库函数,如printf是特殊文件,也就是/dev下的各种设备文件
-
略
-
是指文件的格式,比如passwd ,就会说明这个文件中各个字段的含义
-
是给游戏留的,由各个游戏自己定义
-
是附件还有一些变量,比如像environ这种全局变量在这里就有说明
-
是系统管理用的命令 这些命令只能由root使用,如ifconfig
-
略
[root@iZ2zeiwy4tf4rghoyh5d1yZ 118]# man printf
[root@iZ2zeiwy4tf4rghoyh5d1yZ 118]# man 2 fork
[root@iZ2zeiwy4tf4rghoyh5d1yZ 118]# man 3 printf
[root@iZ2zeiwy4tf4rghoyh5d1yZ 118]# man 7 signal
[root@iZ2zeiwy4tf4rghoyh5d1yZ 118]# man 7 environ
[root@iZ2zeiwy4tf4rghoyh5d1yZ 118]# man man
[root@iZ2zeiwy4tf4rghoyh5d1yZ 118]# man -a printf #按q后可查看下一个匹配项
cp指令
语法:cp [选项] 源文件或目录 目标文件或目录
功能:复制文件或目录
说明:
cp指令用于复制文件或目录
如果同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到此目录中
常用选项:
-
-f 或 --force 强制复制文件或目录,不论目的的文件或者目录是否已经存在
-
-i 或 --interactive 覆盖文件前先询问用户
-
-r 递归处理,将指定目录下的文件与子目录一并处理。
#普通文件
[root@iZ2zeiwy4tf4rghoyh5d1yZ 118]# touch myfile.txt
[root@iZ2zeiwy4tf4rghoyh5d1yZ 118]# echo "hello tyut">myfile.txt
[root@iZ2zeiwy4tf4rghoyh5d1yZ 118]# cat myfile.txt
hello tyut
[root@iZ2zeiwy4tf4rghoyh5d1yZ 118]# ll
total 4
-rw-r--r-- 1 root root 11 Jan 31 15:28 myfile.txt
[root@iZ2zeiwy4tf4rghoyh5d1yZ 118]# cp myfile.txt myfile-backup.txt
[root@iZ2zeiwy4tf4rghoyh5d1yZ 118]# ll
total 8
-rw-r--r-- 1 root root 11 Jan 31 15:29 myfile-backup.txt
-rw-r--r-- 1 root root 11 Jan 31 15:28 myfile.txt
[root@iZ2zeiwy4tf4rghoyh5d1yZ 118]# cat myfile-backup.txt
hello tyut#将多个文件拷贝到指定路径下
[root@iZ2zeiwy4tf4rghoyh5d1yZ 118]# mkdir dir
[root@iZ2zeiwy4tf4rghoyh5d1yZ 118]# ls
dir myfile-backup.txt myfile.txt
[root@iZ2zeiwy4tf4rghoyh5d1yZ 118]# cp *.txt dir #*表示通配符
[root@iZ2zeiwy4tf4rghoyh5d1yZ 118]# ll
total 8
drwxr-xr-x 2 root root 49 Jan 31 15:32 dir
-rw-r--r-- 1 root root 11 Jan 31 15:29 myfile-backup.txt
-rw-r--r-- 1 root root 11 Jan 31 15:28 myfile.txt
[root@iZ2zeiwy4tf4rghoyh5d1yZ 118]# tree dir
dir
├── myfile-backup.txt
└── myfile.txt0 directories, 2 files
#cp如果目标文件存在,就覆盖
[root@iZ2zeiwy4tf4rghoyh5d1yZ 118]# echo "hi tyut">myfile.txt
[root@iZ2zeiwy4tf4rghoyh5d1yZ 118]# cat myfile.txt
hi tyut
[root@iZ2zeiwy4tf4rghoyh5d1yZ 118]# cp myfile.txt myfile-backup.txt
cp: overwrite 'myfile-backup.txt'? yes
[root@iZ2zeiwy4tf4rghoyh5d1yZ 118]# cat myfile-backup.txt
hi tyut#拷贝前询问
[root@iZ2zeiwy4tf4rghoyh5d1yZ 118]# cp -i myfile.txt myfile-backup.txt
cp: overwrite 'myfile-backup.txt'? y#递归强制拷贝整个目录
[root@iZ2zeiwy4tf4rghoyh5d1yZ 118]# tree dir
dir
├── dir1
│ └── file.txt
├── myfile-backup.txt
└── myfile.txt1 directory, 3 files
[root@iZ2zeiwy4tf4rghoyh5d1yZ 118]# cp -fr dir dir-backup
[root@iZ2zeiwy4tf4rghoyh5d1yZ 118]# tree
.
├── dir
│ ├── dir1
│ │ └── file.txt
│ ├── myfile-backup.txt
│ └── myfile.txt
├── dir-backup
│ ├── dir1
│ │ └── file.txt
│ ├── myfile-backup.txt
│ └── myfile.txt
├── myfile-backup.txt
└── myfile.txt
mv指令
mv命令是move的缩写,可以用来移动文件或者将文件改名,经常用来备份文件或者目录
语法:mv [选项] 源文件或目录 目标文件或目录
功能:
- 视为mv命令中的第二个参数类型的不同(是目标文件还是目标目录),mv命令将文件重命名或将其移动到一个新的目录中。
- 当第二个参数类型是文件时 ,mv命令完成文件重命名,此时,源文件只能有一个(也可以是原目录名),它将所给的源文件或目录重命名为给定的目标文件名。
- 当第二个参数是已经存在的目录名称时,源文件或目录参数可以有多个,mv命令将各参数指定的源文件均移到目标目录中。
常用选项:
-
-f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖
-
-i :若目标文件(destination)已经存在,就会询问是否覆盖!
#更改名称(文件->文件)
[root@iZ2zeiwy4tf4rghoyh5d1yZ 121]# touch myfile.txt
[root@iZ2zeiwy4tf4rghoyh5d1yZ 121]# ll
total 0
-rw-r--r-- 1 root root 0 Jan 31 16:56 myfile.txt
[root@iZ2zeiwy4tf4rghoyh5d1yZ 121]# mv myfile.txt yourfile.txt
[root@iZ2zeiwy4tf4rghoyh5d1yZ 121]# ll
total 0
-rw-r--r-- 1 root root 0 Jan 31 16:56 yourfile.txt
[root@iZ2zeiwy4tf4rghoyh5d1yZ 121]##如果当前路径存在同名文件,改名即覆盖
[root@iZ2zeiwy4tf4rghoyh5d1yZ 121]# touch myfile.txt
[root@iZ2zeiwy4tf4rghoyh5d1yZ 121]# ll
total 0
-rw-r--r-- 1 root root 0 Jan 31 16:58 myfile.txt
-rw-r--r-- 1 root root 0 Jan 31 16:56 yourfile.txt
[root@iZ2zeiwy4tf4rghoyh5d1yZ 121]# mv myfile.txt yourfile.txt
mv: overwrite 'yourfile.txt'? y
[root@iZ2zeiwy4tf4rghoyh5d1yZ 121]# ls
yourfile.txt#如果当前路径存在同名文件,改名前可以添加i选项,让系统提出警告供用户选择
[root@iZ2zeiwy4tf4rghoyh5d1yZ 121]# tree .
.
├── dir
│ └── myfile.txt
├── myfile.txt
└── yourfile.txt1 directory, 3 files
[root@iZ2zeiwy4tf4rghoyh5d1yZ 121]# mv -i myfile.txt dir
mv: overwrite 'dir/myfile.txt'? y
[root@iZ2zeiwy4tf4rghoyh5d1yZ 121]# tree .
.
├── dir
│ └── myfile.txt
└── yourfile.txt1 directory, 2 files
#mv整个目录
[root@iZ2zeiwy4tf4rghoyh5d1yZ 121]# touch myfile.txt
[root@iZ2zeiwy4tf4rghoyh5d1yZ 121]# mkdir temp
[root@iZ2zeiwy4tf4rghoyh5d1yZ 121]# ll
total 0
-rw-r--r-- 1 root root 0 Jan 31 17:04 myfile.txt
drwxr-xr-x 2 root root 6 Jan 31 17:04 temp
[root@iZ2zeiwy4tf4rghoyh5d1yZ 121]# mv myfile.txt temp
[root@iZ2zeiwy4tf4rghoyh5d1yZ 121]# ls
temp
[root@iZ2zeiwy4tf4rghoyh5d1yZ 121]# mv temp ../
[root@iZ2zeiwy4tf4rghoyh5d1yZ 121]# ls
[root@iZ2zeiwy4tf4rghoyh5d1yZ 121]# ls -d ../temp
../temp
cat 指令
语法:cat [选项] [文件]
功能:查看目标文件的内容
常用选项:
-
-b 对非空行输出行编号,空行不做编号
-
-n 对输出的所有行编号
-
-s 不输出多行空行
#命令行构建多行文本
[root@iZ2zeiwy4tf4rghoyh5d1yZ 119]# cnt=0; while [ $cnt -le 10 ]; do echo "hi tyut";let cnt++ ; done > temp.txt#测试cat基本命令
[root@iZ2zeiwy4tf4rghoyh5d1yZ 119]# cat temp.txt
hi tyut
hi tyut
hi tyut
hi tyut
hi tyut
hi tyut
hi tyut
hi tyut
hi tyut
hi tyut
hi tyut#cat 输出携带行号
[root@iZ2zeiwy4tf4rghoyh5d1yZ 119]# cat -b temp.txt
1 hi tyut
2 hi tyut
3 hi tyut
4 hi tyut
5 hi tyut
6 hi tyut
7 hi tyut
8 hi tyut
9 hi tyut
10 hi tyut
11 hi tyut修改temp.txt 使其携带多行空行
[root@iZ2zeiwy4tf4rghoyh5d1yZ 119]# vim temp.txt
#测试 -b 对非空输出行编号
[root@iZ2zeiwy4tf4rghoyh5d1yZ 119]# cat -b temp.txt1 hi tyut 2 hi tyut 3 hi tyut 4 hi tyut 5 hi tyut 6 hi tyut 7 hi tyut 8 hi tyut 9 hi tyut 10 hi tyut 11 hi tyut#测试 -n 对输出的所有行编号
[root@iZ2zeiwy4tf4rghoyh5d1yZ 119]# cat -n temp.txt
1
2 hi tyut
3 hi tyut
4
5
6 hi tyut
7
8
9 hi tyut
10
11 hi tyut
12
13 hi tyut
14
15
16 hi tyut
17
18
19 hi tyut
20 hi tyut
21
22 hi tyut
23 hi tyut#测试 -s 不输出多行空行,多行空行压缩成一行
[root@iZ2zeiwy4tf4rghoyh5d1yZ 119]# cat -s temp.txthi tyut
hi tyuthi tyut
hi tyut
hi tyut
hi tyut
hi tyut
hi tyut
hi tyuthi tyut
hi tyut
more 指令
语法: more[选项]
功能:more命令 功能类似cat
常用选项:
-
-n 指定输出行数
-
q 退出more
[root@iZ2zeiwy4tf4rghoyh5d1yZ 119]# more -5 file.txt
hi tyut
hi tyut
hi tyut
hi tyut
hi tyut
less 指令
less工具也是对文件或其他输出进行分页显示的工具,应该说是Linux正统查看文件内容的工具,功能非常强大
less的用法比起more更加有弹性,在more的时候我们并没有办法向前翻,只能往后看
但若使用了less时,就可以使用[pageup][pagedown] 等案件的功能来往前往后翻看文件,更容易用来查看一个文件的内容
除此之外,在less里头可以拥有更多搜索的功能,不只可以向下搜,也可以向上搜
语法: less [参数] 文件
功能:less和more类似,但使用less可以随意浏览文件,而more仅仅能向前移动,却不能向后移动,而且less在查看前不会加载整个文件。
选项:
-
-i 忽略搜索时的大小写
-
-N 显示每行的行号
-
/字符串:向下搜索"字符串"的功能
-
?字符串:向上搜索"字符串"的功能
-
n:重复前一个搜索(与/或?有关)
-
N:反向重复前一个搜索(与/或?有关)
-
q:quit
#命令行输出多行文本
[root@iZ2zeiwy4tf4rghoyh5d1yZ 119]# cnt=0; while [ cnt -le 2000 ]; do echo "hi cnt";let cnt++ ; done > file.txt#测试搜索和-N等功能
[root@iZ2zeiwy4tf4rghoyh5d1yZ 119]# less -N file.txt
1 hi 0
2 hi 1
3 hi 2
4 hi 3
5 hi 4
6 hi 5
7 hi 6
8 hi 7
9 hi 8
10 hi 9
11 hi 10
12 hi 11
13 hi 12
14 hi 13
15 hi 14
16 hi 15
17 hi 16
18 hi 17
19 hi 18#综合问题
#如何显示文件的[180,200]行的内容
[root@iZ2zeiwy4tf4rghoyh5d1yZ 119]# head -200 file.txt | tail -20
hi 180
hi 181
hi 182
hi 183
hi 184
hi 185
hi 186
hi 187
hi 188
hi 189
hi 190
hi 191
hi 192
hi 193
hi 194
hi 195
hi 196
hi 197
hi 198
hi 199
head 指令
head与tail就像它的名字一样浅显易懂,它是用来显示开头或结尾某个数量的文字区块,head用来显示档案的开头至标准输出中,而tail想当然就是看档案的结尾。
语法:
head [参数]...[文件]...
功能:
head用来显示档案的开头至标准输出中,默认head命令打印其相应文件的开头10行
选项:
-
-n<行数>显示的行数
[root@iZ2zeiwy4tf4rghoyh5d1yZ 119]# head file.txt
hi 0
hi 1
hi 2
hi 3
hi 4
hi 5
hi 6
hi 7
hi 8
hi 9
[root@iZ2zeiwy4tf4rghoyh5d1yZ 119]# head -5 file.txt
hi 0
hi 1
hi 2
hi 3
hi 4
tail指令
tail命令从指定点开始将文件写到标准输出。使用tail命令的-f选项可以方便的查阅正在改变的日志文件,tail-f filename会把filename里最尾部的内容显示在屏幕上,并且不断刷新,使你看到最新的文件内容。
语法:tail 必要参数 [文件]
功能:用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理。常用于查看日志文件。
选项:
-
-f 循环读取
-
-n<行数>显示行数
[root@iZ2zeiwy4tf4rghoyh5d1yZ 119]# tail file.txt
hi 1991
hi 1992
hi 1993
hi 1994
hi 1995
hi 1996
hi 1997
hi 1998
hi 1999
hi 2000
[root@iZ2zeiwy4tf4rghoyh5d1yZ 119]# tail -3 file.txt
hi 1998
hi 1999
hi 2000
date 指令
指定格式显示时间: date +%Y:%m:%d
用法: date [OPTION] ... [+FORMAT]
1.在显示方面,使用者可以设定预显示的格式,格式设定为一个加号后接数个标记,其中常用的标记列表如下:
- %H:小时(00..23)
- %M: 分钟(00..59)
- %S: 秒(00..59)
- %X:相当于%H:%M :%S
- %m:月份(01..12)
- %Y: 完整年份(0000..9999)
- %F: 相当于%Y-%m-%d
2. 在设定时间方面
date-s //设置当前时间,只有root权限才能设置,其他只能查看。
3.时间戳
-
时间->时间戳: date +%s
-
时间戳->时间: date -d@150874939
-
Unix时间戳是从1970年1月1日开始所经过的秒数,不考虑润秒
#显示常规时间
[root@iZ2zeiwy4tf4rghoyh5d1yZ 119]# date
Sat Jan 31 19:42:16 CST 2026
[root@iZ2zeiwy4tf4rghoyh5d1yZ 119]# date +%Y/%m/%d
2026/01/31
[root@iZ2zeiwy4tf4rghoyh5d1yZ 119]# date +%Y/%m/%d-%H:%M:%S
2026/01/31-19:43:21
[root@iZ2zeiwy4tf4rghoyh5d1yZ 119]# date +%X-%F
07:43:40 PM-2026-01-31#显示时间戳
[root@iZ2zeiwy4tf4rghoyh5d1yZ 119]# date +%s
1769859870#时间戳转化为可视时间
[root@iZ2zeiwy4tf4rghoyh5d1yZ 119]# date +%F-%X -d @0
1970-01-01-08:00:00 AM
[root@iZ2zeiwy4tf4rghoyh5d1yZ 119]# date +%F-%X -d @1769859870
2026-01-31-07:44:30 PM
cal 指令
cal命令可以用来显示公历(阳历)日历。公历是现在国际通用的历法。"阳历"又名"太阳历",以地球绕太阳一周为一年,为西方各国所通用
命令格式:cal 参数 [年份]
功能:用于查看日历等时间信息,如果只有一个参数则表示年份(1-9999),如有两个参数,则表示月份和年份
常用选项:
-
-3 显示系统前一个月,当前月,下一个月的月历
-
-j 显示在当年中的第几天
-
-y 显示当前年份的日历
[root@iZ2zeiwy4tf4rghoyh5d1yZ 119]# cal
January 2026
Su Mo Tu We Th Fr Sa
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31[root@iZ2zeiwy4tf4rghoyh5d1yZ 119]# cal -3
December 2025 January 2026 February 2026
Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
1 2 3 4 5 6 1 2 3 1 2 3 4 5 6 7
7 8 9 10 11 12 13 4 5 6 7 8 9 10 8 9 10 11 12 13 14
14 15 16 17 18 19 20 11 12 13 14 15 16 17 15 16 17 18 19 20 21
21 22 23 24 25 26 27 18 19 20 21 22 23 24 22 23 24 25 26 27 28
28 29 30 31 25 26 27 28 29 30 31[root@iZ2zeiwy4tf4rghoyh5d1yZ 119]# cal 1949
1949January February MarchSu Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
1 1 2 3 4 5 1 2 3 4 5
2 3 4 5 6 7 8 6 7 8 9 10 11 12 6 7 8 9 10 11 12
9 10 11 12 13 14 15 13 14 15 16 17 18 19 13 14 15 16 17 18 19
16 17 18 19 20 21 22 20 21 22 23 24 25 26 20 21 22 23 24 25 26
23 24 25 26 27 28 29 27 28 27 28 29 30 31
30 31
April May June
Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
1 2 1 2 3 4 5 6 7 1 2 3 4
3 4 5 6 7 8 9 8 9 10 11 12 13 14 5 6 7 8 9 10 11
10 11 12 13 14 15 16 15 16 17 18 19 20 21 12 13 14 15 16 17 18
17 18 19 20 21 22 23 22 23 24 25 26 27 28 19 20 21 22 23 24 25
24 25 26 27 28 29 30 29 30 31 26 27 28 29 30July August SeptemberSu Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
1 2 1 2 3 4 5 6 1 2 3
3 4 5 6 7 8 9 7 8 9 10 11 12 13 4 5 6 7 8 9 10
10 11 12 13 14 15 16 14 15 16 17 18 19 20 11 12 13 14 15 16 17
17 18 19 20 21 22 23 21 22 23 24 25 26 27 18 19 20 21 22 23 24
24 25 26 27 28 29 30 28 29 30 31 25 26 27 28 29 30
31
October November December
Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
1 1 2 3 4 5 1 2 3
2 3 4 5 6 7 8 6 7 8 9 10 11 12 4 5 6 7 8 9 10
9 10 11 12 13 14 15 13 14 15 16 17 18 19 11 12 13 14 15 16 17
16 17 18 19 20 21 22 20 21 22 23 24 25 26 18 19 20 21 22 23 24
23 24 25 26 27 28 29 27 28 29 30 25 26 27 28 29 30 31
30 31-j显示某月的天当年中的第几天
[root@iZ2zeiwy4tf4rghoyh5d1yZ 119]# cal -j 2 2026
February 2026
Sun Mon Tue Wed Thu Fri Sat
32 33 34 35 36 37 38
39 40 41 42 43 44 45
46 47 48 49 50 51 52
53 54 55 56 57 58 59
find 指令
Linux下find命令在目录结构中的搜索文件,并执行指定的操作。
Linux下find命令提供了相当多的查找条件,功能很强大。
即是系统中含有网络文件系统(NFS),find命令在该文件系统中同样有效,只要你具有相应的权限。
在运行一个非常消耗资源的find命令时,很多人都倾向于把它放在后台执行,因为遍历一个大的文件系统可能会花费很长的时间(这里指30G以上的文件系统)
语法: find pathname -options
功能:用于在文件树中查找文件,并做出相应的处理(可能访问磁盘)
常用选项:
- -name 按照文件名查找文件
其他选项需要现查,这个命令比较复杂
#在指定路径下搜索执行名称的文件或目录
[root@iZ2zeiwy4tf4rghoyh5d1yZ 119]# find find ~ -name dir
find: 'find': No such file or directory
/root/118/dir
/root/120/dir
/root/117/dir
which 指令
功能:搜索系统指定的命令
[root@iZ2zeiwy4tf4rghoyh5d1yZ 119]# which ls
alias ls='ls --color=auto'
/usr/bin/ls
[root@iZ2zeiwy4tf4rghoyh5d1yZ 119]# which pwd
/usr/bin/pwd
whereis 指令
功能:用于找到程序的源、二进制文件或手册
[root@iZ2zeiwy4tf4rghoyh5d1yZ 119]# whereis ls
ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/man1p/ls.1p.gz
alias指令
功能:++设置命令的别名++
#设置别名
[root@iZ2zeiwy4tf4rghoyh5d1yZ 119]# alias hello='pwd'
[root@iZ2zeiwy4tf4rghoyh5d1yZ 119]# hello
/root/119
[root@iZ2zeiwy4tf4rghoyh5d1yZ 119]# which hello
alias hello='pwd'
/usr/bin/pwd
#删除别名
[root@iZ2zeiwy4tf4rghoyh5d1yZ 119]# alias hello=''
[root@iZ2zeiwy4tf4rghoyh5d1yZ 119]# hello
grep 指令
语法:grep [选项] 搜索字符串 文件
功能:在文件中搜索字符串,将找到的行打印出来
常用选项:
-
-i :忽略大小写的不同,所有大小写视为相同
-
-n :顺便输出行号
-
-v :反向选择,即显示出没有搜寻字符串的那一行
#文件内容
[root@iZ2zeiwy4tf4rghoyh5d1yZ ~]# cat temp.txt
abcd
ABCD
hello
tyut
1234#基本查找
[root@iZ2zeiwy4tf4rghoyh5d1yZ ~]# grep "abcd" temp.txt
abcd#忽略大小写
[root@iZ2zeiwy4tf4rghoyh5d1yZ ~]# grep -i "abcd" temp.txt
abcd
ABCD#输出行号
[root@iZ2zeiwy4tf4rghoyh5d1yZ ~]# grep -n "e" temp.txt
3:hello#反向选择,输出行号,忽略大小写
[root@iZ2zeiwy4tf4rghoyh5d1yZ ~]# grep -ivn "a" temp.txt
3:hello
4:tyut
5:1234
top 指令
用途:用于动态查看进程活动,系统资源占用以及运行状态
top -d 1 -n 5
-d:刷新的时间间隔
-n:刷新的次数
q:退出
zip/unzip指令
语法:zip 压缩文件 .zip 目录或文件
功能: 将目录或文件压缩成zip格式
常用选项
-r:递归处理,将指定目录下的所有文件和子目录一并处理
举例
将text2目录压缩: zip test2.zip test2/*
解压到tmp目录: unzip test2.zip -d /tmp
tar 指令(*)
打包/解包,不打开它,直接看内容
语法: tar [-cxtzjvf] 文件与目录....
参数:
-
-c :建立一个压缩文件的参数指令(create的意思);
-
-x :解开一个压缩文件的参数指令
-
-t :查看tarfile里面的文件
-
-z:是否同时具有gzip属性?即是否需要用gzip压缩?
-
-j :是否同时具有bzip2的属性?即是否需要用bzip2压缩?
-
-v:压缩过程中显示文件!不建议用在背景执行过程!
-
-f : 使用档名,f之后需要立即接档名不能再加参数
-
-C:解压到指定目录
[root@iZ2zeiwy4tf4rghoyh5d1yZ d]# tar -czf test1.tgz test1
[root@iZ2zeiwy4tf4rghoyh5d1yZ d]# ls
test1 test1.tgz
[root@iZ2zeiwy4tf4rghoyh5d1yZ d]# tar -xzf test1.tgz -C ~/
[root@iZ2zeiwy4tf4rghoyh5d1yZ d]# cd ..
[root@iZ2zeiwy4tf4rghoyh5d1yZ ~]# ls
d test1
[root@iZ2zeiwy4tf4rghoyh5d1yZ ~]# tree test1
test1
├── dir
│ └── hello.txt
└── hi.txt1 directory, 2 files
bc 指令
bc命令可以很方便的进行浮点运算
[root@iZ2zeiwy4tf4rghoyh5d1yZ ~]# bc
bc 1.07.1
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006, 2008, 2012-2017 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'.
1+1
2
1+2+34
37
1.2+3.4566
4.6566
1*33
33
2*4
8
7/2
3
unname 指令
语法:unname[选项]
功能:unname用来获取电脑和操作系统的相关信息。
补充说明:uname可以显示Linux主机所用的操作系统的版本、硬件的名称等基本信息、
常用选项:
-
-a 或 -all 详细输出所有信息,依次为内核名称,主机名,内核版本号,内核版本,硬件名,处理器类型,硬件平台类型,操作系统名称
-
lsb_release -a :查看操作系统版本
[root@iZ2zeiwy4tf4rghoyh5d1yZ ~]# uname
Linux[root@iZ2zeiwy4tf4rghoyh5d1yZ ~]# uname -a
Linux iZ2zeiwy4tf4rghoyh5d1yZ 4.18.0-193.28.1.el8_2.x86_64 #1 SMP Thu Oct 22 00:20:22 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux[root@iZ2zeiwy4tf4rghoyh5d1yZ ~]# lsb_release -a
LSB Version: :core-4.1-amd64:core-4.1-noarch
Distributor ID: CentOS
Description: CentOS Linux release 8.2.2004 (Core)
Release: 8.2.2004
Codename: Core
关机 指令
语法:shutdown [选项]
常见选项:
- -h :将系统的服务停掉后,立即关机
- -r :将系统的服务停掉后,重新启动
- -t sec:-t 后面加秒数,过几秒后关机
重要的几个热键[Tab] [ctrl] +c [ctrl]+d
-
Tab\]按键具有命令补全和档案补齐的功能
-
Ctrl\] d代表着键盘输入结束 也可代替exit
Linux严格意义上说是一个操作系统,我们称之为"核心(kernel)",但我们一般用户,不能直接使用kernel。而是通过kernel的"外壳"程序,也就是所谓的shell,来和kernel沟通。如何理解?为什么不能直接使用kernel?
从技术角度,shell的最简单定义:命令行解释器主要包含:
将使用者的命令翻译给核心(kernel)处理
同时,将核心的处理结果翻译给使用者
对比Windows GUI 我们操作Windows不是直接操作Windows内核,而是通过图像接口,点击,从而完成我们的操作
shell对于Linux,有着相同的作用,主要对我们的指令进行解析,解析指令给linux内核。反馈结果在通过内核运行输出结果,通过shell解析给用户。
shell相当于一个翻译官。