linux杂货铺

Linux重要目录

Home目录:/root,/home/username
普通用户可执行文件:/bin,/usr/bin,/usr/local/bin
系统管理页可执行文件:/sbin,/usr/sbin,usr/local/sbin
存放用户使用系统命令和应用程序等信息.像命令.帮助文件等:usr/
配置文件目录:/etc
临时文件目录:/tmp,此文件夹下的文件不稳定会被系统自动清除
内核和启动文件:/boot
服务器数据:/var,/srv:存放一些服务器启动之后需要提取的数据
系统信息:/proc,/sys
共享库:/lib,/usr/lib,/usr/local/lib
其它挂载点:/media,/mnt
文件或目录名注意:<=255个字符,区分大小写,不能使用"/"

目录结构详解

用户名@主机名 当前目录 #系统权限 $普通权限。~只家目录

root用户,linux系统默认的超级管理员用户:[root@xxxx~]#,#

root是用户名,xxx是主机名。~:root用户的家目录是在root下,[huwj@xxx~]$,huwj是普通用户名,xxx是主机名。

普通用户的家目录在/home下。

Linux命令

命令格式

命令 选项 参数(三者之间要有空格,区分大小写),选项和参数是可以没有的。

command [-options] [args]

[args]:参数(多个参数之间用空格分隔)

常用命令汇总

超级管理员root的添加用户命令:useradd xxx
切换用户:su huwj,sudo:暂时切换用户获得root权限
切换到超级管理员:su root,普通用户切换到超级管理员需要密码
显示当前目录:pwd(point name of current/working directory)
创建目录:mkdir 目录名 [目录1],直接创建多层目录:mkdir -p /home/demo/a/b/c 删除目录:rm -rf xxx
切换目录:cd 目录目标
1)绝对路径:以/开头的路径
2)相对路径:相对当前位置的路径,"."标识当前目录".."表示父目录
3)"-"标识当前一个目录(类似电视遥控器上返回)
4)"~"标识当前用户home目录 "~用户名"指定用户名对应的home目录
退出目录:cd ..,双层退出cd ../..
查看目录:ll,查看目录:ls,显示全部(包括隐藏文件):ls -a,显示全部且显示详细信息:ls -al/ls -a -l
显示某个文件的详细信息:ls -al install.log,显示两个或多个文件详细信息:ls -al install.log xxx.txt
模糊查询文件:ls -al install*,向下递归显示:ls -R /home/demo
查看文件:cat,清楚屏幕:clear

帮助命令:#表示需要root权限

1、#whatis 命令(如果不成功,则执行makewhatis)
2、使用help查看内建命令的帮助(enable查看内建命令),查看别名:alias
3、#man命令☆常用,man -l:在线参考手册接口
enter按行翻,空格按页翻;HOME/END键可以快速到首页/尾页(SecureCRT中无效);
查找按/要查找的内容,查找下一个/上一个:按n/N;退出按q
4、#info 命令,使用方式和man类似
5、命令 --help☆
6、查手册(chm类型文件)☆
更改文件名称:mv,例:mv [要改的文件] [改成的文件]
拷贝:cp
>cp 文件... 目标目录  拷贝文件...到目标目录,可以同时拷贝多个文件
例:cp install.log xxx.txt /home/demo/abc
拷贝到当前目录:cp ~/install.log .
拷贝目录:cp -r 目录 目标目录
移动文件/目录 #mv 源 目标
Linux中没有专门的改名的命令,mv兼职改名
在当前目录下,是将名称a改为名称b,当从当前路径的两个文件夹,进行mv操作时是移动。
当目录下目标目录存在,是移动操作,当目标目录不存在,是改名。
创建空文件/修改时间戳:touch
当touch 已有目录时,修改的是该文件的时间戳,当touch的是没有的目录时,创建的一个空文件
删除文件或目录:rm -rf 目录,-r递归删除,-f强制删除
只能删除空目录:rmdir 目录
删除之前要适当备份☆☆☆☆☆
比如进行大规模修改之前,要做好备份,否则想还原到原来时候还是得按个改,相当费劲

vim:编辑文档,编辑完成后按ESC退出,再按:,输入wq! 回车,保存退出

关机命令

关机需要管理员权限

>shutdown -h now 立刻关机
>shutdown -h 20:25 系统会在今天20:25关机
>shutdown -h +10 十分钟后关机
>shutdown -r now 系统立刻重启
>shutdown -r +10 系统在十分钟后重启
>reboot 就是重启
>halt 关闭系统,等同于shutdown -h now 和poweroff

linux的运行级别

>0:关机
>1:单用户--可以改超级管理员(root)的密码
>2:无网络的多用户
>3:命令行模式
>4:未用
>5:GUI(图像桌面模式)
>6:重启
运行级别的切换:#init 运行级别
查看运行级别:
1)who -r 显示当前运行级别以及系统当前时间
[root@localhost ~]# who -r
run -level 5 2018-01-02 14:24
2)runlevel:显示前一个(无则),
runlevel后显示,5 3:表示当前为3级别,上一次是5级别

当级别写N的时候,表示没有上一个级别。

运行级别的作用

1)重启
[root@localhost~]#reboot
[root@localhost~]#shutdown -rnow
[root@localhost~]#init 6
2)服务器一般使用运行级别3,减少图形界面包带来的资源浪费
3)忘记密码,修改密码
4)修改启动时默认的运行级别
☆☆☆运行级别之密码恢复:
Linux系统忘记root密码的情况该怎么办?重新安装系统当然不用,进入单用户模式更改一下root密码即可
操作步骤:
①重启系统(物理重启,reboot或init 6)
②出现有图时按enter
③进入单用户模式
④使用passwd命令修改密码
⑤重启后密码便修改完成!!
为什么每次启动都是默认进入图像界面?
因为在/etc/inittab文件中配置的默认级别为5,可以将它改为3,以后启动就自动进入命令行运行级别了
[root@localhost~]#vim /etc/inittab
改为3后,保存;重启。便改为每次启动进入命令行运行级别了。

vim命令

所有的Linux系统都会内建vi文本编辑器,其它的文本编辑器则不一定存在。很多软件的编辑借口都会主动调用vi,例如visudo、crontal等。vim可视为vi的高级版本。

用途

vim具有程序编辑的能力,可以主动的以字体颜色辨别语法的正确性,方便程序开发。vim是一个类似于vi的文本编辑器,不过在vi的基础上增加了很多新特效,vim被公认为类vi编辑器中最好用的一个。和Emacs并列成为类Unix系统用户最喜爱的编辑器。

三种模式

1)一般模式    
以vim打开一个文件就直接进入一般模式(默认模式),可以使用上下左右移动光标来移动,也可以使用删除字符或删除整行来处理文件内容,也可以使用复制,粘贴来处理文件数据。按键Home和End可回到文件的首或尾。☆☆☆/word乡下查找单词"word",?word向上查找    
2)编辑模式    
在一般模式中可以删除,复制,粘贴等,但无法编辑文件内容。按下i、l、o、O、a、A、r、R等任何一个字母后进入编辑模式。并在左下方出现INSERT或REPLACE。该模式下可以输入文件内容。按<Esc>返回一般模式。        
3)命令模式    
在一般模式当中,输入:/?三个字符中任何一个按钮,就可以将光标移动到最下面一行。在这个模式当中,可以提供查询,替换等功能,同时存盘,离开vi,显示行号等等命令都是在此模式进行。    
例:创建一个空文件:touch test.txt,编辑该文件:vim test.txt进入一般模式,点a键,进入编辑模式输入abc后,按ESC键退出,按在冒号[:]wa!更改后,保存成功,cat test.txt查看编辑完的文件内容为abc

vim的操作
☆☆☆☆☆一般模式下替换操作:    
:s/word1/word2/g 在当前行将word1替换成word2    
:%s/word1/word2/g 在当前文件将word1替换成word2    
:n1,n2s/word1/word2/g 在n1到n2行查找word1替换成word2(n1、n2位数字)    
:1,$ s/word1/word2/g 从第一行到最后一行查找word1替换成word2    
☆☆☆☆☆一般模式下删除操作:    
x向后删除一个字符,nx向后删除n个字符,X向前删除一个字符,dd删除光标所在行    
ndd删除光标所在行以下n行,d1G删除光标所在行到第一行所有数据,dG删除光标所在行到最后一行
d$删除光标所在处到同行最后一个字符,d0删除光标所在处到同行第一个字符    
☆☆☆☆☆一般模式下复制操作:    
yy复制光标所在行,nyy复制光标所在向下n行(n为数字),y1G复制光标所在行到第一行所有数据    
yG复制光标所在行到最后一行所有数据,y$复制光标所在处到同行最后一个字符,y0复制光标所在处到同行第一个字符    
p将已复制的数据粘贴到光标所在下一行    
u复原前一个操作(类似于windows中的ctrl+z)    
☆☆☆☆☆一般模式->编辑模式的转换:    
i从光标所在处插入,l从所在行第一个非空白字符处插入,a从光标所在下一个字符处插入A从光标所在行最后一个字符处插入,o在光标所在处下一行插入新的一行,O在光标所在处上一行插入新的一行r替换光标所在处字符一次,R一直替换光标所在处文字知道按下ESC

☆☆编辑后的操作:
保存后离开--    :wq!
不保存离开--    :q!
显示行号--    set nu
取消显示行号-- set nonum

用户、用户组和文件权限

由于linux是多用户,多任务的操作系统,为此,会经常有多个用户同时使用某一台主机。为了考虑每个用户的隐私安全及每个用户特殊的工作环境,设计了文件所有者这个概念。而文件所有者就是文件所属用户

任何一个要使用系统资源的用户,都必须首先向系统管理页申请一个账号,然后以这个账号的身份进入系统。

用户组

用户组是为了团队开发资源而设定的。举例:某台主机上的资源有两个团队共同使用,teamA(曹操,许褚,夏侯渊)和TeamB(刘备,关羽,诸葛亮)。这两个团队之间是竞争关系,但却要提交同一份报告,每个团队的成员需要有权限修改该团队其他成员的数据,同时另一个团队的成员无权查看本组自己的文件内容,此时用户组就起到了关键作用。每个账号都可以有多个用户组支持。用户、用户组和文件权限的关系息息相关!!!☆☆☆☆

除了用户,用户组之外,有个其他人的角色,和用户组没有任何关系的用户就叫其他人。

linux系统的理念:一切皆文件。用户身份与用户组记录的文件:

a.在linux系统中,默认情况下所有的系统上的账号信息都记录在/etc/passwd这个文件内(包括root用户)。而个人密码记录在/etc/shadow这个文件内。所有Linux的组名都记录在/etc/group内。这三个文件非常重要,不要轻易做变动。在后续内容中,我们还会详细做介绍。

b.综上,用户身份与用户组的概念,能够帮助我们的Linux多任务环境变的更为容易管理。
c.实现用户账号的管理,要完成的工作主要有如下几个方面:
①用户账号的添加、删除与修改(以及更改用户所属用户组)。
②用户口令的管理。(刚添加完的用户是锁定的,需要解锁)
③用户组的添加、删除管理。

1)用户操作

用户管理-添加用户:            
用户账号的管理工作主要涉及到用户账号添加、修改和删除。            
添加用户账号就是在系统中创建一个新账号,然后为新账号分配用户号、用户组、主目录和登陆Shell等资源。            
刚添加的账号是被锁定的,无法使用。            
useradd[选项] 用户名            
参数说明:        nologin的用户是伪用户!    
选择:            
-c comment指定一段注释性描述            
目录指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。            
-d目录,指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。            
-g用户组指定用户所属的用户组。            
-G用户组,用户组指定用户所属的附加组            
-s,Shell文件,指定用户的登陆Shell。            
-u用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号(不建议)。            
创建用户:#useradd tom            
查看用户信息:#id tom ->显示UID/GIN以及tom还属于哪些组            
[root@localhost~]# useradd tom            
[root@localhost~]# id tom            
uid=502(tom)gid=502(tom)groups=502(tom)            
在创建用户时,如果没创建用户组,系统会默认创建一个默认的用户组☆            
创建用户,指定其UIR为800            
[root@localhost~]# useradd -u 800 jerry            
[root@localhost~]# id jerry            
uid=800(jerry) gid=800(jerry) groups=800(jerry)            
添加用户lucy,并设置他个人主目录练习            
#useradd -d /usr/lucy -m lucy            
此命令创建了一个用户lucy,其中-d和-m选项用来为登录名lucy产生一个主目录/usr/lucy(/home为默认的用户主            
目录所在的父目录)            
练习:            
创建用户gm,指定他属于主用户组"jerry",附加组"adm、root",登陆使用的shell是/bin/sh            
useradd -g jerry -G adm,root -s /bin/sh gm            
id gm            
用户管理--修改用户:            
修改用户账号就是根据实际情况更改用户的有关属性,如用户号、主目录、用户组、登陆Shell等。            
修改已有用户信息使用usermod命令,其格式如下:            
①usermod [选项] 用户名            
②常用选项包括-c,-d,-m,-g,-G,-s,-u以及-o等,这些选项的意义与useradd命令中选项一样,可以为用户指定新            
资源值。            
③另外,有些系统可以使用选项:-l新用户名,这个选项指定一个新的账号,即将原来的用户名改为新的用户名。            
练习:将用户gm的登陆shell修改为bash,主目录改为/home/gmh,用户组改为root。            
先看下用户信息:id gm            
usermod -s /bin/bash -g root -d /home/gmh gm            
注意:如果该主目录不存在,即使加上-m选项,也不会创建该目录。            
用户管理-用户口令的管理            
用户管理的一项重要内容就是用户口令的管理。用户账号刚创建时没有口令,但是被系统锁定,无法使用,必须为            
其指定口令后才可以使用,即使是指定空口令。            
指定和修改用户口令的Shell命令是passwd,超级用户可以为其他用户指定口令,普通用户只能用它修改自己的口令            
命令格式为:passwd [选项] [用户名];中括号只得是可用可无,如果没有用户名只修改当前用户            
可使用的选项:            
①-l(lock)锁定口令,即禁用账号。            
②-u(unlock)口令解锁。            
③-d(HOME_DIR)使账号无口令。            
④-f强迫用户下次登陆时修改口令。            
用户管理-切换用户:            
#su - 目标用户    管理页切换用户不需要密码,用户切换管理页需要密码            
exit,退出当前用户。            
用户管理-删除用户:            
#userdel 用户名   删除指定的用户名            
[root@localhost~]# userdel alice            
[root@localhost~]# ls /home/            
alice demo ds jerry jinxf tom zs            
#userdel -r 用户名 在删除指定用户的同时删除他的home目录(工作中不建议使用,一个用户离职后,用户可以            
删除,但他的工作文件很可能还有用)

2)用户组操作

每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理,不同linux系统对用户组规定有所不同,入Linux下的用户属于与它的同名的用户组,这个用户组在创建用户时同时创建的。用户组的管理设计用户组的添加、删除和修改,实际上就是对/etc/group文件的更新。            
用户组管理-添加:            
格式:groupadd [选项] 用户组名称
可以使用选项有:            
-g GID指定新用户组的标识号(GID)。            
-o一般与-g选项同时使用,表示新用户组的GID可以与系统已有用户组的GID相同。            
添加用户组emp            
#groupadd emp            
添加用户组market,并制定标识号为8000            
#groupadd -g 8000 market            
将用户添加到附加组            
#groupadd -aG market tom    (a:append G附加组)            
用户组管理-删除:            
groupdel group1(group1是用户组组名)            
用户组管理-修改            
groupmod [选项] 用户组名称            
常用选项有:            
-g GID为用户组指定新的组标识号。            
-o与-g选项同时使用,用户组的新GID可以与系统已有用户组的GID相同            
-n新用户组,将用户组的名字改为新名字            
用户组管理-当前用户切换用户组:            
如果一个用户同时属于多个用户组,那么用户可以在用户组之间切换,以便具有其他用户组的权限。            
用户可以在登陆后,使用命令newgrp切换到其他用户组,这个命令的参数就是目的用户组。例:            
$newgrp root,这条命令将当前用户切换到root用户组,前提条件root用户组确实是该用户的主组或附加组。            
用户账号有关的系统文件详细介绍:            
[root@localhost~]# cat /etc/passwd            
gmx:802:0:/home/z:/bin/bash            
tom:x:803:803:/home/tom:/bin/bash            
/etc/passwd中一行记录对应着一个用户,每行记录又被冒号“:”分隔为7个字段,其格式具体含义如下:            
用户名:口令:用户标识号:组织识号:注释性描述:主目录:登陆Shell            
1.“用户名”是代表用户账号的字符串。            
通常长度不超过8个字符,并且有大小写字母和/或数字组成,登录名中不能有冒号,因为冒号在这里是分隔符。为了兼容起见,登录名中最好不要包含点字符(.)并且不适用连字符(-)和加好(+)打头,/也不建议使用(自动创建主目录存在问题)            
2."口令"一些系统中,存放着加密后的用户口令字。            
虽然这个字段存放的只是用户口令的加密串,不是铭文,但是由于/etc/passwd文件对所有用户都可读,所以这仍是一个安全隐患。因此现在许多Linux系统(如SVR4)都使用了shadow技术,把真正的加密后的用户口令字存放到/etc/shadow文件中,而在/etc/passwd文件的口令字段中只存放一个特殊字符,附加"x"或"*"。            
3."用户标识号"是一个整数,系统内部用它来标识用户。            
一般情况下它与用户名是一一对应的。如果几个用户名对应的用户标识号是一样的,系统内部将把它们视为同一用户,但是它们可以有不同的口令,不同的主目录以及不同的登陆Shell等。通常用户标识号的取值范围是0~65535,0是超级用户root的标识号,1~99由系统保留,作为管理账号,普通用户标识号从100开始,在Linux系统中,这个界限是500。            
4."组织标号"字段记录的是用户所属用户组,它对应着/etc/group文件中的一条记录。            
5."注释性描述"字段记录着用户的一些个人情况。            
例如用户的真实姓名,电话,地址等,这个字段并没有什么实际的用途。在不同的Linux系统中,这个字段格式并没有统一,许多Linux系统中,这个字段存放的是一段任意的注释性描述文字,用作finger命令的输出。            
6."主目录",也就是用户的起始工作目录。            
它是用户在登陆到系统之后所处的目录。在大多数系统中,各用户的主目录都被组织在同一个特定的目录下,而用户主目录的名称就是该用户的登陆名。各用户对自己的主目录有读、写、执行(搜素)权限,其它用户对此目录的访问权限则根据具体情况设置。            
7.用户登陆后,要启动一个进程,负责将用户的操作传给内核,这个进程是用户登陆到系统后运行的命令解释器或某            
个特点的程序,即Shell。Shell是用户与Linux系统之间的接口。Linux的Shell有许多在,每种都有不同的特点,常用的有sh(Bourne Shell)csh(C Shell),ksh(Korn Shell),tcsh(TENEX/TOPS-20 type C Shell),bash(Bourne Again Shell)等。系统管理员可根据系统情况和用户习惯为用户指定某个Shell,如果不指定Shell,那么系统使用sh(或bash)为默认的            
登陆Shell,即这个字段的值为/bin/sh。用户登陆Shell也可以指定为某个特定程序(此程序不是一个命令解释器)利用这一特点,我们可以限制用户只能运行指定应用程序,在该应用程序运行结束后,用户就可自动退出系统。有些Linux系统要求只有那些在系统中等级了的程序才能出现在这个字段中。            
8.系统中有一类用户成为伪用户(psuedo users)            
这些用户在/etc/passwd文件中也占有一条记录,但是不能登录,因为它们的登陆shell为空(或/sbin/nologin)。它们的存在主要是方便系统管理,满足相应的系统进程对文件属主的要求。            
常见的为用户如下所示:            
伪用户 含义            
bin拥有可执行的用户命令文件            
sys拥有系统文件            
adm拥有账户文件            
uucp UUCP使用            
Ip Ip活Ipd子系统使用            
nobody NFS使用            
9./etc/shadow中的记录行与/etc/passwd中的一一对应,它由pwconv命令根据/etc/passwd中的数据自动产生,            
它的文件格式与/etc/passwd类似,由若干个字段组成,字段之间用":"隔开。这些字段是:            
登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志            
①"登录名"是与/etc/passwd文件中的登录名相一致的用户账号            
②"口令"字段存放的是加密后的用户口令字,长度为13个字符,如果为空,则对应用户没有口令,登陆时不需要口令;如果含有不属于集合{./0-9A-Za-z}中的字符,则对应的用户不能登陆。            
③"最后一次修改时间"标识的是从某个时刻起,到用户最后一次修改口令时的天数。时间七点对不同的系统可能不一样。            
例如在SCO Linux中,这个时间七点是1970年1月1日。            
④"最小时间间隔"指的是两次修改口令之间所需的最小天数。            
⑤"最大时间间隔"指的是口令保持有效的最大天数。            
⑥"警告时间"字段标识的是从系统开始警告用户到用户密码正式失效之间的天数。            
⑦"不活动时间"标识的是用户没有登陆活动但账号仍能保持有效的最大天数。            
⑧"失效时间"字段给出的是一个绝对的天数,如果使用了这个字段,那么就给出相应账号的生存期,期满后,该账号就不再是一个合法的账号,也就不能再用来登陆了。            
例:下面是/etc/shadow的部分内容            
[root@localhost~]# cat /etc/shadow            
root$1$wLLDDHgEB$6IPm6zobBrbncPDvkajb1:17206:0:999999:7-            
bin:*:15980:0:999999:7-            
用户组所有信息都存放在/etc/group文件中。            
将用户分组是Linux系统中对用户进行管理及控制访问权限的一种手段。            
每个用户都属于某个用户组;一个组可以有多个用户,一个用户也可以属于不同组。            
当一个用户同时是多个组中成员时,在/etc/passwd文件中记录的是用户所属的主组,也就是登陆时所属的默认组,而其他组成为附加组。            
用户要访问属于附加组的文件时,必须首先使用newgrp命令使自己成为索要访问的组中成员。            
用户组所有信息都存放在/etc/group文件中。此文件格式也类似于/etc/passwd文件,由冒号(:)隔开若干个字段,这些字段有:            
组名:口令:组标识号:组内用户列表            
①"组名"是用户组的名称,由字母或数字够吃,与/etc/passwd中的登录名一样,组名不应该重复。            
②"口令"字段存放的是用户组加密后的口令字,一般Linux系统的用户组都没有口令,即这个字段一般为空,或者是*。            
③"组织识号"与用户标识号类似,也是一个整数,被系统内部用来标识组。            
④"组内用户列表"是属于这个组的所有用户的列表/bl,不同用户之间用逗号分隔,这个用户组可能是用户的主组,也可能是附加组。

3)文件权限

首先我们以root用户的身份登录Linux,执行ls -al查看文件,查看所有信息。ls是list的缩写,能显示文件的文件名和相关属性,而-al表示列出所有的文件详细的权限与属性(包含隐藏文件诸如文件名以"."开头的文件)。显示信息详细含义如下:

d代表目录(directory),-代表文件。l标识连接文件(link)

文件权限一共9段,前三段代表:文件所有者权限,第二个三段:文件所属组权限,第三个三段:其它人的权限。

r代表读的权限,w代表写权限,x代表可执行(excute),-代表没有权限。这三个参数的出现顺序不会改变,若没有某个权限则会以-代替。drwx------后面的数字10只得是连接数表示有多少文件名连接到此节点(i-node)每个文件都会将他的权限与属性记录到文件系统的i-node中,但是Linux所使用的目录树却是使用文件名来记录,因此每个文件名就会连接到一个i-node。这个属性记录就是有多少不同的文件名连接到相同的一个i-node号码。

设备与设备文件b、c:

与系统外设和存储等相关的一些文件,通常都几种在/dev

这个目录中,分为两种:

①块(block)设备文件b:就是一些存储数据,以提供系统随机访问的接口设备,例如硬盘,软盘等。

可以随机的再硬盘的不同块读写,这种设备就是成组设备。cd /dev;然后 ls -al sda

②字符(character)设备文件c:是一些串行端口的接口设备,例如键盘,鼠标。这些设备特征是"一次性读取"不能够的截断输出。

总结:除了设备文件是我们系统很重要的文件,最好不要随意修改之外(通常也不会让你修改);另外一个比较有趣的文件就是连接文件,类似window的桌面快捷方式,同样可以将Linux下的连接文件简单的视为一个文件或目录的快捷方式。至于socket与FIFO文件比较难以理解,因为他们与进程比较有关系,之后进行理解。

改变文件属性和权限

chgrp:改变文件所属用户组
语法:chgrp [-R] dirname/filename
参数-R如果为目录递归修改组。
作用:使用chgrp命令可以改变一个文件的用户组,它是changegroup的简称。
注意:需要注意的是,要改的组名必须要在/etc/group文件内存在才行,否则会出错。
案例:我们使用root的身份登录Linux,那么在我们的主文件内有一个install.log的文件,并且在/etc/group里已经存在一个名为hadoop的用户组,但是testing这个用户组并不存在于/etc/group中,我们要做以下操作:
chgrp hadoop money,把money用户组改成hadoop用户组。

chown:改变文件所有者。

语法:chown [-R] 用户账号 dirname/filename或  chown [-R] 用户账号:用户组名 dirname/filename

作用:使用chown命令可以改变一个文件的所有者,还可以直接修改群组的名称;它是changeowner的缩写。

注意:用户必须是已经存在于系统中的账号,也就是在/etc/passwd这个文件中有记录的用户名称才能改变。如果要将目录下的所有子文件或目录同时改变文件所有者,加-R参数即可。

范例:将install.log的所有者改为bin用户:

[root@localhost~]#chown bin install.log

chmod:改变文件的权限☆☆☆☆☆

语法:chmod [-R] mode dirname/filename
作用:文件或目录权限的改变使用的是chmod(change file mode bits)这个命令
注意:但是权限的设置方法分两种,可以通过数字或符号进行修改。

①mode讲解之数字类型改变文件权限:
Linux的基本权限有9个,分别是owner,group,others三种身份各自的read,write,excute权限,各个权限对应数字如下:
r:4、w:2、x:1
为此每种身份各自的三个权限数字相加即可得出数字表示的权限...例如[-rwxrwx---]可以表示为:
owner = rwx=4+2+1=7
group = rwx=4+2+1=7
others=---=0+0+0=0
范例:要修改文件权限,改为770即可:
chmod 770 install.log
②mode讲解之符号类型改变文件权限:
另一种改变权限的方法就是通过符号,Linux总共有9种权限,对应三种身份,为此我们可以通过u,g,o代表三种身份,另外a代表全部身份。对应的权限可以写为r,w,x,如图:

范例:我们要将一个文件的权限改为[-rwxr-xr-x],具体来说:
user(u):具有可读可写可执行权限;
group与others(g/o):具有可读可执行权限;
chmod u=rwx,go=rx .bashrc
chmod a+w .bashrc:让所有的有写权限。        
chmod a-w .bashrc:让所有的没有写权限。

权限对文件的重要性

文件是实际还有数据的地方,包括一般文本文件,数据库内容文件,二进制可执行文件(binary program)等等因此,文件全县有如下意义:
r(read):可读取此文件的实际内容,如读取文本文件的文字内容等;
w(write):可以编辑,新增或者修改该文件内容;
x(execute):该文件具有可被系统执行的权限。(windows中是否可执行主要看后缀,如.exe是可执行的)
注☆:在Linux中,文件是否被执行是由是否具有"x"这个权限来绝对,与拓展名无关。

权限对目录的重要性
r(read contents in directory):标识具有读取目录结构清单的权限,所以当你具有读取(r)一个目录权限时,    
标识你可以查询该目录下的文件名的数据。所以你就可以利用ls这个指令将改目录的内容列表显示出来。    
w(modify contents of directory):这个可写入权限对目录来说,表示你具有改变目录结构清单的权限,    
也就是地下这些权限:    
①建立新的文件或子目录:    
②删除已存在的文件或子目录(无论该文件的权限)    
③将已存在的文件或目录进行重命名;    
④移动该目录内的文件,目录位置。    
x(access directory):在Linux中,目录不可以被执行,目录的x代表的是使用者能否进入该目录成为工作目录的用途。所谓的工作目录(work directory)就是你的目前所在的目录。举例来说,当你登入Linux时,你所在的Home目录就是你当下的工作目录。

Linux文件种类和扩展名

Linux文件扩展名

在windows中,能被执行的文件扩展名通常是.exe,.bat等等,而在Linux下,只要你的权限当中具有x的话即代表这个文件具有可被执行的能力。

文件种类

纯文字档(ASCII):这是Linux系统中最多的一种文件类型,成为纯文本文件是因为内容为我们人类可以直接读取数据,例如数字,字母等等。举例来说,你可以使用[cat ~/.bashrc]就可以看到该文件的内容。

二进制文件(binary):你的Linux当中可执行文件(scripts,文字批处理文件不算)

数据格式文件(data)数据接口文件(socket),数据输送文件(FIFO,pipe)

目录(directory)、连接文件(link)、设备与设备文件(device)、块(block)设备文件

磁盘分区

①磁盘分区格式:
>xvdx(x为a-z):Xen虚拟机硬盘
>hdx(x为a-d):IDE硬盘
>sdx(x为a-z):SCSI,SATA,USB硬盘---用的较多
这几个分区格式只能存在一种格式。
②主分区(primary partion)和扩展分区(extension partion),这两个分区数目之和不能大于四个。且基本分区可以马上被使用但不能再分区。扩充分区必须再进行分区后才能使用,也就是说它必须还要进行二次分区。那么由扩充分区再分下去的是什么呢?它就是逻辑分区(logical partion),况且逻辑分区没有数量上限制。linux采用的是树型结构。最上层是根目录,其他的所有目录都是从根目录出发而生成的。微软的DOS和windows也是采用树型结构,但是在DOS 和windows中这样的树型结构的根是磁盘分区的盘符,有几个分区就有几个树型结构,他们之间的关系是并列的。但是在linux中,无论操作系统管理几个磁盘分区,这样的目录树只有一个。从结构上讲,各个磁盘分区上的树型目录不一定是并列的。
③查看磁盘分区命令
fdisk -l 列出分区列表情况
df(disk free):显示磁盘相关信息
parted -l:显示分区情况
lsblk:查看硬件设备
通常,windows系统磁盘,一般都是C,D,E,F四个盘。Linux系统磁盘:sda1,sda2,sda3,sda4

磁盘的物理结构

磁盘:它是有一个个盘片组成的,从盘片的结构上来看途中的一圈圈灰色的同心圆为一条条磁道,从圆心向外画直线,可以将磁道划分为若干个弧段。每个磁道上一个弧段被称为一个扇区(图绿色部分)。扇区是磁盘的最小组成单元,通常是512字节。磁盘包括磁头、磁道、住面、扇区、盘片。

磁盘分区:指定分割区域起始与结束的磁柱。磁盘分区是告诉操作系统,磁盘在此分割区域内可以存取的区域。例如A磁珠到B磁珠之间的区块,如此一来操作系统就能知道它可以制定区块进行文件读,写,查询等操作。

使用磁盘之前为什么需要格式化??因为每种操作系统所设定的文件属性/权限,以及存放数据的格式有所不同。

Ext2/Ext3/Ext4区别
这仨都是文件系统格式:df -hT,查看文件系统类型。
Linux kernel自2.6.28开始正式支持新的文件系统Ext4。
Ext4是Ext3的改进版,修改了Ext3中部分重要的数据结构。Ext3对Ext2,只增加了一个日志功能而已。    
Ext4可以提供更佳的性能和可靠性,还有更为丰富的功能,更大的文件系统和更大的文件。    
较之Ext3所支持的最大16TB文件系统和最大2TB文件,Ext4分别支持1EB(1048576TB,1EB=1024PB,1PB=1024TB)的文件系统,以及16TB的文件。    
无限数量的子目录:Ext3只支持32000个子目录,而Ext4支持无限数量子目录Extents(区段)    
Ext3采用间接块映射,当操作大文件时,效率极其低下。比如一个100MB大小的文件,在Ext3中要简历25600个数据块    
(每个数据块大小为4kb)的映射表,在Ext3中,每个物理块都需要一个逻辑块与之相对应。Ext4引入extents概念,提高效率,每个extent为一组连续的数据块,理想情况下,以上文件则表示为只需要一个extent来记录映射关系。    
多块分配:当写入数据到Ext3文件系统时,Ext3的数据块分配器每次只能分配一个4kb的块,写一个100MB文件就要调用25600次数据块分配器,而Ext4的多块分配器"multiblockallocator"(mballoc)支持一次调用分配多个数据块。

日志校验

日志是最常用部分,也极易导致磁盘硬件故障,而从损坏的日志中恢复数据会导致更多的数据损坏。Ext4的日志校验功能可以很方便地判断日志数据是否损坏,将过去两阶段日志机制并成一个阶段,提高性能。

swap(交换分区)

使用磁盘存储内存不够而"溢出来"的内容。当系统物理内存不够用的时候,就需要将物理内存中的一部分空间释放出来,以供当前运行的程序使用。
最容易成为被释放的对象:一些很长时间没有什么操作的程序。被释放的空间被临时保存到Swap空间中。等到那些
被换出的程序要继续运行时,再从Swap中恢复保存的数据到内存中。
一般来说可以按照如下规则设置swap大小:
4G以内的物理内存,SWAP设置为内存的2倍。
4-8G的物理内存,SWAP等于内存大小。
8-16G的物理内存,SWAP设置为8G。
64-256G物理内存,SWAP设置为16G。

系统什么时候使用swap????

实际上,并不是等所有物理内存都消耗完毕之后,才去使用swap的空间,什么时候使用是由swappiness参数控制:
[root@localhost~]#cat /proc/sys/vm/swappiness 60
默认值是60。swappiness=0的时候表示最大限度使用物理内存,然后才是swap空间,swappiness=100时候表示
积极的使用swap分区,并且把内存上的数据及时的搬运到swap空间里。
临时修改交换分区:sysctl vm.swappiness=10
vm.swappiness=10
这里修改已经生效,但是如果我们重启了系统,又会变为60。
永久修改交换分区:
在/etc/sysctl.conf文件里添加如下参数:vm.swappiness=10
vim /etc/sysctl.conf->i->修改->esc->wq,退出并保存。
swap开启与关闭:
swapon -a:开启
swapoff -a:关闭

文件的挂载

1)挂载点的意义:    
每个文件系统都有独立的inode/block/superblock等信息,这个文件系统要能够链接到目录树才能被我们使用。将文件系统和目录树结合的动作我们成为挂载。linux系统中每个分区都是一个文件系统,都有自己的目录层次结构。linux会将这些分属不同分区的、单独的文件系统按一定的方式形成一个系统的总的目录层次结构。这里所说的“按一定方式”就是指的挂载。将一个文件系统的顶层目录挂到另一个文件系统的子目录上,使它们成为一个整体,称为挂载。把该子目录称为挂载点。    
1、挂载点:一定是目录,此目录为文件系统的入口。    
2、一个分区挂载在一个已存在的目录上,这个目录可以不为空,但挂载后这个目录下以前的内容将不可用。对于其他操作系统建立的文件系统的挂载也是这样。但是需要理解的是:光盘、软盘、其他操作系统使用的文件系统的格式与linux使用的文件系统格式是不一样的。光盘是ISO9660;软盘是fat16或ext2;windows NT是fat16、NTFS;windows98是fat16、fat32;windows2000和windowsXP是fat16、fat32、NTFS。

mount命令:将设备挂载到某个目录#
mount常用参数
t指定设备的文件系统类型
ext4 linux目前常用的文件系统
nfs网络文件系统
iso9660 CD-ROM光盘标准文件系统
auto自动检测文件系统
o指定挂载文件系统时的选项
ro以只读方式挂载
rw以读写方式
mount [-fnrsvw] [-o option[,option]...] 设备文件 挂载点

挂载到某个目录:
# mkdir /mnt/cdrom
# mount -t iso9660 /dev/cdrom1 /mnt/cdrom
mount: block device /dev/sr0 is write-protected, mounting read-only
查看挂载信息:df -h
取消挂载:umount
卸载:umount设备或挂载点
umount /mnt/cdrom或umount /dev/cdrom1或# umount /dev/sr0

文件操作

df:列出文件系统整体磁盘使用情况
df -a:列出所有文件系统
df -k:以KBytes的容量显示文件系统
df -m:以MBytes的容量显示文件系统
h:GBytes,MBytes,Kbytes等格式自行显示
-i:以inode数量显示
du:文件系统磁盘使用量或目录使用量
du -a:列出所有的文件不目录容量
du -h:以人们较易读的容量格式(G/M)显示
du -s:列出总量而已,而不列出每个各别的目录占用量
du -k:以KBytes列出容量显示
du -m:以MBytes列出容量显示
dumpe2fs:观察文件系统
dumpe2fs [options] <device>
-h:仅列出superblock的数据,不会列出其他区段内容
#dumpe22fs -h/dev/sda1----用的非常少~~~~
查看已知文件名的文件路径:
①find / -name tnsnames.txt
②locate tnsnames.txt

网络知识

1)网络基础知识
OSI七层和TCP/IP四层的关系
七层结构记忆方法:应、表、会、传、网、数、物

OSI七层是最合理的网络模型,OSI四层模型是运用最广泛的。    
1)OSI引入了服务,接口,协议,分层的概念,TCP/IF借鉴了OSI的这些概念简历TCP/IP模型    
2)OSI先有模型,后又协议,先有标准,后进行实践;而TCP/IP则相反,先有协议和应用再提出了模型,且是参照的OSI模型。    
3)OSI是一种理论下的模型,而TCP/IP被广泛使用,成为网络互联事实上的标准。    
TCP:transmission control protocol 传输控制协议    
UDP:user data protocol用户数据包协议    
2)常用网络设备    
①交换机:在交换机之前有一个HUB设备(已基本淘汰)    
网络传输单位:    
bit/s或bps/s,百兆光纤:100Mb/s,文件大小单位:byte->B    
交换机原理:    
MAC信息表:A->1,B->。Mac地址是48位二进制数组成,方便起见转换为12位16进制数00:0C:29:5E:88:43

Mac地址表示计算机的唯一标识(全球唯一),相当于人的身份证号        
MAC地址是全球唯一,为何不使用MAC地址连入互联网,而是使用IP地址呢???        
比如身份号也是唯一的,发快递时为何使用收件地址是相同道理。        
MAC地址虽然是计算机的唯一标识,但是无法确定该计算机的确切的地理位置,所以指定计算机的IP来确定他的        
地理位置。局域网内,假如A->B发信息,C接不到A发的信息。

②交换机和路由器    
路由器连接外网,交换机管理局域网的私有地址,路由器和交换机有连接点就是网关。    
IP4:32位二进制数,点分10进制,4294967296(256^4),最多有这些ip地址。    
IP4地址明显不够用,怎么办?    
IP6为普及之前的解决方案是私有地址:10.x.x.x  172.16.x.x-172.31.x.x    
☆☆☆每台电脑的私有地址是交换机来记录的!    
家用路由器:将交换机和路由器已经合为一体了!!!

③网络的概念:    
>IP地址分析    
IP地址=网络位+主机位    
相同的网络,网络位肯定相同,主机位不一样    
不同的网络,网络位肯定不同,主机位可能一样    
比如:电话号码    
北京:010-88889999    
上海:021-12345678    
交换机连接相同的网络,路由器连接不同的网络。    
>子网掩码    
子网掩码(subnet mask)又叫网络掩码,地址掩码,子网络遮罩,它是一种用来指明一个ip地址的哪些位标识的是主机所在的子网,以及哪些位标识的是主机的位掩码。子网掩码不能单独存在,它必须结合IP地址一起使用。子网掩码只有一个作用:就是将某个IP地址分成网络地址和主机地址两部分。
子网掩码是一个32位地址,用于屏蔽IP地址的一部分以区别网络标识和主机标识,并说明该IP地址是在局域网上,还是在远程网上。
子网掩码:在二进制的前提下,将网络位置全设置1,主机位置全设置0,作用是判断一个IP地址属于哪个网络。
用法将IP地址与子网掩码按位做与运算。

例:       
IP地址:192.168.1.10/24(前24位为网络位),子网掩码:255.255.255.0       
运算演示:       
11000000 10101000 00000001 00001010   192.168.1.10   
11111111 11111111 11111111 00000000   255.255.255.0   
11000000 10101000 00000001 00000000   192.168.1.0   
算出前24位是网络位:192.168.1       

 >网关(Gateway)又称为网络之间连接器、协议转换器        
从一个房间走到另一个房间,必然要经过一扇门。同样,从一个网络向另一个网络发信息,也必须经过一道"关口",这道关口就是网关。顾名思义,网关就是一个网络连接到另一个网络的"关口"。也就是网络关卡。        
由于历史的原因,许多有关TCP/IP的文献曾经把网络层使用的路由器成为网关,在家庭很多局域网采用的都是路由来接入网络,因此通常指的网关就是路由器的IP。        
>DNS(Domain Name System,域名系统)        
因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用取记住能够被机器直接读取的IP数串。通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)。
DNS协议运行在UDP协议上,使用端口号53。
主机名到IP地址的映射有两种方式:
1)静态映射,每台设备上都配置主机到IP地址的映射,各设备独立维护自己的映射表,而且只供本设备使用;
2)动态映射,简历一套域名解析系统(DNS),只在专门的DNS服务器上配置主机到IP地址的映射,网络上需要使用
主机名通信的设备,首先需要到DNS服务器查询主机所对应的IP地址。
查看网络设备:
Linux:ifconfig,windows:ipconfig
网络操作:
通过主机名查看IP:host www.tedu.cn
远程管理:
#scp -r /home/demo root@服务器IP:/root ---将本地的demo目录拷贝到服务器IP的/root目录下
#ssh 用户名@服务器IP  从本机中登陆远程服务器
如果用桥连接,局域网的所有计算机都可以互相通信。
网络下载命令:        
wget http://www.baidu.com ---普通下载
wget -O newnam.new http://baidu.com ---以不同文件名保存
wget --limit-rate=300k http://www.baidu.com --限速下载(单位:byte/秒)
wget -c www.baidu.com  ----断点续传
wget -b 后台下载
使用wget -i ----下载多个文件
例:wget -i aaa.txt,txt文件中内容为:
http://www.baidu.com
http://www.baidu1.com

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

戰士

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值