一、linux操作系统
由芬兰人 Linus Torvalds最早开发及倡导。(GUN组织的目标是发展一个完全免费的自由软件,一个类Unix计算机操作系统以及运行在其上的软件开发工具和各类应用程序)
常见的linux版本:Ubuntu、red hat(小红帽)。
二、linux使用基础
终端(terminal)与shell的关系:终端的主要任务是接受用户输入的命令和字符,然后提交给shell,shell负责将命令转换成linux内核能够处理的数据,并将执行完的结果反馈给终端。shell就是linux内核上的一个壳,本身也是操作系统第一个应用程序。
命令+参数的格式:①长格式:用两个减号(--)加英文单词;②短格式:用一个减号(-)加一个字母;
linux的一点哲学:①一切皆文件,包括目录、文件;
同一个目录里不能含有相同的文件;
父目录与子目录:上下级关系;
以.开头的文件在系统中被认为是隐藏文件;
linux总只有一个根目录,整体呈一个倒“树形”结构;
路径有两种表示方式:绝对路径(从根目录开始)、相对路径(不以斜杠开始,先从当前目录的父目录到根目录(..),然后以斜杠往下);两种路径都有存在的价值,都有适合使用的场景;
linux是多用户的操作系统,分为两种:超级用户(root)、普通用户;两者之间可以通过命令sudo切换;普通用户通常也包含在用户组里面;
linux中的文件都有权属标志,每个文件都有三组权限标志,分别是:所属用户、用户所在的组、组外的其他用户,每组权限又包括读、写、执行三种权限。
命令的使用技巧:①输入命令未完成时可按tab键,shell会自动补齐;如果存在多个可能性,需要再按一下tab键,将显示所有的可能性;文件名、命令都可以自动补齐;②按上下箭头↑↓可以查找历史命令(之前使用过的);③在命令的输入过程中(未按回车键)可按ctrl+c的组合键取消输入;④正在实行的命令可按ctrl+c终止运行;
文件的硬链接是指目录下的一个文件本身的名字与索引号,指向了磁盘空间,不同的文件可能链接到一个索引节点,就是说这些文件的名字不同,但是内容是一样的,那么就只占用一份磁盘空间;
linux快捷键
快捷键 | 含义 |
Ctrl+alt+t | 打开一个终端 |
Ctrl+d | 关闭终端 |
f11 | 全屏,再按一次回复原来大小 |
Ctrl+shift+= | 放大字体 |
Ctrl+- | 缩小字体 |
Ctrl+l | 清空终端屏幕 |
Ctrl+a | 移动光标到行首 |
Ctrl+e | 移动光标到行尾 |
三、linux文件属性
第一个文件表示“文件类型”,它是目录、文件或者链接文件等;
d | 目录 |
- | 普通文件 |
l | 链接文件 |
b | 设备文件里的可供存储的接口设备,即块设备 |
c | 设备文件里的串行端口设备,如鼠标、键盘等,即字符设备 |
p | 管道文件 |
s | 套接口文件 |
文件权限:9个字符,3个为一组;第一组表示“文件所有者的权限”、第二组表示“用户组的权限”、第三组表示“组外用户的权限”。每组都是rwx组合,读、写、执行,如果没有对应的权限,以减号(-)代替;
文件大小:单位是B(字节);
四、linux常用命令
第一类:查阅手册相关命令
命令 | 参数 | 选项 | 含义 |
man | n(1-8) | item(需要查阅的条目、命令) | 查找item该命令的手册页(如何使用),其中1代表可执行程序,2代表系统调用,3代表库函数... |
whatis | / | item(需要查阅的条目、命令) | 从来查询某个命令出现在手册页的哪些章节中 |
第二类:文件相关命令
命令 | 参数 | 选项 | 含义 |
ls 列出文件信息 | -a | directory/file | 显示某directory/file下的所有文件,包括隐藏文件 |
-l | 输出file的详细信息 | ||
-h | 当同时使用-l时,以人类可读方式显示文件大小(KB/MB) | ||
-d | 显示directory本身的信息而不是directory内文件的信息 | ||
参数如果是directory,则列出其内部的file,如果不是,则列该file;如果省略,则列出当前directory下的文件 |
命令 | 参数 | 选项 | 含义 |
mkdir (创建) | -p | file(要创建、删除的目录) | 如果file的父目录不存在,则先创建父目录(空) |
-v | 对于创建的每个directory,输出一条说明 | ||
rmdir (删除) | -p | 同时删除目录(目录必须为空);可同时删除一条线上的层级目录:rmdir -p a/b/c | |
-v | 对于删除的每个directory输出一条说明 |
命令 | 参数 | 选项 | 含义 |
cd | / | directory | 更改到directory,如果省略,则更改到当前用户的家目录; |
pwd | / | 用于显示当前目录的绝对路径 | |
cd- :进入上一次目录 | |||
cd~:进入家目录 |
命令 | 参数 | 选项1 | 选项2 | 含义 |
cp 用于复制文件 | -r | 源file (如果此处是多个file,则选项2必须为directory) | 目标directory or file | 递归复制(复制directory以及内部所有的file)(连同子目录) |
-i | 复制前询问 | |||
-f | 复制前不询问,强行复制(force) | |||
-l | 建立硬链接而不是复制文件内容 | |||
-s | 建立符号链接而不是复制文件内容 | |||
-v | 输出说明文字 | |||
-d | 复制符号链接本身而不是他指向的目标 | |||
-u | 用于更新同文件名(就是覆盖改名字) |
命令 | 参数 | 选项 | 选项2 | 含义 |
ln 建立链接 | -f | target (新链接指向的目标文件,如果为符号链接,则相对路径相对于file,不是当前目录) | file (新链接的名称,如省略,则在当前目录下建立与target同名的文件) | 如果file已存在,则将其强制删除 |
-s | 建立符号链接而不是硬链接 | |||
-v | 输出文字说明 |
命令 | 参数 | 选项1 | 选项2 | 含义 |
mv 移动文件 | i | source flie | destination file | 移动前询问 |
-f | 移动前不提示,目标文件存在时直接覆盖 | |||
-v | 输出文字说明 |
命令 | 参数 | 选项 | 含义 |
rm 删除文件 | -r | file(要删除的) | 递归删除(删除directory以及内部的所有file) |
-i | 删除前提示询问 | ||
-f | 不提示,强制删除 | ||
-v | 输出说明文字 |
命令 | 参数 | 选项 | 含义 |
cat 读取文件内容并输出 | / | file (被读取的文件,如果省略,则读标准输入) | 读取文件内容并输出 |
命令 | 参数 | 选项 | 选项2 | 含义 |
find | directory | -name(不变) | “...某文件名,记不清楚的可以利用*代替” | 查找指定目录下的所有带某文件名的文件(*是通配符) |
示例:find /home/jestrc/dira/ -name ".txt" //查找指定目录下所有以“.txt”命名的文件 |
命令 | 参数 | 选项1 | 选项2 | 含义 |
grep (搜索并输出文件内容包含的关键字、行) | -i | pattern (依稀记得该文件中有这么几个字,相当于关键字搜索,不清楚的利用*代替) | file (要搜索的) | 忽略pattern中的大小写 |
-r | 递归搜索,如果file是directory,则搜索整个directory下的所有file |
第三类:改变文件的权限或属性命令
命令 | 参数 | 选项 | 选项2 | 含义 |
chgrp 改变文件所属用户组 | -r | hy(用户组) | filename/filename... | 递归持续更改,连同子目录下的文件都更新为这个用户组,适用于目录内文件全部更改的情况 |
示例:chgrp hy install.log //将install.log文件的用户组改为hy用户组,注意hy用户组必须要在/etc/guoup文件内存在才行 |
命令 | 参数 | 选项 | 选项2 | 含义 |
chown 改变文件所有者 | -r | bin(账号名、用户名)(还可以加上组名) | file、directory | 改变文件所有者 |
示例1:chown bin install.log //install.log的所有者更改为bin用户 | ||||
示例2:chown jsetc:jsetc install.log //install.log文件的所有者更改为jsetc用户组的jsetc用户 |
命令 | 参数 | 选项 | 选项2 | 含义 |
chmod 改变文件的权限 | -r | xyz(数字组合,例如777) | file | 利用数字类型更改文件三种权限 |
示例:chmod -r 774 bashrc //将文件bashrc的权限更改为774 | ||||
使用u,g,o三个字母代表user、group、others三种身份。此外a代表all,即所有身份 | ||||
示例2:chmod u=rwx,go=rx bashrc | ||||
也可以增加或去除某种权限,“+”代表增加权限,“-”代表去除权限 | ||||
示例3:chmod g+w bashrc chmod g-x bashrc |
第四类:压缩、解压缩相关命令
命令 | 参数 | 选项 | 含义 |
gzip 压缩、解压缩 | -l | file.gz(要查看的压缩文件) | 列出压缩文件的内容 |
-k | file、file.gz(要压缩的文件) | 在压缩或者解压时保留源文件 | |
-d | file.gz(要解压的文件) | 将压缩文件解压缩 | |
示例1:查看压缩文件:gzip -l pwd.1.gz | |||
示例2:解压文件:gzip -kd pwd.1.gz //该压缩问价是以.gz结尾的单个文件 | |||
示例3:压缩文件:gzip -k mypwd.1 //得到一个以.gz结尾的压缩文件 |
命令 | 参数 | 选项 | 含义 |
bzip2 | -k | file、file.bz2 | 在压缩或者解压缩时,保留输入文件 |
-d | file.bz2 | 将压缩文件解压缩 | |
示例1:压缩文件:bzip -k mypwd.1 //得到一个.bz2后缀的压缩文件,注意如果不带-k参数,则会删除原来的文件,且只能压缩的那个文件,不能压缩目录 | |||
示例2:解压文件:bzip -kd mypwd.1.bz2 | |||
bizp2压缩大文件,因为压缩率更高,gzip压缩小文件; |
命令 | 参数 | 选项 | 含义 |
tar | -c | file、directory | 创建压缩文件包 |
-x | 提取,从文件包中提取文件 | ||
-t | 查看压缩的文件 | ||
-z | 使用gzip的方式处理,与c结合就是压缩,与x结合就是解压缩 | ||
-j | 使用bzip.2的方式处理,与c结合就是压缩,与x结合就是解压缩 | ||
-v | 详细报告tar处理后的信息 | ||
-f | 后面再紧跟着一个文件名,表示压缩后的文件名或者(最后跟着-c目录,表示解压到指定的目录中) | ||
示例1:tar czvf dira.tar.gz dira //使用gzip的方式把目录dira压缩,打包名为dira.tar.gz的压缩包 | |||
示例2:tar tvf dira.tar.gz //查看压缩文件dira.tar.gz | |||
示例3:tar xcvf dira.tar.gz -c/home/book //解压到指定的/home/book目录中 | |||
示例4:ter cjvf dira.tar.bz2 dira //使用bzip.2的方式把目录dira压缩,打包名为dira.tar.bz2的文件 |
第五类:补充一些命令
命令 | 参数 | 选项 | 含义 | 备注 |
su | / | / | 切换用户 | |
passwd | / | / | 修改密码 | |
ifconfig | / | / | 查看并设置虚拟机的IP地址 | |
cat | -n | file | 从第n行显示行号,就是把文件内容在终端显示出来(在终端停留在最后一页,其他页面滚过) | |
tac | -n | 与上面相反,从最后一行向第一行翻查,停在最后一屏(文本的最前面); | ||
more | / | file | 从头屏分页显示,回车是翻行,空格是翻页,不可往前翻 | 在底部可以查找字符: ①?char是往前查找char ②\char是往后查找char |
less | / | 比more多了向前、向后整页翻(pgup、pgdn) | ||
head | -n | file | -n可指定行数(最前面n行),若无则默认显示4行(从头开始显示) | |
tail | -n | n可指定行数(就是file最后面n行) |