1、chmod命令
先简单介绍几个常用的命令:
- ls命令(列出当前目录下的文件及文件夹信息)
-a //列出当前目录下所有文件,包括以.开头的隐藏文件
-l //也可缩写为ll,列出当前目录下所有文件的详细信息
如下图所示为ls -l命令即ll命令执行所得结果,我们可以看到显示了c目录的所有信息,那这些信息都代表了什么意思呢?
首先介绍一下红色框圈出的十个字符,第一个字母表示了当前文件的类型:
“-” //普通文件
“d” //目录看,d是dirtectory(目录)的缩写
“l” //符号链接,符号链接的文件在文件信息的后面会指向另一个文件/目录,那个文件就是该符号链接指向的源文件/目录
“b” //块设备文件
“c” //字符设备文件
剩下的九个字符,我们分成3组,每组3个。因为linux是多用户多任务系统,所以一个文件可能被多人使用,所以我们针对不同的用户要有不同的操作权限。这9个字符则是对不同用户的一个权限分配。以(rwxr-xr-x)为例,rwx(Owner即文件拥有者/文件创建者拥有的权限)r-x(Group即文件拥有者所属的组拥有的权限)r-x(Other即其他用户拥有的权限)。其中r,w,x分别表示可读,可写,可执行权限,-则表示该权限未拥有。
如下图表示的权限就是:文件创建者自己可读可写可执行,同组的用户可读可写可执行,其他用户可读可执行不可写。
第二栏即上图中的2,表示文件个数。如果是文件的话,那这个数目自然是1了,如果是目录的话,那它的数目就是该目录中的文件个数了。
第三栏即上图中的may,表示该文件或目录的拥有者。
第四栏即上图中的may,表示所属的组(group)。每一个使用者都可以拥有一个以上的组,不过大部分的使用者应该都只属于一个组,只有当系统管理员希望给予某使用者特殊权限时,才可能会给他另一个组。
第五栏即上图中4096,表示文件大小。文件大小用byte来表示,而空目录一般都是1024byte,当然可以用其它参数使文件显示的单位不同,如使用ls –k就是用kb莱显示一个文件的大小单位,不过一般我们还是以byte为主。
第六栏上图Feb 28 15:10,表示最后一次修改时间。以“月,日,时间”的格式表示,如Aug 15 5:46表示8月15日早上5:46分。
第七栏即上图中C,表示当前文件的名字。
- mkdir命令(创建目录)
那我们在进入一个目录时需要哪些权限呢?在目录下执行增删查改(cd,touch,ls,rm,mv)文件动作,又需要哪些权限呢?
我们做一个操作:在普通用户may下,创建一个目录,然后将may的权限都取消,可以看到在没有任何权限的时候我们是无法进去该目录的。
- chmod 000 目录(对目录修改权限000)
上面有提到不同的用户对同一个文件有不同的权限,其中rwx为一组。我们按照二进制的逻辑来计算,从低位到高位(x到r)若是拥有该权限则分别是、
、
即1、2、4。所以当rwx权限全部拥有时就是4+2+1=7,,三组则是777。同理这里的000表示的就是,三组均不拥有rwx权限即该文件的权限为"---------"。
我们可以看到在Test目录没有任何权限的时候,我们是不能进入该目录的,因为我们对该目录没有查看、写入、执行权限。
除了上面的对目录修改权限之外,我们还有另一种修改权限的方式,就是chmod u/g/o/a +/-/= 文件名
其中,u 表示该文件的拥有者,g 表示与该文件拥有者属于同一个群体(group)者,o 表示其他的人,a 表示所有人。
+ 表示增加权限、- 表示取消权限、= 表示唯一设定权限。
我们依次赋给读写执行(r、x、x)权限,发现在只有赋予执行的权限,我们才可以进入该目录
此时拥有只执行权限,可以进入目录,但是不能查看(ls)该目录下的子目录及其文件。
在实验之后可发现,在赋予可读可执行的权限下我们可以进入该目录,也可以读取该目录中的内容,但是不能在该目录中创建文件。
在可写可执行的权限下,我们可以在目录中创建文件但是不能ls,在可读可写可执行的情况下我们可以在该目录中创建文件并且可以ls
- mv命令(移动文件/修改文件名)、
mv [-参数] 源文件/目录 目标文件/目录
-b :若需覆盖文件,则覆盖前先行备份。
-f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖
-i :若目标文件 (destination) 已经存在时,就会询问是否覆盖
-u:若目标文件已经存在,且 source 比较新,才会更新(update)
-t :--target-directory=DIRECTORY move all SOURCE arguments into DIRECTORY,即指定mv的目标目录,该选项适用于移动多个源文件到一个目录的情况,此时目标目录在前,源文件在后。
在赋予可写可执行权限时,才能去更改(mv)目录名,同时在此权限下才可以删除文件。
但是在Linux的超级用户root下,不会检查权限问题,因为他的等级很高。无论有没有权限,我们都可以cd/touch/ls/rm/mv
2、了解以下重要命令du,df,top,free,pstack,su,sudo(-s,-),adduser,password
- du命令
(1)命令格式:du[选项] [目录或文件名]
(2)命令功能:评估文件系统的磁盘使用量(常用于评估目录所占容量)
(3)命令参数:
-a //列出所有的文件与目录容量,因为默认仅统计目录下面的文件量而已
-h //以人们较易阅读的GB、MB、KB等格式显示
-i //不用硬盘容量,而已inode的数量来显示
-s //列出总量而已,而不列出每个目录占用容量
-S //不包括子目录下的总量
-k //以KB的容量显示各文件系统
-m //以MB的容量显示各文件系统
- df命令
(1)命令格式:df[选项] [目录或文件名]
(2)命令功能:显示文件系统的整体磁盘使用量
(3)命令参数:
-a //列出所有文件系统,包括系统特有的/proc等文件系统
-k //以KB的容量显示各文件系统
-m //以MB的容量显示各文件系统
-h //以人们较易阅读的GB、MB、KB等格式自行显示
-H //以M=1000K替代M=1024K的进位方式
-T //连同该分区的文件系统名称(例如ext3)也列出
-i //不用硬盘容量,而已inode的数量来显示
- top命令
(1)命令功能:提供实时对系统处理器的状态监视,显示系统中各个进程的资源占用状况
(2)命令参数:
-d //指定每两次屏幕信息刷新的时间间隔
-p //通过指定监控进程ID来监控某个进程的状态
- pstack命令
(1)命令格式:root# pstack PID
(2)命令功能:可显示每个进程的栈跟踪,需要由相应进程的属主或root运行。可以使用pstack来确定进程挂起的位置,此命令允许使用的唯一选项是要检查的进程的PID。
- su命令
(1)命令格式:su [-lm] [-c命令] [用户名]
(2)命令功能:身份切换命令
(3)命令参数:
- //单纯使用 - 如“su-”,代表使用login-shell的变量文件读取方式登录系统;若不跟用户名,代表切换为root用户
-l //与- 类似,但后面需要加欲切换的用户账号,也是login-shell方式
-m //与-p一样,表示使用目前的环境设置,而不读取新用户的配置文件
-c //仅进行一次命令,所以-c后可跟命令
- sudo命令
(1)命令格式:sudo [-b] [-u新用户账号]
(2)命令功能:切换身份来进行某项任务(仅有/etc/sudoers内用户才能使用,默认只有root可以使用)
(3)命令参数:
-b 将后续命令让系统自行执行,而不与目前的shell产生影响
-u 后可接欲切换的用户,若无此项则代表切换身份为root
- adduser命令
(1)命令格式:adduser [必要参数] [选择性参数]用户名
(2)命令功能:指令根据指令行参数给系统添加用户,它的配置信息保存在/etc/adduser.conf文件中
(3)命令参数:
-r|--system //创建一个系统用户
-q //只显示警告信息和错误信息,不显示一般信息
--debug //用于测试
- passwd命令
(1)命令功能:设置用户密码
(2)命令参数:
--stdin //可以通过来自前一个管道的数据,作为密码输入(对shell script有帮助)
-l //是Lock的意思,会将/etc/shadow第二列最前面加上,使密码失效
-u //与-l相对,是Unlock的意思
-S //列出密码相关参数,即shadow文件内大部分信息
-n //后面接天数,shadow的第4字段,多久不可修改密码天数
-x //后面接天数,shadow的第5字段,多久内必须改动密码
-w //后面接天数,shadow的第6字段,密码失效前的警告天数
-i //后接“日期”,shadow的第7字段,密码失效日期
3、Linux根目录下的重要目录的作用
/proc
存放用户与内核的交互信息,一个伪文件系统,它只存在内存当中,而不占用外存空间。它以文件系统的方式为访问系统内核数据的操作提供接口,用户和应用程序可以通过proc得到系统的信息,并可以改变内核的某些参数
/sys
管理设备文件,是可写的,可以通过它来访问或修改内核的参数。/sys的设计原则是一个属性文件只做一件事情,/sys属性文件一般只有一个值,直接读取或写入。
/SElinux
由Kernel SElinux模块和用户态工具两部分组成,进行程序、文件等权限设置依据的一个内核模块,是一个安全体系结构,主要用来加固操作系统,提高系统的安全性
/bin
二进制可执行命令,该目录下存放着普通用户的命令,单用户模式下可用,任何用户可用
/usr
最大的目录,存放着应用程序和文件
/lib
存放着和系统运行相关的库文件(/lib是内核级的,/usr/lib是系统级的)
/local
系统管理员在本地自己安装的软件,有bin,sbin,lib等。
/var
某些大文件的溢出区,比如日志文件和打印机假脱机文件。
/tmp
用户和程序的临时目录,重启后自动清空,/tmp给予所有系统用户读写权
/etc
系统所有的配置文件都在这个目录中
4、学习如何安装gcc/g++、gdb、vim
- 安装 gcc:yum install gcc
- 安装g++:yum install gcc-c++
- 安装gdb:
先切换到root权限。
centos点help在终端下打开火狐网,复制 https://mirrors.aliyun.com/回车到linux命令窗口(在联网的情况下并且手动复制粘贴)
再输入yum list | grep gdb
- 安装vim:输入命令 yum -y install vim