1、Linux基本概念和常用命令,主要内容,熟悉Linux的基本环境掌握常用的Linux指令及操作掌握一些常用的配置熟悉常用软件的安装配置,Linux目录树结构,Linux 内的所有数据都是以文件的形态来呈现。平时为了区分普通文件和目录,我们有时称类型为目录的文件为目录,称其它的类型的文件为文件。 Linux系统用目录树组织文件。一级目录层次目录 目录树架构(directory tree)是以根目录为主,然后向下呈现分支状的层次结构(即目录树)。 整个目录树架构最重要的目录是根目录(root directory),因为不但所有的目录都是由根目录衍生出来的,同时根目录也与开机、还原、系统修复等有关。
2、 根目录的表示方法为一条斜线/。所有的文件都和目录树有关。图片演示了目录树的呈现方式。 如图所示,所有的文件都是由根目录(/)衍生来的,而次目录之下还能够有其他的数据存在。,Linux目录配置,因为利用linux做开发的组织和个人实在太多,为了规范和方便人们使用linux,各种标准被制定出来。其中Linux目录配置的标准是Filesystem Hierarchy Standard (FHS)。FHS的重点在于规范每个特定的目录下应该要放置什么样子的数据。因此 FHS定义根目录(/)下应该要有以下这些次目录:,/etc/:几乎系统的所有配置文件均在此,例如 passwd,shadow。 /etc
3、/init.d:系统开机的时候加载服务的脚本程序的存放地点 /boot:开机配置文件和linux内核vmlinuz 的地方。 /usr:Unix Software Resource 的缩写,也就是Unix 操作系统软件资源所放置的目录。 /usr/bin, /bin:一般指令存放的地方 /usr/sbin, /sbin:系统管理员常用指令的地方 /dev:摆放所有系统设备文件的目录 /proc:可以在这个目录下获取系统信息。这些信息是在内存中,由系统自己产生的。 /var :variable的缩写,主要存放经常变动的文件,包括缓存(cache)、日志文件(log file)以及某些软件运作所产
4、生的文件。 /var/log:摆放系统日志文件的地方,Linux登录和退出,图形模式与文字模式切换 Ctrl+Alt+F1F6 文字界面tty1tty6 Ctrl+Alt+F7 图形界面 使用终端图形界面下,输入用户名和密码登陆。在屏幕上点击鼠标右键,选择“终端”。 文字界面下,输入用户名和密码,自动获得一个终端。 退出系统 图形界面下,选择上方的”系统”-”关机”进行关机或重启。 文字界面下,输入命令 shutdown h now 或init 0,命令init 6重启。 退出终端 输入指令exit,Linux shell 登录,如左图所示,在linux系统中,用户无法直接操作linux内核,
5、更不能直接操作硬件。但总是需要让用户操作系统的,所以就有了在操作系统上面发展的应用程序。用户可以通过应用程序指挥内核,让内核达成我们需要的硬件任务。Shell就是这种应用程序。Shell的功能是提供用户操作linux系统的一个接口,通过它可以调用其他程序,比如我们接下来要学的命令,让这些程序调用内核来运行所需的工作。因此,我们又称shell为命令解释程序。shell有许多版本。可以查看/etc/shells这个文件,了解Linux下有哪些可用的shell。其中linux默认的shell版本为“Bourne Again SHell (简称 bash) ”。,为什么学习命令行界面的shell? 对
6、于不同的linux发行版本,图形界面各有不同,但命令行界面:大家都一样,几乎都使用的bash。 远程管理:命令行界面比较快。通过学习shell可以让你更深入linux,更了解它,而不是只会按一按鼠标。 若你想管理好你的主机,那么常用的linux命令是一定需要的。,Linux命令基本格式,命令的输入格式为:command -options param1 param2 命令 选项 参数1 参数2 区分大小写,一行命令的第一个输入部分必须是命令或可执行程序。 command为命令的名称,例如变换路径命令cd等。 中括号并不存在与实际的命令中,只表示方框里的是可选的。 选项通常以“-”开始,例-h。完
7、整参数名称则以”-”开始,例-help 参数为依附在option后面的参数,或者是command的参数。 命令、选项和参数之间以空格隔开,多个连续的空格shell视为一个空格。按下回车键该命令就立即执行。 指令太长时,可以使用“”后接回车,继续到下一行输入。,bash快捷键,Tab键接在一行命令以空格分割的第一部分后面,为命令补全。 Tab键接在一行命令以空格分割的第二部分后面,为文件补全。 Ctrl+d 表示输入结束符,键盘输入结束end of file(EOF) Ctrl+c或ctrl + 退出目前正在运行的程序 Ctrl+r 开始向上搜索包含该字符的命令 显示上一条命令 显示下一条命令
8、!str 在所执行过的命令中,找到最近一次以str开头的命令,再执行一遍 Ctrl+u 删除命令行中光标所在处之前的所有字符(不包括自身) Ctrl+k 删除命令行中光标所在处之后的所有字符(包括自身) Ctrl+Alt+Del重新启动,如何获得帮助,command -help man command(q退出man帮助) whatis command 与man相比,whatis命令可以提供更加简洁的帮助信息。 论坛:http:/ 用法:date +format 例如: # date 显示目前linux系统的时间 Thu Sep 3 21:47:35 CST 2009 可以要求date按照用户指
9、定的格式format输出,格式有许多种, 在命令行输入 date -help 查看有哪些可用的格式# date +%y/%m/%d 输出年月日 11/09/03 # date +%Y/%m/%d 2011/09/03 # date +%H:%M 输出当前的时间 21:48 # date “+%h %m” 输出本月的简称,若输出空格用双引号括起来 Sep:09,日历显示命令:cal,功能:显示指定年或月份的日历 用法:cal month year 注:年year的有效值在19999,月month的有效值在112 范例: # cal 显示当前月份的日历 # cal 2020,显示2020年的日历
10、# cal 10 1949 显示1949年10月的日历 清屏指令:clear,文件和目录管理常用命令和概念,路径和目录,相对路径与绝对路径 绝对路径路径的写法一定由根目录 / 写起,例如: /usr/share/doc 相对路径指相对于目前工作目录的路径,例如: 由 /usr/share/doc 要到 /usr/share/man时,可以写成 cd /man。只要路径不是由 /写起,就是相对路径的写法! Liux下特殊的文件 文件名以.开头的文件属于隐藏文件。输入命令ls -a查看 . 代表当前目录代表上一层目录 扩展名 基本上,linux没有所谓的扩展名,比如一个文件能不能执行和它的第一列的
11、10个属性有关,与文件名无关。不过我们仍希望通过扩展名来了解文件是什么种类。比如:.c、.h、.sh、.tar、.html等。 基本上,linux系统的文件名只是让你了解该文件可能的用途而已。,命令名称: cd 使用语法:cd directory 功能:变换工作目录至 directory。 参数说明:directory 可为绝对路径或相对路径。- 代表前一个工作目录 代表目前使用者身份所在的家目录 account 代表 account 这个账号的家目录若目录名省略,则变换至用户的家目录(也就是登陆时所在的目录) 。 范例: 进入用户家目录 # cd 或 cd 进入上一级目录下source目录
12、# cd /source进入/usr/local目录# cd /usr/local,文件和目录管理指令:cd,文件和目录管理指令:pwd,命令名称: pwd 使用语法 : pwd 功能 : 打印当前工作目录(print working directory) 范例: 打印当前工作目录 # pwd /root/,文件和目录管理指令:mkdir rmdir,命令名称:mkdir 使用语法 : mkdir 选项 directory 功能 : 创建目录 选项 : -p : 和不带参数的功能相识,只是当所需创建目录的上级目录不存在时,上级目录也将被创建。 范例: 在当前目录创建一个名为dir的目录 # m
13、kdir dir 在/tmp目录下创建一个名为mydir的目录 # mkdir /tmp/mydir 在/tmp/1/2/3/4目录下创建一个名为dir01的目录,要求:若dir01的上级目录不存在时,将上级目录也创建出来。 #mkdir -p /tmp/1/2/3/4/dir01,命令名称:rmdir 使用语法 : rmdir 选项 directory 功能 : 删除空目录 选项 : -p : 和不带参数的功能相识,只是当删除指定目录后,其上级目录也变成空目录时,上级目录也将被删除。 范例: 在当前目录删除一个名为dir的目录 # rmdir dir 在/tmp目录下删除一个名为mydir的
14、目录 # rmdir /tmp/mydir 在/tmp/1/2/3/4目录下删除一个名为dir01的目录,要求:若dir01删除后,上级目录也变成空,将上级目录也删除掉。 #rmdir /tmp/1/2/3/4/dir01,文件和目录操作中常用通配符,在Linux文件系统中,可以使用通配符来匹配多个选择,例如:ls *.c 在当前目录找到所有以.c结尾的文件,显示到终端上,文件和目录管理指令:ls,命令名称: ls 使用语法 : ls -alrti name. 功能 : 显示指定工作目录下之内容(列出目前工作目录所含之档案及子目录)。 选项 : -a 显示所有档案及目录 -l 除档案名称外,亦
15、将档案型态、权限、拥有者、档案大小等资讯详细列出 -r 将档案以相反次序显示(原定依英文字母次序) -t 将档案依建立时间之先后次序列出-i 列出文件的inode号-color=tty根据文件类型显示不同颜色 范例: 列出目前工作目录下所有名称是 s 开头的档案,愈新的排愈后面 : ls -ltr s* 将 /bin 目录以下所有文件详细资料列出 : ls -l /bin,Linux文件的类型,结束,在Linux中文件的类型是通过文件权限的首位定义的, 在命令行下输入ls l 每一行的字符代表文件的类型。 可以分为以下几类: - 普通文件 包括下面之外的文件。 d 目录文件 s 套接字文件 p
16、 命名管道 b 块设备文件如,磁盘,U盘 c 字符设备文件如,网卡,键盘l 软链接文件,返回,查看用户目录下的内容 把工作目录切换到/proc目录下 打印当前工作目录 创建一个目录 date cal ls cd pwd mkdir rmdir,目录动手练习,文件和目录管理指令:cp,命令名称: cp 使用语法 : cp 选项 SOURCE DEST 功能 :将一个文件拷贝至另一目录,或将数个文件或目录拷贝至另一目录 。 选项 : -a 尽可能将文件状态、权限等属性都照原状予以复制。等同于-dpR -r/-R 若 source 为目录,则将source中的子目录也拷贝至目的地。 -f 若目的地已
17、经有相同档名的档案存在,则强制覆盖已有文件,没有警告。 -i 在覆盖文件或目录时提示 范例: 将当前目录下的文件abc拷贝到/tmp/目录,并且拷贝的时候重命名为123 # cp abc /tmp/123 将当前目录下所有的.c文件复制到当前目录中的mydir目录下 # cp *.c ./mydir 将目录mydir目录下所有文件复制到/tmp目录下,并保持属性不变 # cp a source temp,文件和目录管理指令:mv,命令名称:mv 使用语法:mv 选项 source dest 功能:将文件或目录移动到指定的目录中,或重命名文件或目录 选项: -f :强行覆盖已存在的文件或目录-i
18、 :在覆盖已存在的文件或目录前提示 范例: 将a.txt重命名为a.c # mv a.txt a.c 将当前目录下所有的txt文件移动到当前temp目录下 # mv *.txt ./temp,文件和目录管理指令:rm,命令名称:rm 使用语法:rm 选项 file. 功能:删除文件或目录 选项: -i 删除前逐一询问确认。 -f 直接删除,无需逐一确认。 -r 将目录及以下之档案亦逐一删除。 范例: 所有以a开头的文件,删除每个文件前,给出提示 # rm -i a* 删除目录/tmp下的mydir目录 # rm r /tmp/mydir,文件和目录管理指令:cat/tac,命令名称: cat
19、(tac从最后一行开始显示) 使用语法:cat 选项 file1 file2 功能:把档案串连接后传到基本输出 选项:-A 显示所有隐藏字符和行结束符 -n 或 -number 由 1 开始对所有输出的行数编号 -b 或 -number-nonblank 和 -n 相似,但不对空白行编号 -s 当遇到有连续两行以上的空白行,就代换为一行的空白行 范例: 输出hello.c文件内容,列出行号: # cat n hello.c 输出hello.c文件的内容,包括隐藏字符和行结束符 # cat A hello.c,文件和目录管理指令:more/less,命令名称:more 使用语法:more 选项
20、文件名 功能:分页显示文件内容 范例: more /etc/passwd 在显示过程中,可以使用d键翻半页,f键翻整页,q键退出 命令:less 使用语法:less 选项 文件名 功能:分页显示文件内容 范例:less /etc/passwd 在显示时,可以使用空格键向下翻,b向上翻,q键退出。其他用法参见手册。比命令more常用。,文件和目录管理指令:head,命令名称:head 使用语法:head 选项 file 功能:输出文件的前面一部分内容到标准输出 选项:-c N :输出最前的N个字符-n N : 输出文件的前面N行 范例: 显示文件的开头十行 # head a.txt 命令head
21、默认显示文件的前十行 显示文件/etc/man.config的开头3个字符 # head -c 3 /etc/man.config 显示文件/etc/man.config的开头3行 # head -n 3 /etc/man.config,文件和目录管理指令:tail,命令名称:tail 使用语法:tail 选项 file 功能:输出文件的结尾一部分内容到标准输出 选项:-c N :输出最后的N个字符-n N : 输出文件的最后面N行-f :当文件在增长时,输出增加的数据 范例: 显示文件的结尾十行 # tail a.txt 命令tail默认显示文件的后十行 显示文件/etc/man.confi
22、g的结尾3个字符 # tail -c 3 /etc/man.config 显示文件/etc/man.config的结尾3行 # tail -n 3 /etc/man.config,文件和目录管理指令:file,命令名称 : file 使用语法 : file 选项 filename 功能 : 辨别文件类型,对文件的类型进行详细的描述 范例: 查看文件 /bin/ls 的类型 # file /bin/ls 查看某几个文件的类型,动手练习,cp和mv的区别 如何查看文件的类型 重命名某个文件 拷贝文件或目录到另外一个目录下 查看某个文件的内容 cp mv rm cat/tac more head t
23、ail file,文件和目录权限,用户与组 强调文件的拥有者(Owner) root可以充当任何文件的拥有者 组(Group)有利于安全与管理 类似于现实中的概念,用户可以加入到某个或某几个组中 主要用于团队开发时的身份识别和权限设置。 权限管理分为三类: 文件/目录所有者user 文件所属组group 其他人others 无权访问的文件,通常会显示“Permission denied”这样的错误信息,对于无权执行的命令,通常显示“Operation not permitted”# cat /etc/shadowcat: /etc/shadow: Permission denied,文件和目录
24、权限,文件属性,链接数量,所有者,组,文件大小,创建/修改日期,文件名称,以圆点开头的文件为隐藏文件,文件和目录属性,文件属性,-rwxrwx-,接下来的属性中,三个为一组,且均为“rwx”的三个参数的组合。其中, r 代表可读, w 代表可写, x 代表可执行, - 代表无此属性。,所有者,组,其他人,-rwxrwxrwx,第一个属性代表这个文件的类型,改变文件权限:chmod,可以通过符号类型改变文件权限,因为三套属性分别是针对user(所有者)、group(组)、others(其他人)的,所以就可以分别用u g o来代表三个对象,a代表三套属性。 指令chmod 功能:改变文件权限 用法
25、:范例: 给当前目录的test.c的拥有者添加可执行权限 # chmod u+x test.c,文 件,改变文件权限:chmod,第二种方式:rwx可以分别用数字表示r 4 w 2 x 1 若要rwx属性则4+2+1=7 语法:chmod -R xyz 文件 其中xyz分别为三组rwx属性数值的和 选项-R,递归地将目录下的所有文件的权限改变了 范例: 给test.c增加一切权限 # chmod 777 test.c,文件的三种时间属性,我们在介绍ls 指令时,稍微提到在 linux下每个文件都会记录时间属性。其实有三个时间属性,那么三个时间意义是什么呢? 文件内容的修改时间modificat
26、ion time (mtime):当文件的“内容数据”更改时,就会更新这个时间!内容数据是文件的内容,而非属性或权限!查看文件内容的修改时间 ls l 文件内容的访问时间access time (atime):当“该文件的内容被取用”时,就会更新这个读取时间 (access)。例如,我们使用 cat 去读取 /etc/man.config,就会更新该文件的atime了。查看文件内容的访问时间 ls lu 文件属性的修改时间status time (ctime):当“该文件的属性改变”时,就会更新这个时间。例如,权限等属性被更改了,就会更新这个时间。查看文件的属性修改时间 ls lc,修改文件时
27、间或创建新文件,用法:touch 文件 功能:touch命令用来改变文件的时间戳,如果file文件不存在,则创建该文件。 范例: 当前目录不存在file01,用touch创建名为file01的空文件。 # touch file01 若当前目录存在file02,用touch更新file02的时间戳。 # touch file02 此命令默认会更新file02的三种时间属性为当前时间。 用ls查看。,文件与目录权限:umask,系统创建文件时会赋予文件默认权限 新建文件时 666 新建目录时 777 出于安全性等方面的考虑,文件的实际权限为系统默认权限“减去”权限掩码umask得到的。 命令名称:
28、umask 功能:设置文件权限掩码,供系统创建文件或目录时使用 语法: umask mode mode为权限的数字表示。若umask后没有mode则显示当前umask值;如果有则设置mode为新的掩码。 mode 的分数指的是文件默认权限需要减掉的权限! 范例:若当前umask值为 022 #touch test 创建test文件 #ls -l test 创建后的文件权限是rw-rw-rw-去掉后面两个w得到的。-rw-r-r- 1 lijiecong member 0 Sep 4 09:20 test,动手练习,去掉某个目录的可执行权限,会发生什么? 为某个文件增加/去掉可执行权限。 改变u
29、mask值后建文件和目录,看区别。 chmod touch umask,文件查找指令:find,命令语法: find 路径 expr 功能:按照某个条件expr,在指定目录及其子目录下找出和expr匹配的文件。(条件有文件名,文件类型,文件大小,修改时间等)。 常用选项:expr -name 文件名 文件名可以包含通配符。如:*.c -type 类型 -size -+大小 可以在数字后加c(byte)或k(1024bytes) 范例: 找出home目录以.c结尾的文件 # find /home name “*.c” 找出当前目录所有的链接文件 # find ./ -type l,文件查找指令:
30、grep,命令名称: grep 使用语法:grep 选项 “字符串” 文件名 功能:在文件中查找字符串,然后输出该行。 选项:-n 显示行号-i 忽略字符串的大小写-v 反选,将不包括字符串的行找出来-r 查找目录下的所有子目录color=tty 将字符串高亮显示 范例: 在文件/etc/passwd中查找包含root的行 # grep “hello” /etc/passwd 在文件/etc/passwd中找到不包含root的行 # grep v “hello” /etc/passwd 在文件/etc/man.config中找到包含man的行,man大小写都行,显示在第几行 # grep -i
31、 -n “man” /etc/man.config 查找当前目录下所有文件中包含hello的行 # grep -r hello ./,文本处理指令,命令cut:截取文件中的部分内容。 用法: cut d 分隔字符 f field 文件 -d :后面接分割字符。与 -f 一起使用 -f :依据 -d 的分割字符将一行信息分割成为数段,用 -f 取出fileld指定的段 范例:将当前系统中所有的账号名列出来。 # cut -d : f 1 /etc/passwd 上面命令的意思是将文件/etc/passwd中的每一行,用字符 : 划分成若干段,取出第一段。 命令wc:对文本文件的行、单词和字符信息
32、进行统计。 用法:wc -mwl 文件名 -l :列出文件的行数; -m :多少字符 -w :列出多少字(英文单字) 范例:统计当前目录下所有c源文件的代码量。 # wc l *.c,文件查找指令:updatedb/locate,命令语法: updatedb 功能: updatedb会根据/etc/updatedb.conf中配置,为你计算机中的文件建立索引。(需要root权限)命令语法: locate filename 功能: 查找某一个文件在文件系统中的位置 每天系统会自动执行一次updatedb,查找指令which/whereis,which功能:返回指令在文件系统中的位置 用法:whi
33、ch command # which ls 查找ls命令的位置/bin/ls whereis功能 : 在特定目录中查找符合条件的文件。这些文件的烈性应属于原始代码,二进制文件,或是帮助文件 使用语法 : whereis -bms filename . 参数 : -b 只查找二进制文件。 -m 只查找说明文档。 -s 只查找源代码文件。 # whereis ls 查找名称为ls的二进制文件,说明文档和源代码。ls: /bin/ls /usr/share/man/man1/ls.1.gz # whereis stdio.h 查找C语言标准I/O头文件stdio.h在哪里stdio.h: /usr/
34、include/stdio.h,动手练习,查找某个命令的路径 在某个目录下查找文件 find grep updatedb/locate which whereis cut wc,关亍执行文件路径的变量:$PATH,为什么我在任何目录下输入date指令都能显示日期信息? 是因为环境变量 PATH的帮助所致! 当我们在执行一个指令时候,例如说ls,会依照 PATH 的设定去每个PATH 定义的目录下搜寻文件名为ls 的可执行文件,如果在PATH定义的目录中含有多个文件名为 ls 的可执行文件,那么先搜寻到的同名指令先被执行! 看看到底有哪些目录被定义出来了? echo 有显示、印出的意思,而 PA
35、TH 前面加的$ 表示后面接的是变量,所以会显示出目前的 PATH! # echo $PATH /usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin PATH(一定是大写)这个变量的内容是由一堆目录所组成的,每个目录中间用冒号(:)隔开。 范例:修改PATH,查看是否有些命令不能使用了,SHELL内置命令,事实上,并非所有的命令都能在PATH指定的目录中找到。例如,切换工作目录指令“cd”,用文件查找指令whereis找不到它的二进制
36、可执行文件。 其实cd是bash内置的功能。Bash已经“内置”了很多命令,前面的pwd、umask都内置在bash中。 type命令功能:判断所执行的命令是外部命令(非bash所提供的命令)或内置在bash当中的。 用法: #type mkdir mkdir is /bin/mkdir #type cd cd is a shell builtin 这里可知cd是bash内置的命令。 #type ls ls is aliased to ls -color=tty 这里表明我们执行的ls是个别名,命令别名,命令别名即给一个命令起个别名,执行别名就相当于执行这个命令。这个在经常执行的命令较长时,非
37、常方便。 给命令起别名的功能由命令alias来实现,这个alias也是bash内置的命令。 用法:alias name=value #alias 直接输入alias列出当前系统有哪些命令别名。 这里略去 #alias ls 列出别名ls所对应的命令。 ls=ls l color=tty 例如,给命令ls al |less起个别名。 #alias lm=ls al | less 接下来就可以用lm来执行 #lm 命令unalias用于取消命令别名。例如取消别名lm: #unalias lm,命令查找的顺序,由前面的内容可知,对于一个外部命令既有可执行程序,又可能有内置命令或者命令别名。那么she
38、ll到底调用的是哪个呢?linux下命令查找的顺序如下所示: 以相对或绝对路径执行命令,例如./a.out和/bin/ls 由alias找到该命令来执行 由bash内置的(builtin)命令来执行 通过$PATH指定的目录顺序找到的第一个命令来执行 了解bash查找命令的顺序,也可以通过输入 “type a 命令名”查询。例如,查询命令pwd #type a pwd pwd is a shell builtin pwd is /bin/pwd,压缩和解压缩指令:gzip,命令名称:gzip 使用语法:gzip -dfl9 name . 功能:压缩或解压文件 选项: -l :列出压缩文件的内容
39、-f :强行压缩文件。不理会文件名称或硬连接是否存在以及该文件是否为符号连接。 -9 :以最大的压缩比压缩-d :解压缩-r :对目录中的每个文件进行递归压缩 范例: gzip a.c gzip d a.c.gzbzip2 a.c bzip d a.c.bz2,压缩和解压缩指令:bzip2,压缩打包指令:tar,命令名称:tar 使用语法 : tar 功能 : tar是用来建立,还原备份文件的工具程序,它可以加入,解开备份文件内的文件 参数 :-c 建立新的归档文件 -x 从归档文件中解出文件 -v 处理过程中输出相关信息 -f 对普通文件操作 -z 调用gzip来压缩归档文件,与-x联用时调
40、用gzip完成解压缩 -j 调用bzip2来压缩归档文件,与-x联用时调用bzip2完成解压缩 用gzip压缩并打包 tar -zcvf test.tar.gz * tar -vzxf test.tar.gz用bzip2压缩并打包 tar -cjvf test.tar.bz2 * tar -xjvf test.tar.bz2查看压缩包中的内容 tar tvf test.tar.gz,校验命令:md5sum,命令名称:md5sum 语法:md5sum filename 功能:为一个文件或压缩包做校验和,从互联网下载这个压缩包后可以比较md5的校验和是否相同,防止第三方篡改。 为某个文件做md5校
41、验和: # md5sum test.cppa4dea377997297c320899936f59a9352 test.cpp,动手练习,压缩一个文件或者目录 解压一个压缩文件 压缩并打包一个目录下的所有文件 为某个文件计算md5校验值 df du gzip bzip2 tar md5sm,Linux inode概念,Linux读文件时,首先去搜索inode,根据inode来读取文件内容。 Index node:数据结构,保存有文件/目录的信息(创建者,权限等) 每个linux文件系统中的对象(文件,目录)都有一个inode号。 在同一个文件系统内,只要inode号一样,不管文件名是否相同,他们
42、就是同一个文件。(文件系统和文件系统类型的区别) ls -i filename 可查看inode号,Linux读取文件过程,链接文件介绍,硬链接(hard link) hard link 对前一个文件的存取动作与对后一个文件一样。硬链接的限制 不能跨文件系统,因为不同的文件系统有不同的inode表 不能 link 目录,链接文件介绍,符号链接(Symbolic Links) 符号链接就是再建立一个独立的文件(有自己的inode),而这个文件会让数据读取指向他link的那个文件内容。 如果源文件被删除,那么符号链接将不再有效(打不开) 类似windows的快捷方式,符号链接读文件,符号链接有不同
43、的inode 被连接的文件被删除,则连接文件失效。 连接文件被删除,被连接文件还是存在的。,文件1,符号链接2,inode 222,硬盘,inode 223,文件链接指令:ln,命令名称:ln 使用语法 : ln 参数 source dest 功能 : 建立一个文件或者目录的链接 注意:链接分为硬链结(hard link)与软链结(symbolic link),硬链结的意思是一个档案可以有多个名称,而软链结的方式则是产生一个特殊的档案,该档案的内容是指向另一个档案的位置。硬链结是存在同一个文件系统中,而软连结却可以跨越不同的文件系统。不论是硬连结或软链结都不会将原本的档案复制一份,只会占用非常
44、少量的磁碟空间。 参数 : -f : 链结时先将与 dest 同档名的档案删除(强制连接)-i : 在删除与 dest 同档名的档案时先进行询问-s : 进行软链结(相当于windows的快捷方式)软连接一个文件 ln s /tmp/test /tmp/test.link硬链接一个文件 ln /tmp/test /tmp/test.link,动手练习,查看磁盘情况 查看某个目录下文件占用磁盘情况 建一个软连接 建一个硬链接 查看软连接和硬链接的inode号 修改连接文件的内容,比较软硬连接的区别 df du ln,用户登录内幕,用户以不同的用户名(即账号)登陆系统,就拥有了不同的权限(身份),
45、这种权限赋予该用户能对系统所进行的操作。我们在学校用过的教务管理系统,老师和学生登陆 Linux登录过程: 提示输入用户名和密码 linux查询/etc/passwd里面是否包含该用户名 如果没有则退出,如果有则读取该用户的UID和GID以及Home目录、Shell等 linux查询/etc/shadow以核对密码 如果密码正确则进入shell控管范围,passwd文件内容,/etc/passwd文件内容: 用户名 密码(x) UID(1499系统预留 50065535) GID 说明信息 Home目录 Shell 相关命令:passwd,shadow文件内容,/etc/shadow文件内容:
46、 用户名 密码:经过了加密,如果*开头那么不能登录 上次更改密码的日期(1970/1/1起) 密码不可被修改的天数(0表示随时可改) 密码需要重新修改的天数(99999表示不用改) 密码需要修改期限前的警告期限(7表示失效前7天开始提示) 帐号失效期限 帐号取消期限 预留,group文件介绍,/etc/group文件: 组名称 组密码: 密码在/etc/gshadow中 GID 属于组的用户列表,以逗号分割,如:hexy:x:500:test02,test03 相关命令:groups,组管理命令:groupadd,groupadd命令: 用途:增加组 语法:groupadd -g GID gr
47、oupname 会访问/etc/group和/etc/gshadow文件,写入新的组信息 #groupadd project#groupadd -g 1034 project001,组管理命令:groupdel,groupdel命令: 用途:删除组 语法:groupdel groupname 会访问/etc/group和/etc/gshadow文件,删除组信息 注意:组内的用户必须不在线,而且该组不存在主用户才能删除。,用户管理命令:useradd,useradd命令: 用途:新增用户 语法:useradd -u UID -g GID -G GID -d HOME -m M -s shell
48、username 说明:-u :指定UID-g :指定默认GID或者组名称,此GID或者组名称必须已经存在于/etc/group-G:指定所属的其他组,用逗号分割-d :指定Home目录,如果不存在系统会创建-M :不建立Home目录-s :定义其使用的shell #useradd xiaoli 创建一个用户账号的过程,用户管理命令:userdel,userdel命令: 用途:删除用户 语法:userdel -r username 指定r参数将Home目录以及邮件目录删除 创建用户的常规步骤(只有管理员才能创建用户) # useradd name 创建一个用户名为name的用户 # passwd name 为该用户设置密码 删除一个用户(只有管理员才能删除用户) # userdel name 删除用户名为name的用户,改变用户:su,命令名称:su 语法: su 选项 用户名 功能:从当前身份切换到另一个身份。 优点:由于安全原因,一般Linux服务器是不允许root远程登录。先要以普通用户登录,然后再用su命令切换到root用户。黑客要获取root权限,必须先拿到普通权限,在猜root密码。计算机多了一层防护。,