Linux
Linux是什么?
Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、 支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和 64位硬件。
Linux内核
是一个Linux系统的内核,而不是一个操作系统
Linux操作系统
红帽操作系统(RedHat),乌班图(Ubuntu)等 才是操作系统的名字,他们都使用Linux内核,我们 常常把它们笼统的称为Linux操作系统。
Linux内核版本
在Linux下通过终端 输入 uname -r 可以得到Linux的内核版本
Linux版本号由四部分组成 :主版本号------次版本号------修订版本号------微调版本号
终端
Linux的终端就是控制台,是用户与内核交互的平台, 通过输入指令 来控制内核完成任务操作。
Shell
shell是linux的外壳。是一个内核的解释器,让我们跟内核交流翻译的工具。
命令的解释
可以解析我们给shell终端的命令,来控制操作系统 做相关的功能。
保护操作系统
可以帮助我们通过一条简单的命令来调用系统函数 或者系统接口,来依次完成我们需要的功能,不会 导致调用错误或者其他问题导致系统不能正常使用。
Linux目录结构
/bin | 存放基础系统所需的命令 |
---|---|
/sbin | 存放超级权限用户root的可执行命令 |
/etc | 存放系统程序或者一般工具的配置文件 |
/dev | 设备文件存储目录 |
/proc | 操作系统运行时,进程信息及内核信息 |
/var | 存放内容可能增长的文件(如日志) |
/tmp | 临时文件包含系统和用户创建的临时文件 |
/user | 用户程序包含二进制文件、库文件、文档和二级程序的源代码 |
/home | 所有用户用home目录来存储他们的个人档案 |
/boot | 引导加载程序文件包含引导加载程序相关的文件 |
/lib | 系统库 |
/opt | 可选的附加应用程序包含从个别厂商的附加应用程序 |
/mnt | 挂载目录临时安装目录,系统管理员可以挂载文件系统。 |
/media | 可移动媒体设备 |
/srv | 存服务数据 |
22端口号是SSH服务器默认的端口号
基本命令
查看目录内容
ls ls [选项] [文件或目录]
选项:
-l : 每列仅显示一个文件或目录名称。
-a 或--all : 下所有文件和目录。
-i 或--inode: 显示文件和目录的inode编号。
文件或目录: 制定的目录或这文件,如果没 有这一项,默认当前目录。
ls -l 以列的方式显示
ls -a 显示所有包括隐藏目录
ls -a /bin 显示/bin下的所有文件
改变工作目录
cd
选项: 无
文件或目录: 绝对路径:一定由根目录 / 写起
相对路径:相对于某一路径,其中.代表当前目 录,...代表上一级目录 ~:表示家目录
cd /etc 到根目录下的etc目录
cd ... 到上一级目录
cd ~ 到当前用户的家目录
显示系统重要信息
uname
uname [选项] [文件或目录] 选项: -r:内核版本 -n: 主机名 -a: 所有信息
文件或目录: 无
备注: 查看发行版的版本 cat /etc/redhat-release
uname -r 内核版本
uname -n 主机名
uname -a 显示所有系统重要信息
基本命令-文件管理
改变文件的时间
touch
touch [选项] [文件或目录]
选项: -t:使用指定的时间,而非现在的时间
文件或目录: 要改变的文件的路径。
含义:使用touch指令可更改文件或目录的日期时间,包 括存取时间和更改时间。注意的是如果文件不存在 则创建文件。
touch file 改变file文件的时间
touch -t1801311830 file 指定时间改变
touch 如果目录不存在touch帮你创建一个目录
创建目录
mkdir
mkdir [选项] [文件或目录] 选项: -p:递归创建目录,嵌套目录
文件或目录: 跟目录的路径
注意:文件名大小写敏感,不可超过255字符, 不可以使用/,建议不要~ \ < > ( ) $ * ? " '
mkdir aa 创建一个aa目录
mkdir -p aa/bb/cc 创建一个嵌套的目录
拷贝文件或目录
cp 将文件和目录从一个目录拷贝到另一个目录
cp [选项] [源文件或目录] [目的文件或目录]
选项:
-i:在拷贝过程中询问是否要拷贝
-f:在拷贝过程中不询问直接拷贝
-r:拷贝目录中的所有文件和目录
文件或目录: 源文件或目录:指的是需要拷贝哪个文件的路 径 目的文件或目录:指要把源文件或目录拷贝到 哪里的路径
cp /aa /home/king 将根下的aa拷贝到 home下的king中
删除空目录
rmdir 删除空的文件目录
rmdir [选项] [目录]
选项: -p:删除指定目录上的所有目录
文件或目录: 要删除的文件目录的路径
rmdir /aa 删除根下aa空目录
删除文件或目录
rm 删除文件或目录,执行rm指令可删除文件或目录, 如欲删除目录必须加上参数"-r",否则预设仅会删 除文件。
rm [选项] [文件或目录]
选项:
-i:删除时询问是否要删除
-f: 删除时不询问直接删除
-r: 递归删除目录下的所有文件或目录
文件或目录:所要删除的文件或目录的路径
rm file 删除文件file
rm -r /aa 删除aa目录下的所有文件或目录
移动或更名
mv 可移动文件或目录,或是更改文件或目录的名称
mv [选项] [源文件或目录] [目标文件或目录]
选项:
-i:在移动时有覆盖是询问是否要覆盖
-f: 在移动时有覆盖不询问直接覆盖
文件或目录: 源文件或目录:要移动或更名的文件或目录 目标文件或目录:如果有不是当前路径的路径 就是要移动,如果是当前路径下就是更名
mv /aa ~/ 将aa移动到家目录下
mv aa bb 将aa更名bb
基本命令-tar
打包
tar 是要是用来打包或这解包,压缩或这是解压缩的一 个命令,常常用作备份文件使用,或将许多文件打 成一个包并压缩。
tar [选项] [目标包名] [源文件或目录]
选项: -c:创建一个包 -f: 定义目标包
目标包名: 要打成的包名
源文件名或目录名: 哪些文件要被打成包
tar -cf xxx.tar /aa 将aa 打成xxx.tar包
查看
tar 是要是用来打包或这解包,压缩或这是解压缩的一 个命令,常常用作备份文件使用,或将许多文件打 成一个包并压缩。
tar [选项] [包名]
选项: -t:查看包里面的文件! -f: 定义目标包
目标包名: 查看xxx.tar 的包的路径
tar -tf xxx.tar 在不解包的情况下查看 里面的文件或目录
添加
tar [选项] [包名] [源文件或目录]
选项: -r:将文件追加到包中 -f: 定义目标包
包名: 查看xxx.tar 的包的路径
源文件或目录: 要添加的文件或这目录
tar -rf xxx.tar bb 将bb文件追加到xxx.tar 包中
解包
tar [选项] [包名]
选项: -x:将包 解包 -f: 定义目标包
包名: 查看xxx.tar 的包的路径
tar -xf xxx.tar 将xxx.tar中的文件解包
压缩
tar [选项] [压缩名] [源文件]
选项:
-c:打包
-z:将打包的文件用gzip格式压缩
-v:显示过程
-f: 定义目标包
压缩名: 指定压缩的名字
源文件: 要打包压缩的文件
tar -czvf xxx.tar.gz /aaa bb 将/aaa bb 文件 打包压缩为 xxx.tar.gz
解压缩
tar [选项] [包名]
选项:
-x: 解包解压
-z:以gzip的格式进行解压
-v:显示过程
-f: 定义目标包
包名: 查看xxx.tar 的包的路径
tar -xzvf xxx.tar.gz 将 xxx.tar.gz解包解压到当前目录下
基本命令-帮助查询
man手册
man 是Linux下的帮助指令,通过man指令可以查看 Linux中的指令帮助、配置文件帮助和编程帮助等信息。
man [选项] 命令名
选项:
-a:在所有的man帮助手册中搜索;
-f:等价于whatis指令,显示给定关键字的简短描述信 息;
man ls 通过man手册查看ls
man -f ls 简要的查看ls的作用
基本命令-帮助查询-find
按文件名称
find 在指定目录下查找文件。任何位于参数之前的字符 串都将被视为欲查找的目录名。如果使用该命令时, 不设置任何参数,则find命令将在当前目录下查找 子目录与文件。并且将查找到的子目录和文件全部 进行显示。
find [查找的路径][选项] [参数]
选项:
-name:按名称查找
-iname: 忽略大小写
选项: 用双引号引起来
find . -name "*.txt" 在当前文件夹下查找 以.txt结尾的文件
find . -name ".txt" -o -name ".pdf" 在当前目录下查找以.txt 结尾的或这以.pdf结尾
find . -iname "AA" 忽略大小写查找AA文件
文件类型分类
基本命令-帮助查询-find
按文件类型
find [查找的路径][选项] [参数]
选项:
-type:文件分类超找
-maxdepth :从当前目录开始搜索的深度(也 就是子目录的嵌套)
参数: f(表示普通文件),c, d, l, b ,s ,p 这些文件类 型
find . -type f 在当前文件夹下查找普 通文件
find . -type d 在当前目录下查找目录
find . -maxdepth 3 -type f 当前目录开始深度为3层 的所有普通文件
基本命令-帮助查询
查看文件的信息
stat 用来查看文件的具体存储信息和时间等信息
stat 参数
参数: 文件名
stat a.txt 查看a.txt文件信息
统计文本
wc 用来计算数字。利用wc指令我们可以计算文件的 Byte数、字数或是列数,若不指定文件名称,或是 所给予的文件名为"-",则wc指令会从标准输入 设备读取数据。
wc [选项] [文件]
选项: -c:只显示Bytes数; -l:只显示列数; -w:只显示字数。
wc xxx.txt 显示文本的行号 字符数 单词数
wc -c 显示字符数
查看文本内容
cat 用来显示文件的内容
cat [选项] [文件]
选项:
-n:有1开始对所有输出的行数编号;
-b:和-n相似,只不过对于空白行不编号;
cat xxx.txt 显示文本的内容直接输出在屏幕上
cat -n xxx.txt 在每一行前加行号
查看文本内容
more 命令一次显示一屏文本,满屏后停下来,并且在屏 幕的底部出现一个提示信息,给出至今己显示的该 文件的百分比
more [文件]
操作:
按Space键:显示文本的下一屏内容。
按Enier键:只显示文本的下一行内容。
按H键:显示帮助屏,该屏上有相关的帮助信息。
按B键:显示上一屏内容。
按Q键:退出more命令;
more xxx.txt 分进度显示文本内容
查看文本内容
less 用less命令显示文件时,用PageUp键向上翻页,用 PageDown键向下翻页。要退出less程序,应按Q 键。
less [参数] [文件]
参数 -e:文件内容显示完毕后,自动退出;
-N:每一行行首显示行号;
less xxx.txt 分屏显示文本内容
查看文本内容
head 用于显示文件的开头的内容。在默认情况下,head 命令显示文件的头10行内容。
head [参数] [文件]
参数 -n:指定从头显示多少行;
head -5 xxx.txt 查看头5行
查看文本内容
tail tail命令默认在屏幕上显示指定文件的末尾10行。
tail [参数] [文件]
参数 -n:指定从尾显示多少行; -f:监控文件尾部插入的行
tail -5 xxx.txt 查看尾5行
显示日历
cal 显示日历,可以按照指定的年份月份来显示,还可 以显示当年中的第几天
cal [选项] [月份] [年份]
选项:
-s: 显示星期天为一个星期的第一天,默认的 格式
-m: 显示星期一为一个星期的第一天
-j: 显示在当年中的第几天
月份: 1-12
年份: 1-9999
cal 显示当年当月的日历
cal 8 2017 显示2017年8月的日历
cal -j 8 2017 显示8月的是当年的第几 天
显示时间
date 打印不同格式的时间或日期,以及要根据时间和日 期执行操作,也可以使用命令设置固定的格式,在 类UNIX系统中,日期被存储为一个整数,1970年1 月1日0时0分0秒起流逝的秒数
date [选项] [参数]
选项:
-d<字符串>:显示字符串所指的日期与时间 。字符串前后必须加上双引号;
-s<字符串>:根据字符串来设置日期与时间 。字符串前后必须加上双引号;
-u:显示GMT(世界时间);
date +"%Y-%m-%d %H-%M-%S" 格式化显示时间
date -s "20180523 00:20:00" 设置时间
文件大小
du 对文件和目录磁盘使用的空间的查看
du [选项] [参数]
选项:
-s 仅显示总计,只列出最后加总的值。
-h 以K,M,G为单位,提高信息的可读性。
参数: 目录或文件
du kk 查看kk文件的大小
连接
ln ln命令用来为文件创件连接,连接类型分为硬连接 和符号连接两种,默认的连接类型是硬连接。如果 要创建符号连接必须使用"-s"选项。
ln [选项] [参数]
选项: -s:创建软连接
参数: 源文件:指定要连接的文件
目标文件:指定源文件要连接的文件
ln -s kk /lnkk 将kk文件做一个软连接到 /lnkk
查看历史命令
history 显示指定数目的历史指令命令,历史命令是被保存 在内存中的,当退出或者登录shell时,会自动保存 或读取。在内存中,历史命令仅能够存储1000条历 史命令。
history [选项] [参数]
选项:
-c:清空当前历史命令;
-a:将历史命令缓冲区中命令写入历史命令 文件中;
-r:将历史命令文件中的命令读入当前历史 命令缓冲区;
参数: n:打印最近的n条历史命令;
history 10 使用history命令显示最近使用的10条历史命令
基本命令-其他命令
退出shell
exit 退出shell,并返回给定值。在shell脚本中可以终止 当前脚本执行。
exit 没有选项,没有参数,是一个单命令
exit 退出shell
控制台输出
echo 在shell中打印shell变量的值,或者直接输出指定的字符串
echo [参数]
参数: 要输出的值或字符串
echo "hello" 在终端输出hello
命令别名
alias 使用该命令可以将一些较长的命令进行简化。使用 alias时,用户必须使用单引号''将原来的命令引起来, 防止特殊字符导致错误。
alias [选项] [参数]
选项: -p:打印已经设置的命令别名。
参数: alias 新的命令='原命令 -选项/参数'
alias -p 显示已有的别名
alias cc='ls -il' 给ls -il 组合命令下·其别名
unalias 用来取消命令别名,是为shell内建命令。如果需要 取消任意一个命令别名,则使用该命令别名作为指 令的参数选项即可。
unalias [选项] [参数]
选项: -a:取消所有命令别名。
参数: 命令别名:指定要取消的命令别名。
unalias lskk 取消 lskk这个别名
文本查找
grep 是一种强大的文本搜索工具,它能使用正则表达式 搜索文本,并把匹配的行打印出来。
grep [选项] [参数]
选项:
-i 忽略字符大小写的差别。
-n 在显示符合范本样式的那一列之前, 标示出该列的编号。
-v 反转查找。
参数:
关键字:要超找的字符串
文件路径:要去哪个文件去超找
grep "text" -n file_name 输出包含匹配字符串
grep -v "text" file_name 输出除之外的所有行
止特殊字符导致错误。
alias [选项] [参数]
选项: -p:打印已经设置的命令别名。
参数: alias 新的命令='原命令 -选项/参数'
alias -p 显示已有的别名
alias cc='ls -il' 给ls -il 组合命令下·其别名
unalias 用来取消命令别名,是为shell内建命令。如果需要 取消任意一个命令别名,则使用该命令别名作为指 令的参数选项即可。
unalias [选项] [参数]
选项: -a:取消所有命令别名。
参数: 命令别名:指定要取消的命令别名。
unalias lskk 取消 lskk这个别名
文本查找
grep 是一种强大的文本搜索工具,它能使用正则表达式 搜索文本,并把匹配的行打印出来。
grep [选项] [参数]
选项:
-i 忽略字符大小写的差别。
-n 在显示符合范本样式的那一列之前, 标示出该列的编号。
-v 反转查找。
参数:
关键字:要超找的字符串
文件路径:要去哪个文件去超找
grep "text" -n file_name 输出包含匹配字符串
grep -v "text" file_name 输出除之外的所有行