文章目录
一、为什么要使用Linux
Linux的几个优点:
- 免费
- 很多软件原生是在Linux下运行的,庞大的社区支持,生态环境好。
- 开源,可被定制,开放,多用户的网络操作系统。
- 相对安全稳定
更详细请参考:Linux 作为服务器操作系统的优势是什么?
二、Linux基础知识
Linux系统的组成:
- linux内核(linus 团队管理)
- shell:用户与内核交互的接口
- 文件系统:ext3、ext4等。windows 有 fat32 、ntfs
- 第三方应用软件
2.1 shell的基本知识
Shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口(命令解释器)
shell可以执行内部命令、应用程序、shell脚本;
我们利用Shell可以干下面这些事了:
- 命令行解释(这是用得最多的!)
- 命令的多种执行顺序
- 通配符( wild-card characters )
- 命令补全、别名机制、命令历史
- I/O重定向( Input/output redirection )
- 管道( pipes )
- 命令替换( 或$( ) )
- Shell编程语言( Shell Script )
2.2 Linux基本目录结构
Linux 文件系统是一个目录树的结构,文件系统结构从一个根目录开始,根目录下可以有任意多个文件和子目录,子目录中又可以有任意多个文件和子目录
- bin(binary) 存放二进制可执行文件(ls,cat,mkdir等)
- boot 存放用于系统引导时使用的各种文件
- dev(device) 用于存放设备文件
- etc(editable Text Configuration) 存放系统配置文件
- home 存放所有用户文件的根目录
- lib 存放跟文件系统中的程序运行所需要的共享库及内核模块
- mnt(Mount) 系统管理员安装临时文件系统的安装点
- opt(optional application software packages) 额外安装的可选应用程序包所放置的位置
- proc(process information pseudo-file system) 虚拟文件系统,存放当前内存的映射
- root 超级用户目录
- sbin 存放二进制可执行文件,只有root才能访问
- tmp 用于存放各种临时文件
- usr 用于存放系统应用程序,比较重要的目录/usr/local 本地管理员软件安装目录
- var 用于存放运行时需要改变数据的文件
2.3 命令基本格式
cmd [options] [arguments]
,options称为选项,arguments称为参数。选项和参数都作为Shell命令执行时的输入,它们之间用空格分隔开。
-
Linux是区分大小写的
一般来说,后面跟的选项如果单字符选项前使用一个减号 -;单词选项前使用两个减号- -
-
这是一般的情况,有些命令还是不归属这种规律的(相对较少)~~~
-
例子:
ls -a
和ls --all
,a 单个字符使用一个 -,一个单词all 使用两个- -
在Linux中,可执行的文件也进行了分类:
- 内置命令:出于效率的考虑,将一些常用命令的解释程序构造在Shell内部。
- 外置命令:存放在/bin、/sbin目录下的命令
- 实用程序:存放在/usr/bin、/usr/sbin、/usr/share、/usr/local/bin等目录下的实用程序
- 用户程序:用户程序经过编译生成可执行文件后,可作为Shell命令运行
- Shell脚本:由Shell语言编写的批处理文件,可作为Shell命令运行
2.4 通配符
学过一些正则表达式的或者有点基础的同学对通配符应该就不陌生的了,在Linux也有通配符(在搜索的时候挺有用的)
- *:匹配任何字符和任何数目的字符
- ?:匹配单一数目的任何字符
- [ ]:匹配[ ]之内的任意一个字符
- [! ]:匹配除了[! ]之外的任意一个字符,!表示非的意思
2.5文件的类型
在Linux下文件的类型有这么多:
-
普通文件
-
-
目录
d
-
符号链接
l
- 硬链接: 与普通文件没什么不同,inode 都指向同一个文件在硬盘中的区块
- 软链接: 保存了其代表的文件的绝对路径,是另外一种文件,在硬盘上有独立的区块,访- 问时替换自身路径(简单地理解为 Windows 中常见的快捷方式)。
-
字符设备文件
c
-
块设备文件
b
-
套接字
s
-
命名管道
p
我们常见的就是普通文件,目录和符号链接。其他的了解一下即可~
符号链接参考资料:
“软链接”和“硬链接”的区别
2.6 用户主目录
可能在网上查阅资料的时候会出现用户主目录这么一个名词,那他是什么呢???
前面已经说了,我们的Linux是多用户的网络系统!所以,我们可以在Linux下创建多个用户,每个用户都会有自己专属的空间。
- 所以,在创建用户时,系统管理员会给每个用户建立一个主目录,通常在/home/目录下
- 比如:用户osmond的主目录为:
/home/osmond
用户对自己主目录的文件拥有所有权,可以在自己的主目录下进行相关操作。
三、常用的命令
3.1常用的文件、目录操作命令
这是我们使用得最多的命令了,Linux最基础的命令!
- 可用
pwd
命令查看用户的当前目录 - 可用
cd
命令来切换目录 .
表示当前目录..
表示当前目录的上一级目录(父目录)-
表示用 cd 命令切换目录前所在的目录- ~ 表示用户主目录的绝对路径名
绝对路径:
- 以斜线(/)开头 ,描述到文件位置的完整说明 ,任何时候你想指定文件名的时候都可以使用
相对路径 :
- 不以斜线(/)开头 ,指定相对于你的当前工作目录而言的位置 ,可以被用作指定文件名的简捷方式
tips:输入命令的时候要常用tab键来补全
ls
:显示文件或目录信息mkdir
:当前目录下创建一个空目录rmdir
:要求目录为空touch
:生成一个空文件或更改文件的时间- 如果文件不存在时不进行文件创建需要加上 -c 选项;
- 如果我们只想改变文件的访问时间,只需加上 -a 选项即可;
- 如果我们只想改变文件的修改时间,只需加上 -m 选项即可;
- 更改文件权限,只会更改Ctime
- 不管是不带选项,还是带上 -a 或 -m 选项,都会将文件相应的时间改为当前系统时间戳。那如果我们想改为自定义的时间戳可以 加上 -t 选项(格式:[[CC]YY]MMDDhhmm [.SS]) 或者 加上 -d 选项(格式:日-月-年)
cp
:复制文件或目录mv
:移动文件或目录、文件或目录改名rm
:删除文件或目录ln
:建立链接文件find
:查找文件
find -name <文件名>
:会输出查找的文件所在的目录,可以用到通配符。
-exec {} \;
(注意{}
与\
之间有个空格)是让查询出来的结果显示出来,一条一条刷出来,如果还想查看详细信息的话,可以在添加一个-ls
,可能有的版本是-ls -l
file/stat
:查看文件类型或文件属性信息cat
:查看文本文件内容more
:可以分页看less
:不仅可以分页,还可以方便地搜索,回翻等操作tail -10
: 查看文件的尾部的10行head -20
:查看文件的头部20行echo
:把内容重定向到指定的文件中 ,有则打开,无则创建管道命令 |
:将前面的结果给后面的命令,例如:ls -la | wc
,将ls的结果加油wc命令来统计字数重定向 > 是覆盖模式,>> 是追加模式
,例如:echo "Java3y,zhen de hen xihuan ni" > qingshu.txt
把左边的输出放到右边的文件里去
学了这些命令我们能干嘛?其实就是在Windows下复制文件、粘贴文件、创建文件、查看文件这几种~~~
>和>>有何区别?
答:>是覆盖方式重定向到新的文件;>>是以补充方式,添加到原文件的末尾。
通过管道和more命令,浏览文件列表方便在哪里?
答:对于文件列表超出一个屏幕显示的情况,这种方式可以分屏浏览,比较方便。
3.2文件打包和压缩命令
在Windows操作系统下,我们会使用WinRAR或者快压等等的压缩软件来进行压缩或者解压。
在Linux下当然也存在压缩或解压的操作咯,下面我们就来学习一下在Linux下是怎么压缩和解压的!
压缩的方式也是有好几种,我们常用的有下面这三种:
- gzip
- bzip2
- tar
常用的压缩的命令就有:
- gzip filename
- bzip2 filename
- tar -czvf filename
常用的解压命令有:
- gzip -d filename.gz
- bzip2 -d filename.bz2
- tar -xzvf filename.tar.gz
tar
- c 创建
- t 列出
- x 解压
- f 文件名称
- C 解压到指定目录
- z 采用gzip压缩
- j 采用bzip2压缩
- J 采用xz进行压缩
打包 tar cvf filename.tar /path
打包并压缩成gzip格式 tar czvf filename.tar.gz /path
解压到指定文件夹 tar xvf filename.tar /path
查看压缩包内容但不解压 tar tvf filename.tar