Linux发展背景(了解)
开源(了解)
企业应用现状(了解)
Linux在服务器领域的发展(了解)
Linux在桌面领域的发展(了解)
Linux在移动嵌入式领域的发展(了解)
Linux在云计算/大数据领域的发展(了解)
发行版本(了解)
*** 作系统(了解)
Linux下的基础指令:(重点)
1、ls指令
2、cd指令
3、pwd指令
4、touch指令
5、mkdir指令
递归创建文件:
补充:tree命令
6、 rm(rmdir)指令
7、man指令
8、cp命令(配合cat和echo讲解)
9、mv命令
10、more指令
11、less指令
12、tail和head
13、date等时间相关的指令
14、Cal指令
15、find命令
16、grey命令
17、zip/unzip指令
18、tar指令
19、bc指令
20、uname命令
权限
文件访问者的分类
文件类型和访问权限(事物属性)
文件类型
基本权限
文件权限值的表示方法
a)字符表示方法
b)8进制数值表示方法
文件访问权限的相关设置方法
a)chmod
b)chown
change own
c)chgrp
d)umask
粘滞位
Linux发展背景(了解)
如图,简而言之,其是由Unix启发、发展而来 。然后现在历经了三十多年的发展,已经被广泛使用。
开源(了解)什么是开源精神?
翻了翻网页,发现说的还是很长、很大,说到底,就是对于一个源代码,对外免费公开,任何人都有使用、传播、商业利用等等的权利,唯一的要求,就是当你在更新它的代码的时候,必须同样遵循开源精神,即公开出来,让别人能够看到并且使用。
企业应用现状(了解) Linux在服务器领域的发展(了解)
随着开源软件在世界范围内影响力日益增强, Linux服务器 *** 作系统在整个服务器 *** 作系统市场格局中占据了越来越多的市场份额,已经形成了大规模市场应用的局面。并且保持着快速的增长率。尤其在政府、金融、农业、交通、电信等国家关键领域。此外,考虑到Linux的快速成长性以及国家相关政策的扶持力度, Linux服务器产品一定能够冲击更大的服务器市场。据权威部门统计,目前Linux在服务器领域已经占据75%的市场份额,同时, Linux在服务器市场的迅速崛起,已经引起全球IT产业的高度关注,并以强劲的势头成为服务器 *** 作系统领域中的中坚力量。
Linux在桌面领域的发展(了解)
近年来,特别在国内市场, Linux桌面 *** 作系统的发展趋势非常迅猛。国内如中标麒麟Linux、红旗
Linux、深度Linux等系统软件厂商都推出的Linux桌面 *** 作系统,目前已经在政府、企业、 OEM等领域得到了广泛应用。另外SUSE、 Ubuntu也相继推出了基于Linux的桌面系统,特别是Ubuntu Linux,已经积累了大量社区用户。但是,从系统的整体功能、性能来看, Linux桌面系统与Windows系列相比还有一定的差距,主要表现在系统易用性、系统管理、软硬件兼容性、软件的丰富程度等方面。
Linux在移动嵌入式领域的发展(了解)
Linux的低成本、强大的定制功能以及良好的移植性能,使得Linux在嵌入式系统方面也得到广泛应用,目前Linux以广泛应用于手机、平板电脑、路由器、电视和电子游戏机等领域。在移动设备上广泛使用的Android *** 作系统就是创建在Linux内核之上的。目前, Android已经成为全球最流行的智能手机 *** 作系统,据2015年权威部门最新统计, Android *** 作系统的全球市场份额已达84.6%。
此外,思科在网络防火墙和路由器也使用了定制的Linux,阿里云也开发了一套基于Linux的 *** 作系
统“YunOS”,可用于智能手机、平板电脑和网络电视;常见的数字视频录像机、舞台灯光控制系统等都在逐渐采用定制版本的Linux来实现,而这一切均归功与Linux与开源的力量。
Linux在云计算/大数据领域的发展(了解)
互联网产业的迅猛发展,促使云计算、大数据产业的形成并快速发展,云计算、大数据作为一个基于开源软件的平台, Linux占据了核心优势;据Linux基金会的研究, 86%的企业已经使用Linux *** 作系统进行云计算、大数据平台的构建,目前, Linux已开始取代Unix成为最受青睐的云计算、大数据平台 *** 作系统。
Debian
Ubuntu
红帽企业级Linux
CentOS
Fedora
Kali Linux
这些都是Linux的不同的版本,具体的大家可以自行上网去搜,网上一大片一大片的资料。笔者在此就不再赘述。
在这里,我们只需要感性的了解一下。
我们所买的手机、电脑,一般都是一堆硬件,然后其必须要装上自己所需要的 *** 作系统,而在 *** 作系统上,我们才能装上一些应用软件。
我们把 *** 作系统一般称为OS(operator system),其是搞管理的软件。
Linux下的基础指令:(重点) 1、ls指令ls
作用:对于目录,该命令列出该目录下的所有子目录与文件。
对于文件,将列出文件名以及其他信息。
当然了,其也有着一些选项,但是我们不常用。不过我们还是在这里列举出来。
-a 列出目录下的所有文件,包括以 . 开头的隐含文件。
-d 将目录象文件一样显示,而不是显示其下的文件。 如: ls –d 指定目录
-i 输出文件的 i 节点的索引信息。 如 ls –ai 指定文件
-k 以 k 字节的形式表示文件的大小。 ls –alk 指定文件
-l 列出文件的详细信息。
-n 用数字的 UID,GID 代替名称。 (介绍 UID, GID)
-F 在每个文件名后附上一个字符以说明该文件的类型, “*”表示可执行的普通文件; “/”表示目录; “@”表
示符号链接; “|”表示FIFOs; “=”表示套接字(sockets)。(目录类型识别)
-r 对目录反向排序。
-t 以时间排序。
-s 在l文件名后输出该文件的大小。(大小排序,如何找到目录下最大的文件)
-R 列出所有子目录下的文件。 (递归)
-1 一行只输出一个文件。
我们举一个例子:
现在,我在我的服务器上登录上了我的账号,那么,现在,我执行 ls 指令:
如图:
在这里,我们就可以看到,我在该账号下,存在两个文件夹:1_lesson 和 2_lesson。
如果我想更详细地知道文件的属性信息,我还可以:
注意: ls -l 可以简化成 ll
Linux中,以点(.)开头的文件,通常叫做隐藏文件
而 ls 不会将隐藏文件显示出来。
一个 . 代表当前目录;两个 .. 代表上级目录
对于一个文件来说,除了有它的文件内容,还有它的文件属性,而我们刚刚ll多出来的一些内容,实际上就是其文件属性(包括文件名)。
而在windows系统下,通过文件名的后缀来区分文件的类别;但是在Linux下文件类型和其后缀没有特别的关系的。(当然有一些特殊的情况:比如我们用gcc去编译的时候,其也是需要匹配.c后缀的文件的)
那Linux系统怎么区分呢?
其实其用的是文件属性的第一列来区分。比如,我们刚刚的文件属性第一列都是d,则表明其为目录文件(具体的我们以后会说)
那现在我想点进去1_lesson怎么办呢?我总不能用鼠标点吧。
实际上,就应当是用下面的命令——cd命令
2、cd指令cd
如图所示,这里,我们表示进入目录1_lesson这么一个文件夹。官方说法:
功能:改变工作目录。将当前工作目录改变到指定的目录下。
cd .. : 返回上级目录
cd /home/litao/linux/ : 绝对路径
cd ../day02/ : 相对路径
cd ~: 进入用户家目
cd -: 返回最近访问目录
上面同时也传达出两种信息,即我们想要进入到某个路径下,那么我可以用绝对路径,也可以用相对路径。
比如,我创建了个test.c文件
然后在里面写上这样几行简单的C代码
然后编译运行
我们可以看到生成了一个a.out的文件。
然后我们执行它:
可以看到,我们这里的 ./a.out 中的./就是当前目录的意思。意思是执行当前目录的a.out文件
后面两个,我们举一个例子:
3、pwd指令
pwd
功能:显示用户当前所在的目录
它的功能就这么简单。
我们来举个例子:
好,我们继续。
注意,退回到根目录的时候,就不能再回退了。
我们在这里,和上面的cd结合在一起,来看:
注意到,我们甚至可以直接cd /,即采用绝对路径的方式访问
有了上面三个基础命令,我们接下来,就可以“加速”了。
4、touch指令touch
touch命令参数可更改文档或目录的日期时间,包括存取时间和更改时间,或者新建一个不存在的文件.
比如:
可以看到,我现在在2_lesson的目录下,现在,我想创建文件,那我直接:
这么个文件就创建出来了(中间的ld不用管,打错了)
注意,touch只能创建只能普通文件。
5、mkdir指令mkdir mkdir -p
功能:在当前目录下创建一个名为 “dirname”的目录
举个例子:
我们在2_lesson的目录下创建一个子文件夹:
我们可以看到,我们一旦创建了这个文件,那么就能 看到这个文件的属性(是一个目录文件),并且可以进入。
递归创建文件:如图,我们可以用-p选项,来完成文件夹的递归创建。即一次生成一串路径
补充:tree命令如果没有tree命令,可以安装一下:yum install -y tree
对于tree命令,它会以树状的形式,从所指定的目录开始,往下一直展开。
如图:
6、 rm(rmdir)指令rmdir -p rmdir -f
语法: rmdir [-p][dirName]
适用对象:具有当前目录 *** 作权限的所有使用者
功能:删除空目录
常用选项:
-p 当子目录被删除后如果父目录也变成空目录的话,就连带父目录一起删除
rm -r rm -f rm -rf
7、man指令rm命令可以同时删除文件或目录
语法: rm [-f-i-r-v][dirName/dir]
适用对象:所有使用者
功能:删除文件或目录-f 即使文件属性为只读(即写保护),亦直接删除
-i 删除前逐一询问确认
-r 删除目录及其下所有文件
man
Linux的命令有很多参数,我们不可能全记住,我们可以通过查看联机手册获取帮助。访问Linux手册页的命令是:
man 语法: man [选项] 命令
比如:
如果你这个男人不会用,那么你就可以再问一问这个男人。
8、cp命令(配合cat和echo讲解)
我们来看具体的例子:
[root@VM-16-3-centos ~]# ls 1_lesson file [root@VM-16-3-centos ~]# cd file [root@VM-16-3-centos file]# ls [root@VM-16-3-centos file]# touch text.txt [root@VM-16-3-centos file]# echo "Hello Linux" //echo:将后面的字符串输出到显示器(文件)中 Hello Linux [root@VM-16-3-centos file]# echo "Hello Linux" > text.txt //输出重定向,输出到text.txt文件当中 [root@VM-16-3-centos file]# ls text.txt [root@VM-16-3-centos file]# cat text.txt //输出(打印)文件里的内容 Hello Linux
注意:cat 后跟-n选项的时候,输出的内容会带上行号。
常用选项:
-b 对非空输出行编号
-n 对输出的所有行编号
-s 不输出多行空行
另外注意,cat输出文件是正序输出,
而 tac 是逆向输出
如果我用tac,
然后我们再来看cp
cp
比如,我将text.txt拷贝一份到同级目录下,然后重命名为my.txt文件(同一个文件目录下,文件名不可以相同)
也可以将text.txt文件拷贝到上级目录下。
我们继续上面的来进行举例:
如果我们想要拷贝文件夹,我们可以加上-r选项。
cp -r cp -f //强制拷贝9、mv命令
mv
mv命令是move的缩写,可以用来移动文件或者将文件改名(move (rename) files),是Linux系统下常用的命令,经常用来备份文件或者目录
语法: mv [选项] 源文件或目录 目标文件或目录
1. 视mv命令中第二个参数类型的不同(是目标文件还是目标目录), mv命令将文件重命名或将其移至一个新的目录中。
2. 当第二个参数类型是文件时, mv命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它将所给的源文件或目录重命名为给定的目标文件名。
3. 当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个, mv命令将各参数指定的源文件均移至目标目录中。
举例:
1、重命名:
2、剪切文件(也可以是文件目录)
10、more指令-f : force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖
-i :若目标文件 (destination) 已经存在时,就会询问是否覆盖
more
对文件进行逐行阅读的工具
我们还是用刚刚那个生成字符串行的脚本工具:
按回车,其就会一行一行往下读。
如果要跳转到某一行
直接斜杠加上想搜索的关键字
其与cat的区别就是——cat是一次就将文件打印完了。
11、less指令less
less实际上就是加强版的more,其可以上翻也可以下翻,而more是只能下翻的。
并且,less还有着众多的选项,
-i 忽略搜索时的大小写
-N 显示每行的行号
/字符串:向下搜索“字符串”的功能
?字符串:向上搜索“字符串”的功能
n:重复前一个搜索(与 / 或 ? 有关)
N:反向重复前一个搜索(与 / 或 ? 有关)
q:quit
12、tail和head
tail head
查看文件的尾和查看文件的头。
默认查看10行。
如果需要自定义,可以在后面跟上-nX选项(X表示一个具体的数)
例如:
那么我如果想要显示中间的某多少行,比如显示600-610行,我们该怎么做比较好呢?
[root@VM-16-3-centos my]# head -n610 my.txt | tail -n10 //意为将从头读取my.txt文件,读取610行,然后将其输入到一个管道中,“|”在这里就表示这样一个管道。 //然后再从这个管道中tail其后十行
13、date等时间相关的指令
date显示
date 指定格式显示时间: date +%Y:%m:%d
date 用法: date [OPTION]... [+FORMAT]
所加的选项:
%H : 小时(00..23)
%M : 分钟(00..59)
%S : 秒(00..61)
%X : 相当于 %H:%M:%S
%d : 日 (01..31)
%m : 月份 (01..12)
%Y : 完整年份 (0000..9999)
%F : 相当于 %Y-%m-%d
时间设定方面(了解):
date -s //设置当前时间,只有root权限才能设置,其他只能查看。
date -s 20080523 //设置成20080523,这样会把具体时间设置成空00:00:00
date -s 01:01:01 //设置具体时间,不会对日期做更改
date -s “01:01:01 2008-05-23″ //这样可以设置全部时间
date -s “01:01:01 20080523″ //这样可以设置全部时间
date -s “2008-05-23 01:01:01″ //这样可以设置全部时间
date -s “20080523 01:01:01″ //这样可以设置全部时间
这样所得出来的就叫做时间戳 (格林威治时间)
14、Cal指令cal命令可以用来显示公历(阳历)日历。公历是现在国际通用的历法,又称格列历,通称阳历。 “阳历”又名“太阳历”,系以地球绕行太阳一周为一年,为西方各国所通用,故又名“西历”。
命令格式: cal [参数][月份][年份]
功能: 用于查看日历等时间信息,如只有一个参数,则表示年份(1-9999),如有两个参数,则表示月份和年份
我们就简单来说了。
15、find命令
find -name
常跟-name 选项,上面表示在1_lesson的文件目录下,寻找debug.c的文件。
当然,还可以有 -size等等寻找方式
而which命令实际上可以去寻找命令所在的文件夹
alias可以起别名,比如,可参照ls命令,给ls起别名。
16、grey命令我们还是用刚刚的那个字串脚本:
可以看到,其将所有带有 9的行 过滤出来了。
注意,其在过滤的时候,是以行为基本单位的
当然,它也有-n选项。
-i表示不分大小写进行文本匹配
-v表示反向匹配。(就是把不包含这个的显示出来)
grep常用来过滤日志,或者查看文件指定内容
17、zip/unzip指令压缩和解压缩。
zip unzip
压缩:
解压缩:
注意,我们可以用-d选项来指定解压的路径。
18、tar指令
打包/解包,不打开它,直接看内容
常用选项:
-c :建立一个压缩文件的参数指令(create 的意思);
-x :解开一个压缩文件的参数指令!
-t :查看 tarfile 里面的文件!
-z :是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩?
-j :是否同时具有 bzip2 的属性?亦即是否需要用 bzip2 压缩?
-v :压缩的过程中显示文件!这个常用,但不建议用在背景执行过程!
-f :使用档名,请留意,在 f 之后要立即接档名喔!不要再加参数!
-C : 解压到指定目录
-C选项表示的是自定义 解压缩路径。
具体其他的 -选项表示什么意思,可以参照上面的说明。
19、bc指令bc
就是用于计算。
很简单的东西。
20、uname命令语法: uname [选项]
功能: uname用来获取电脑和 *** 作系统的相关信息。
补充说明: uname可显示linux主机所用的 *** 作系统的版本、硬件的名称等基本信息。
常用选项:
-a或–all 详细输出所有信息,依次为内核名称,主机名,内核版本号,内核版本,硬件名,处理器类型,硬件平台类型, *** 作系统名称
这个...笔者不方便举例
权限 文件访问者的分类
Linux下分为两种用户:
超级用户和普通用户。
超级用户:可以再linux系统下做任何事情,不受限制
普通用户:在linux下做有限的事情。
超级用户的命令提示符是“#”,普通用户的命令提示符是“$”
做个比方:
文件和文件目录的所有者: u---User(中国平民 法律问题)
文件和文件目录的所有者所在的组的用户: g---Group(不多说)
其它用户: o---Others (外国人)
可以看到,我们上面的就是root权限
文件类型和访问权限(事物属性)关于文件,其有着文件类型和访问权限:
关于所属组的说法:
前面的9列,
(注:上图右侧文字的第三组中“使用者”应改位“所属组”,5-7位表示的是所属组的权限)
文件类型d:文件夹
-:普通文件
l:软链接(类似Windows的快捷方式)
b:块设备文件(例如硬盘、光驱等)
p:管道文件
c:字符设备文件(例如屏幕等串口设备)
s:套接口文件
基本权限文件权限值的表示方法 a)字符表示方法i.读(r/4): Read对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限
ii.写(w/2): Write对文件而言,具有修改文件内容的权限;对目录来说具有删除移动目录内文件的权限
iii.执行(x/1): execute对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限
iv.“—”表示不具有该项权限
b)8进制数值表示方法
文件访问权限的相关设置方法 a)chmod
功能: 设置文件的访问权限
格式: chmod [参数] 权限 文件名
常用选项:
R -> 递归修改目录文件的权限
说明:只有文件的拥有者和root才可以改变文件的权限
chmod
① 用户表示符+/-=权限字符
+ : 向权限范围增加权限代号所表示的权限
- : 向权限范围取消权限代号所表示的权限
= : 向权限范围赋予权限代号所表示的权限
用户符号:
u:拥有者
g:拥有者同组用
o:其它用户
a:所有用户
我们来演示一下:
注意,由于我们现在时root权限,所以不论我们是否删掉、怎样删掉权限,在root下还是想怎么读就怎么读,想怎么写就怎么写
注意:对于目录来说,目录的读权限是查看目录下的文件;目录的写权限则是在目录下增删新的文件(注意,和文件的内容没有关系);目录的执行权限则是能否进入该目录。
注意,如果一个目录没有了x权限,那么很有可能其r权限和w权限也会受影响(没了)。
当然,我们也可以将权限加上,甚至是批量化的加上
②三位8进制数字
每一个文件的每一种权限 只有两种状态,即可以或不可以,如果我们用 '1' 表示可以,用 '0' 表示不可以,然后将其认为是8进制数字,转换为10进制,也同样可以 更改。
举例:
b)chown
change own
功能:修改文件的拥有者
格式: chown [参数] 用户名 文件名
c)chgrp
功能:修改文件或目录的所属组
格式: chgrp [参数] 用户组名 文件名
常用选项: -R 递归修改文件或目录的所属组
和上面chown的用法相同,不再赘述。
当然,我们可以用下面这种方法同时改变文件拥有者和其所属组
可以这样去更改umask
从下面的代码开始呢,我们将用普通 用户进行演示
粘滞位当一个目录被设置为"粘滞位"(用chmod +t),则该目录下的文件只能由
一、超级管理员删除
二、该目录的所有者删除
三、该文件的所有者删除
注意:
一个普通用户可以干掉一个不属于自己和自己所属组的文件。
只有加上+t属性,其才会避免这种情况的发生。
补充:
关于shell的说法:(从感性的角度)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)