一、linux简介
1.1 linux起源
- Linux内核最初只是由芬兰人林纳斯·托瓦兹(Linus Torvalds)在赫尔辛基大学上学时出于个人爱好而编写的。
- Linux是一套免费使用和自由传播的类 Unix 操作系统,是一个基于 POSIX 和 UNIX 的多用户、多任务、支持多线程和多 CPU 的操作系统。
- Linux 能运行主要的 UNIX 工具软件、应用程序和网络协议。它支持 32 位和 64 位硬件。Linux 继承了 Unix 以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。
1.2 linux的发行版
说简单点就是将Linux 内核与应用软件做一个打包。Linux 的发行版图如下:
1.3 Linux目录结构介绍
- bin
bin是Binary的缩写, 这个目录存放着最经常使用的命令。
- boot
这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。
- dev
dev是Device(设备)的缩写, 该目录下存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的。
- etc
这个目录用来存放所有的系统管理所需要的配置文件和子目录。
- home
用户的主目录,在Linux中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。
- lib
这个目录里存放着系统最基本的动态连接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库。
- media
linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux会把识别的设备挂载到这个目录下。
- mnt
系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在mnt上,然后进入该目录就可以查看光驱里的内容了。
- opt
这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。
- sbin
就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。
- sys
这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个 文件系统 sysfs 。
sysfs文件系统集成了下面3种文件系统的信息:- 针对进程信息的proc文件系统
- 针对设备的devfs文件系统
- 针对伪终端的devpts文件系统。
该文件系统是内核设备树的一个直观反映。当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中被创建。
- tmp
这个目录是用来存放一些临时文件的。
- usr
这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录。
- var
这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。
1.4 linux文件颜色代表含义
- 蓝色:表示目录
- 绿色:表示可执行文件
- 红色:表示压缩文件
- 浅蓝色:表示链接文件
- 白色:表示文本文件
- 黄色:表示设备文件
1.5 linux文件权限
如一列文件信息如下:
drwxr-xr-x. 103 root root 12288 Aug 13 07:28 etc
- 第一列(drwxr-xr-x)
包含文件类型和所属主,所属组以及其他组用户对此文件的操作权限,共10位,其中第一位描述此文件的类型;
- 前三位(rwx)为所属主(user)的操作权限
- 中间三位(r-x)为所属组(group)用户的操作权限
- 最后三位(r-x)为其他组(others)用户的操作权限;
- d 表示此文件为目录文件
- 表示此文件位文本文件 - | 表示此文件为链接文件
- b 表示此文件为设备文件
- r 可读
- w 可写
- x 可执行
- 第二列(103)
为链接时表示占用的节点(node),若为目录时表示此目录下的文件个数
- 第三列(root)
表示此文件的所属主
- 第四列(root)
表示此文件的所属组
- 第五列(12288)
表示此文件的大小
- 第六七八列
表示此文件的创建或修改时间
- 第九列
表示此文件的文件名,如果前面有一个"."则表示为隐藏文件
二、linux命令
2.1 ls命令
ls:列出目录内容
语法:ls [选项] [文件或者目录]
ls -a :显示所有文件,包含隐藏文件(以"."开头)
ls -l :长格式显示文件的详细信息
ls -t :以时间排序,ls命令默认是按照文件名称排序
ls -al :列出当前目录下所有的文件信息(包括隐藏文件,特殊目录)
ls -r :反向排序
ll :列出当前目录下的文件信息
2.2 cd命令
语法:cd [目录]
pwd:打印当前目录
ll :查看当前目录下的内容
cd / :切换到根目录
cd ~ :切换到当前用户目录
cd . :表示当前目录,
cd .. :表示上一级目录
cd - :表示前一个目录
2.3 mkdir命令
语法:mkdir 【选项】 【目录】
-p :父目录不存在情况下先生成父目录
mkdir a :当前目录下创建文件夹a
mkdir /root/b :在根目录下的root下创建目录b
mkdir -pv /root/c/e/d :在根目录下的root下创建目录结构c/e/d
2.4 创建文件
touch:创建文本文件或修改文本文件时间 注意:如果文本文件不存在则创建,如果存在则更新文本文件最后操作时间为当前系统时间;
查看当前系统时间:date
ln -sf /usr/share/zoneinfo/posix/Asia/Shanghai /etc/localtime #将系统时间改为上海所在的时区
2.5 cp命令
cp:复制文件 语法:cp [选项] [源文件或目录] [目标文件或目录]
选项:
-r :递归复制子文件,用于复制目录时
-a :复制时保留源文件的所有属性(包括权限,时间等)
cp install.log install02.log
cp -b install.log install02.log :如果覆盖文件时,可以将源文件做一个备份
cp ./install.log ../ :将当前目录下的install.log复制到父级目录
cp /root/install.log /bin/1.txt :将/root下的install.log文件复制到根目录下的bin目录下的1.txt中
2.6 mv命令
mv:移动(重命名)文件 mv [选项][源文件或目录][目标文件或目录]
选项:
-f :若目标文件或目录与现有的文件或目录重复,则直接覆盖现有的文件或目录
mv /root/install.log /root/a/ :移动文件
mv /root/install.log /root/test.log :重命名文件
2.7 rm命令
rm:删除文件 语法:rm 【选项】 【文件】
选项 :
-f :不提示,强制删除文件或者目录
-r :递归处理。将指定目录下的所有文件及子目录一并处理
rm -rf /root/ :目录名称
2.8 cat命令
cat:查看文件的内容
语法:cat [选项] 文件
选项:
-b :显示行号,空白行不显示行号
-n :显示行号,包括空白行
2.9 more命令
more:分页查看文件内容,还支持直接跳转行等功能 语法:more [文件]
enter :向下n行,需要定义,默认为1行
空格键 :向下滚动一屏或ctrl+F
B :返回上一屏或ctrl+F
q :退出more
2.10 less命令
less:分页查看文件内容,通过空格查看下一页,q键则退出查看,方向上下回翻;
语法:less [选项] [文件]
-m :显示类似more命令的百分比
-N :显示每行的行号
-
空格键 :前进一页
-
b :后退一页
-
d :前进半页
-
u :后退半页
-
回车键 :前进一行
-
y :后退一行
-
/字符串 :向下搜索
-
?字符串 :向上搜索
-
v :进入vim编辑器
-
左右方向键 :相当于水平滚动条
-
q :退出
-
head:查看文件头部内容,默认显示前10行
head [选项] [文件]
选项:
-n 显示文件前n行的内容
-c nk 显示文件前nKB的内容
2.11 tail命令
tail:查看文件尾部内容,默认显示末尾10行,不指定文件时,作为输入信息进行处理,常用查看日志文件
语法:tail [必要参数] [选择参数] [文件]
选项:
-f :动态显示文件尾部内容,用于查看日志,按Ctrl+C组合键退出
-n<行数> :显示行数
-c nk :显示文件末尾nKB的内容
-f :动态显示文件尾部内容,用于查看日志,按Ctrl+C组合键退出;
2.12 wc命令
wc:显示文件的行、单词、与字节统计信息 wc 【选项】 【文件】
选项:
-c :显示文件字节统计信息
-l :显示文件行数统计信息
-w :显示文件单词统计信息
2.13 find命令
find: 搜索文件 语法:find [路径] [选项] [表达式选项]
选项:
-empty :查看空白文件
-name :按照文件名查找
-iname :按文件名查找且不区分大小写
-mtime :按照创建时间查找
-type :按照文件类型查找文件(f),目录(d),链接(l)
-user : 按用户查找
find . -name '*.txt' :查找后缀为.txt的文件
find /etc -name 'host*' :在etc目录下查找文件包含host的文件
find . -type f :查找文件
find . -mtime -2 :查找2天内修改过的文件
2.14 gzip命令
gzip:压缩与解压缩(无法压缩目录)
gzip [选项] [文件]
选项: -d :解压
gzip /a/b/c/a.txt 将文件压缩为a.txt.gz
gzip -d /a/b/c/a.txt.gz
2.15 bzip2
bzip2:压缩与解压缩(无法压缩文件夹)
bzip2 【选项】 【文件】 选项:
-d 解压
2.16 tar命令
tar:打包与解包
语法:tar [选项] [文件]
选项:
-c :压缩
-x :解压
-f :指定压缩或者解压的文件名称
-j :是否需要用bzip2压缩
-z :是否需要用gzip压缩
-v :显示压缩过程
常用解压参数组合:zxvf
常用压缩参数组合:zcvf
如:tar -czvf /a/b/c/a.txt.gz.tar a/b/c/a.txt 打包时不能在前加"/";
tar -xzvf /a/b/c/a.txt.gz.tar
2.17 管道命令
- Linux提供管道符号"|"。作用是"命令1"的输出内容将作为"命令2"的输入内容。一般是和grep命令一起使用
- 格式:命令1|命令2
2.18 grep命令
grep全称是global regular expression print表示全局正则表达式版本
功能:用户过滤、搜索的特定字符。可使用正则表达式能多种命令配合使用,使用上是十分灵活
格式:grep [参数] [过滤条件] [文件]
参数:
-i :忽略字符大小写的差别
grep -i hello 111.txt :查看111.txt文件中含有hello字符串的内容
cat 111.txt|grep -i hello 111.txt :查看111.txt文件中含有hello字符串的内容
2.19 vi或vim命令
2.19.1 基本操作
输入"vim [文件名]"进入"一般模式"
按下"i"从一般模式进入"插入模式"
按下"esc"从"插入模式"退出到"一般模式"
在"一般模式"下输入":wq"退出编辑
2.19.2 vi基本概念
基本上vi可以分为三种状态,分别是命令模式,插入模式,底行模式,各模式的功能区分如下:
- 命令行模式
控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入插入模式下,或者到底行模式
- 插入模式
只有在插入模式下才可以做文字输入,按ESC可以回到命令行模式
- 底行模式
将文件保存或退出vi时,也可以设置编辑环境,如寻找字符串、列出行号等
2.19.3 常用命令
-
插入(命令模式下)
i :在光标前插入
shift+i :在光标当前行首部插入
a :在光标后插入
shift+a :在光标当前行末尾插入
o :在光标当前行的下一行插入新行
shift+o :在光标当前行的上一行插入新行 -
复制或粘贴(命令模式下)
yy :单行复制,将光标移动到将要复制的行处
nyy :多行复制,将光标移动到将要复制的首行处
p :粘贴,将光标移动到将要粘贴的行处 -
定位(命令模式下)
gg :到文本的第一行
shift+g :到文本的最后一行 -
删除(命令模式下)
dd :删除光标所在行
ndd :删除n行 -
退出(命令模式下)
:q :退出vi
:q! :强制退出不保存
:w :保存不退出
:wq :保存后退出
2.20 ps命令
功能:ps命令是process status的缩写,提供对进程的一次性查看
格式:ps [参数]
-e :此参数的效果和指定"A"参数相同,显示所有程序
-f :显示UID,PPIP,C与STIME栏位
ps aux|grep -i ping
ps -ef|grep -i ping
2.21 kill命令
kill功能:删除执行中的程序或工作
语法:kill [参数] [程序]
-
kill -9 表示强制终止
-
kill -9 pid
2.22 ifconfig命令
功能:显示网络设备
2.23 ping命令
功能:测试与目标主机的连通性
命令:ping 主机名或者id地址
2.24 chmod命令
功能:变更文件或者目录的权限
语法:chmod[参数][<权限范围><符号><权限代号>]
-R :递归处理。将指定目录下的所有文件及子目录一并处理
2.24.1 权限范围的表示法如下:
u:User,即文件或目录的拥有者
g:Group,即文件或目录的所属群组
o:Other,除了文件或目录的拥有者或所属群组,其他用户皆属于这个范围
a:All,即全部的用户,包含拥有者,所属群组以及其他用户
2.24.2 权限符号:
+ :添加权限
- :移除权限
2.24.3 权限代号:
r:读取权限,数字代号为4
w:写入权限,数字代号为2
x:执行权限,数字代号为1
-:不具有任何权限,数字代号为0
每个文件都可以针对三个粒度,设置不同的rwx(读写执行)权限。即我们可以用用三个8进制数字分别表示拥有者 、群组 、其它组( u、 g 、o)的权限详情,并用chmod直接加三个8进制数字的方式直接改变文件权限
若要同时设置 rwx (可读写运行) 权限则将该权限位设置为4+2+1= 7
若要同时设置 rw- (可读写不可运行)权限则将该权限位设置为4+2=6
- 设置所有人可以读写及执行
chmod 777 file
- 设置拥有者可读写,其他人不可读写执行
chmod 600 file
chmod u-rwx xxx
:取消xxx目录,用户“读写执行”权限chmod g-rwx xxx
:取消xxx目录,组“读写执行”权限chmod 777 xxx
:给xxx目录添加所有权限