走近Linux系统
开机登录
开机会启动许多程序。它们在Windows叫做"服务"(service),在Linux就叫做"守护进程"(daemon)。
开机成功后,它会显示一个文本登录界面,这个界面就是我们经常看到的登录界面,在这个登录界面中会提示用户输入用户名,而用户输入的用户将作为参数传给login程序来验证用户的身份,密码是不显示的,输完回车即可!
一般来说,用户的登录方式有三种:
- 命令行登录
- ssh登录
- 图形界面登录
最高权限账户为 root,可以操作一切!
关机
在linux领域内大多用在服务器上,很少遇到关机的操作。毕竟服务器上跑一个服务是永无止境的,除非特殊情况下,不得已才会关机。
关机指令为:shutdown ;
sync # 将数据由内存同步到硬盘中。
shutdown # 关机指令,你可以man shutdown 来看一下帮助文档。例如你可以运行如下命令关机:
shutdown –h 10 # 这个命令告诉大家,计算机将在10分钟后关机
shutdown –h now # 立马关机
shutdown –h 20:25 # 系统会在今天20:25关机
shutdown –h +10 # 十分钟后关机
shutdown –r now # 系统立马重启
shutdown –r +10 # 系统十分钟后重启
reboot # 就是重启,等同于 shutdown –r now
halt # 关闭系统,等同于shutdown –h now 和 poweroff
最后总结一下,不管是重启系统还是关闭系统,首先要运行 sync 命令,把内存中的数据写到磁盘中。
系统目录结构
1、一切皆文件
2、根目录/,所有的文件都挂载在这个结点下
登录系统后,在当前命令窗口下输入命令:
ls /
你会看到如下图所示:
树状目录结构:(Linux的一切资源都挂载在这个 / 根节点下)
以下是对这些目录的解释:
- /bin:bin是Binary的缩写, 这个目录存放着最经常使用的命令。
- /boot: 这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。
- /dev : dev是Device(设备)的缩写, 存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的。
- /etc: 这个目录用来存放所有的系统管理所需要的配置文件和子目录。
- /home:用户的主目录,在Linux中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。
- /lib:这个目录里存放着系统最基本的动态连接共享库,其作用类似于Windows里的DLL文件。
- /lost+found:这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。(存放突然关机的文件)
- /media:linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux会把识别的设备挂载到这个目录下。
- /mnt:系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容了。(我们后面回将本地的文件挂在在这个目录下)
- /opt:这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。
- /proc:这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。
- /root:该目录为系统管理员,也称作超级权限者的用户主目录。
- /sbin:s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。
- /srv:该目录存放一些服务启动之后需要提取的数据。
- /sys:这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统 sysfs 。
- /tmp:这个目录是用来存放一些临时文件的。用完即丢的文件,可以放在这个目录下。
- /usr:这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录。
- /usr/bin: 系统用户使用的应用程序。
- /usr/sbin: 超级用户使用的比较高级的管理程序和系统守护程序。
- /usr/src: 内核源代码默认的放置目录。
- /var:这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。
- /run:是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。
Linux的常用命令
基础命令
date :显示系统当前的日期和时间
pwd :显示当前工作路径
cd :切换当前路径
cal :显示日历
who :显示当前已经登陆到系统的所有用户名、登陆终端以及登陆时间
wc :统计给定文件的行数、子树、字符数,参数-l标识统计行数;-w表示统计单词数;-c表示统计字符数
uname :显示操作系统当前信息
clear :刷新屏幕,清空屏幕上所有的字符
命令高级操作
使用历史命令
- 如果需要使用前期使用过的命令,可以通过上下箭头来选择最近使用过的命令,也可以通过history查看所有历史命令。
输入/输出重定向
- 输入重定向符号是“<”,执行该命令,“<”后面的文件替代用户从键盘输入的内容。
- 输出重定向符号是“>”和“>>”,“>”将输出的内容直接写入指定的文件,">>"叫重定向附加,即将输出内容附加在指定文件后面。
- 错误重定向“2>”,可以把命令行出错的信息保存到指定文件中。
管道功能
- Linux操作系统中,命令执行完毕会由输出信息,使用管道功能可以把一个命令作为另一个命令的输入信息,从而将两个或两个以上的简单命令连接起来,实现复杂的功能。
- 管道功能通过管道符“|”实现,管道符“|”前面命令的输出信息是后面命令的输入信息。
文件操作命令
我们知道Linux的目录结构为树状结构,最顶级的目录为根目录 /。
绝对路径:
路径的写法,由根目录 / 写起,例如:/usr/share/doc 这个目录。
相对路径:
路径的写法,不是由 / 写起,例如由 /usr/share/doc 要到 /usr/share/man 底下时,可以写成:cd …/man 这就是相对路径的写法啦!
cd :却换目录命令
./ :当前目录
cd… :返回上一级目录
处理目录的常用命令
接下来我们就来看几个常见的处理目录的命令吧:
- ls: 列出目录
- cd:切换目录
- cat:显示文件内容
- more:分屏显示大文件
- head:显示文件的开头内容
- tail:显示文件的尾部内容
- pwd:显示目前的目录
- cp: 复制文件或目录
- rm: 移除文件或目录
- mv: 移动文件与目录
- touch:创建新的空文件
- file:识别文件类型
- find:在文件系统中查找指定的文件
- grep:在指定文件中检索匹配关键字信息,并打印
- sort:将文件进行排序,并输出
- mkdir:创建一个新的目录
- rmdir:删除一个空的目录
- tar:打包
- gzip:解压缩
你可以使用 man [命令] 来查看各个命令的使用文档,如 :man cp。
ls 显示文件列表
语法:
ls [选项] [目录或文件名]
常用的选项:
命令选项 | 含义 |
---|---|
-a | 显示所有文件及目录,包括隐藏文件 |
-l | 以长格式显示目录下的内容列表,包括文件类型、访问权限、链接数、 属主、属组、文件长度,最后的修改时间、文件名 |
-r/-R | 递归显示指定目录下的所有文件及子目录 |
cd 切换工作目录值指定目录
cd 表示切换到用户主目录
cd ~ 表示切换到用户主目录
cd . 表示当前目录
cd .. 表示切换到上一级目录
cd / 表示切换到根目录
cat 显示文件内容
可以利用输入/输出重定向功能建立小型文件或将两个文件连接起来。
语法:
cd [选项] [文件名]
常用的选项:
命令选项 | 含义 |
---|---|
-n | 显示文件时加行号 |
more 分屏显示大文件
当显示满一屏后停下来,并且在屏幕的底部出现一行提示信息,给出至今已显示的该文本的百分比,按空格键显示文本的下一屏内容;按Enter键显示文本的下一行内容;按B键显示下一屏内容;按Q键退出more命令。
head 显示文件的开头内容
在默认情况下,head命令显示文件的头10行内容。
tail 显示文件中尾部内容
在默认情况下,tail命令显示文件的末尾10行内容
cp 将一个多多个源文件(或目录)复制到指定目录中
语法:
cp [选项] 源文件或目录 目标文件或目录
常用的选项:
命令选项 | 含义 |
---|---|
-f | 强行复制文件或目录,不论目标文件或目录是否已存在 |
-i | 覆盖既有文件之前先询问用户 |
-r/-R | 递归处理,将指定目录下的所有文件与子目录一并处理 |
mv 将文件从一个目录移到另一个目录中,或对文件或目录重新命名
语法:
mv [选项] 源文件或目录 目标文件或目录
常用的选项:
命令选项 | 含义 |
---|---|
-f | 若目标文件或目录与现有的文件或目录重复,则直接覆盖现有的文件或目录 |
-i | 交互式操作,覆盖前先询问用户,可以选择"y"或"n" |
rm 删除一个目录中的一个或多个文件目录,也可以将某个目录及其下属的所有文件和子目录均删除
语法:
rm [选项] 文件或目录列表
常用的选项:
命令选项 | 含义 |
---|---|
-f | 强行删除文件或目录 |
-i | 交互式操作,删除前先询问用户是否确认删除 |
-r/-R | 递归删除目录,将指定目录下的所有文件与子目录一并处理 |
touch 创建新的空文件或者改变已有文件的时间标签
当文件不存在时,touch命令建立一个新的空文件。
当文件已经存在时,touch命令改变改文件的创建日期。
语法:
touch [选项] 文件名
file 识别问啊金类型,也可用来辨别一些文件的编码格式
可以使用file命令通过查看文件的头部信息来获取文件类型
find 在文件系统中查找指定的文件,可以根据文件的名称、大小、建立时间等信息查找文件
语法:
find [目录列表] [文件的匹配标准]
常用的匹配标准:
匹配标准 | 含义 |
---|---|
-name | 指定文件名字符串作为寻找文件的匹配标准,可用通配符 * 和 ? |
-type | 查找符合指定的文件类型的文件,如f(普通文件)、d(目录)等等 |
-perm | 查找符合指定权限数值的文件或目录 |
-links | 查找符合指定的硬链接数目的文件或目录 |
-size | 查找符合指定的文件大小的文件,单位可以为c—字节、w—字(2字节)等等, 可用“+”表示大于,“-”表示小于,“±”表示等于 |
-atime | 查找在指定时间曾被存取过的文件或目录,单位以天计算 |
-mtime | 查找在指定时间曾被更改过的文件或目录,单位以天计算 |
-user | 查找符合指定的拥有者名称的文件或目录 |
-group | 查找符合指定的群组名称的文件或目录 |
grep 在指定文件中检索匹配关键字信息,并把匹配的行打印出来
命令选项 | 含义 |
---|---|
-i | 忽略字符大小写的差别 |
-n | 在输出匹配行之前,标出该行的行号 |
-v | 反转查找,及查找不包含所查字符串的行 |
sort 将文件进行排序,并将排序结果标准输出
sort命令既可以从特定的文件,也可以从输入设备中获取输入,sort命令将文件的每一行作为单位进行比较,比较原则是从首字符想后,依次按ASCII码进行比较,最后将他们按升序输出。
命令选项 | 含义 |
---|---|
-f | 排序时,将小写字母视为大写字母,即忽略大小写 |
-k | 指定排序关键字 |
-r | 以相反的顺序来排序 |
mkdir 创建目录
语法:
mkdir [选项] 目录列表
如果在目录名的前面没有加任何路径,则在当前目录下创建新目录;如果给出了一个已经存在的路径,将会在该目录下创建一个指定的目录。在创建目录时,应保证新建的目录与它所在的目录下的文件没有重名。
命令选项 | 含义 |
---|---|
-m | 建立目录的同时设置目录的权限 |
-p | 若所要建立的目录的上层目录目前没有建立,则会一并建立上层目录 |
rmdir 删除空目录
语法:
rmdir [选项] 目录列表
别删除的目录应该是空目录,也就是说,该目录中没有别的文件。另外,当前工作目录必须在被删除目录之上,不能是被删除目录本身,也不能是别删除目录的子目录。
命令选项 | 含义 |
---|---|
-r | 强制删除目录及目录中的文件和子目录 |
-p | 删除指定目录后,该目录的上层目录已变为空目录,则将其一并删除 |
tar 打包
在Linux操作系统的使用过程中,经常需要处理、备份、传送大量文件,可以通过打包、压缩命令将多个文件或目录打包到一个文件里,方便系统管理。
Linux中常用的打包命令是tar,使用tar命令打出来的包通常被称为tar包,在生成tar包文件时,通常是以.tar结尾命名文件。tar命令本身没有压缩功能,需要调用gzip程序对生成的tar包压缩。
语法:
tar [选项] 文件或目录
命令选项 | 含义 |
---|---|
-c | 建立新的备份文件 |
-f | 指定备份文件 |
-z | 通过gzip指令处理备份文件 |
-x | 从备份文件中还原文件 |
-v | 打包显示指令的执行过程 |
注意:如果在打包时用了"-z"选项压缩包文件,在解包时也要用"-z"选项。
gzip 解压缩
Linux操作系统中有很多压缩工具,其中最常用的压缩、解压工具是gzip/gunzip。在Linux中经常看到后缀为.gz的文件,他们就是GZIP格式的。gzip工具可以单独使用,也可以结合打包工具tar使用,而多数情况下是在使用tar命令时调用gzip,打包操作的同时进行压缩、解压的。、
语法:
gzip [选项] 文件
命令选项 | 含义 |
---|---|
-d | 解开压缩文件 |
-l | 列出压缩文件的相关信息 |
-r | 将指定目录下的所有文件及子目录一并处理 |
-t | 测试压缩文件是否正确无误 |
-v | 显示指定执行过程 |