linux的基本使用
Posted SK
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux的基本使用相关的知识,希望对你有一定的参考价值。
1. UNIX是什么
1) UNIX的定义: UNIX是一个计算机操作系统,一个用来协调、管理和控制计算机硬件和软件资源的控制程序。
2) UNIX操作系统的特点:多用户和多任务
a) 多用户表示在同一时刻可以有多个用户同时使用UNIX操作系统而且他们互不干扰;
b) 多任务表示任何一个用户在同一时间可以在UNIX操作系统上运行多个程序。
2. 了解UNIX的简要发展史
3. GNU项目与自由软件
1) 了解GUN计划,是由Richard Stallman在1983年9月27日公开发起的,它的目标是创建一套完全自由的操作系统。
2) 了解GPL条款
GPL条款是为保证GNU软件可以自由地使用、复制、修改和发布,所有GNU软件都有一份在禁止其他人添加任何限制的情况下授予所有权利给任何人的协议条款。
3) 了解自由软件意味着:
a) 你有自由以任何目的来运行该程序。
b) 你有修改程序满足自己需求的自由。
c) 你有权利重新发布副件,既可以白送也可以收取一定费用。
d) 你有权利发布该程序修改过的版本,从而让其他人得益于你的改进。
4. Linux简介
1) Linux的定义:Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。
2) Linux操作系统的主要用途:主要用于服务器,特别是网络服务器。
3) 两种常见的桌面环境:KDE和GNOME。
5. 登录和退出Linux
1) 关闭Linux系统的命令:init 0
2) 什么是Linux终端:Linux终端也称为虚拟控制台。Linux终端采用字符命令行方式工作,用户通过键盘输入命令,通过Linux终端对系统进行控制。
3) 切换虚拟终端的方法:Ctrl+Alt+F[1~6],如想切换到第二号虚拟终端,则同时按Ctrl+Alt+F2
4) 普通用户登录后系统的提示符:$
5) root用户登录后系统的提示符:#
6) 退出命令:exit
一 Linux命令及获取帮助
Linux命令的格式
命令的语法格式
命令格式中命令、选项、参数的具体含义
whoami命令
whoami命令的功能
who命令
who命令的功能
who命令的输出结果
date、cal、和clear命令及带有参数的命令
date命令的功能
cal命令的功能
cal命令用法举例
clear命令的功能
清屏快捷键
su和passwd命令
su命令的功能
su命令用法举例
passwd命令功能
passwd用法举例
利用man命令来获取帮助信息
man命令功能
man命令用法举例
使用“命令名 --help”获取帮助
1. Linux命令的格式
1) 了解Linux命令的语法格式:
命令 【选项】 【参数】
2) 掌握命令格式中命令、选项、参数的具体含义
a) 命令:告诉Linux(UNIX)操作系统做(执行)什么。
b) 选项:说明命令运行的方式(可以改变命令的功能)。选项部分是以“-”字符开始的。
c) 参数:说明命令影响(操作)的是什么(如一个文件、一个目录或是一段正文文字)
Ls –a /
2. whoami命令
1) whoami命令的功能:列出目前登陆Linux系统所使用的用户名(账号)。
3. who命令
1) who命令的功能:列出目前哪些用户在系统上工作。
2) who命令的输出结果:显示当前登录的所有用户,以及当前的日期和时间。
4. date、cal、和clear命令及带有参数的命令
1) date命令的功能:显示系统当前的日期和时间。
2) date命令设置时间时间的格式:date 月日时分年。
例如:将时间设定成2013年12月24日上午10点18的命令:
扩展(date 12241018201
hwclock –s 同步硬件 –w 同步系统)
3) cal命令的功能:显示某月的日历。
4) 灵活应用cal命令列出某一年某月的日历:例如显示2008年8月份日历的命令为:cal 8 2008
5) clear命令的功能:清除屏幕
6) 清屏快捷键:ctrl+l
5. su和passwd命令
1) su命令的功能:从当前的用户切换到另一个指定的其他用户。
2) 应用su命令切换用户:
例如:切到root用户的命令:su – root
3) passwd命令功能:修改用户(既可以是普通用户,也可以是root用户)的密码,查看用户的密码状态等。Useradd
4) 使用passwd命令修改用户密码:
例如:修改dog用户密码的命令:passwd dog
6. 利用man命令来获取帮助信息
1) man命令的功能:获取某个Linux命令的使用说明。
2) 使用man命令查看某命令的使用说明:
例如:查看su命令的使用说明的命令为:man su
7. 使用“命令名 --help”获取帮助
1) 例如:查看ls命令帮助的命令为:(不使用man方法)
ls –-help
二 目录文件的浏览、管理及维护(一)
Linux文件系统的层次结构
Linux文件系统的树状结构
目录是什么
顶层根目录的表示
文件系统中的两个特殊目录
Linux系统中的一些重要的目录
bin目录
sbin目录
家目录
dev目录
etc目录
挂载目录/media或/mnt
其他常用目录
绝对和相对路径
绝对路径
相对路径
1. Linux文件系统的层次结构
1) 了解Linux文件系统的树状结构:
在Linux或UNIX操作系统中,所有的文件和目录都被组织成一个以根节点开始的倒置的树状结构。
2) 目录的定义:目录相当于Windows中的文件夹,目录中存放的既可以是文件,也可以是其他的子目录。
3) 顶层根目录的表示:
使用“/”来表示根目录
4) 了解文件系统中的两个特殊目录:
. 表示当前目录,即用户所在的工作目录
.. 表示父目录,即当前目录的上一层目录
2. Linux系统中的一些重要的目录
1) Linux中的一些重要目录
a) bin目录:用来存放常用的可执行文件
b) sbin目录:用来存放系统的可执行文件
c) 家目录:用来存放用户自己的文件或目录,其中,超级用户root的家目录是/root,而普通用户的家目录被存放在/home目录下,并使用用户名作为最后一级目录(家目录)的名称,如cat用户的家目录为/home/cat
d) dev目录:设备文件目录
e) etc目录:配置文件目录
f) 挂载点(目录):通常可移除式硬件会被挂载在/media或/mnt目录之下
3. 绝对和相对路径(详见linux系统管理P43)
1) 绝对路径的定义:必须以一个正斜线(/)开始。绝对路径包括从文件系统的根节点开始到要查找的对象(目录或文件)所必须遍历的每一个目录的名字,它是文件位置的完整路标,因此在任何情况下都可以使用绝对路径找到所需的文件。
2) 相对路径的定义:不是以正斜线(/)开始,相对路径可以包含从当前目到要查找的对象(目录或文件)所必须遍历的每一个目录的名字。
三 目录文件的浏览、管理及维护(二)
使用pwd和cd命令来确定和切换目录
pwd命令的功能
cd命令的功能
cd ..
cd ~
cd –
cd
使用ls命令列出目录中的内容
ls命令的功能
ls –a
ls –all
ls –l
使用cp命令复制文件和目录
cp命令的功能
–i选项
–r选项
–p选项
–f选项
使用mv命令移动及修改文件和目录名
mv命令的功能
mv命令的用法举例
使用mkdir命令创建目录
mkdir命令的功能
mkdir命令的用法举例
使用touch命令创建文件
touch命令的功能
touch命令的用法举例
使用rm命令删除文件
rm命令的功能
–i选项
–r选项
–f选项
rm命令的用法举例
使用rmdir或rm –r命令删除目录
rmdir命令的功能
rmdir命令的用法举例
rm –r命令的功能
rm –r命令的用法举例
使用cat命令浏览正文文件的内容
cat命令的功能
cat命令的用法举例
使用head命令浏览文件中的内容
head命令的功能
–n选项
head命令的用法举例
使用tail命令浏览文件中的内容
tail命令的功能
–n选项
tail命令的用法举例
使用more命令浏览文件
more命令的功能
more命令的用法举例
1. 使用pwd和cd命令来确定和切换目录
1) pwd命令的功能:确定现在所在的工作目录
2) cd命令的功能:切换当前目录
3) “cd ..”命令:进入上一级目录
4) “cd ~”命令:切换到用户的家目录
5) “cd”命令:同cd ~,也可切换到用户的家目录
6) “cd –”命令:切换到用户之前的工作目录
7) “cd 目录名”命令:切换到指定的目录。
a) 例如:切换到/home/dog目录的命令为:cd /home/dog
2. 使用ls命令列出目录中的内容
1) ls命令的功能:列出当前目录(默认为当前目录)或指定目录中的内容
2) ls -a命令:列出目录下的所有文件,包括以“.”开头的隐含文件
a) 例如:列出/home/dog目录中的所有文件,包括隐藏文件的命令:ls -a /home/dog
3) 了解ls –all命令:同ls –a
4) ls –l命令:列出某个目录中每一个文件的详细资料
例如:列出/home/dog目录中所有非隐藏文件的细节的命令:
a) ls –l /home/dog
3. 使用cp命令复制文件和目录
1) cp命令的功能:将文件(可以是多个)复制成一个指定的目的文件或复制到一个指定的目标目录中。
2) cp命令的常用选项:
Cp 源文件 目标文件
a) –r(recursive,递归的):递归地复制目录。当复制一个目录时,复制该目录中所有的内容,其中包括子目录的全部内容。
i) 例如:将/home/dog目录中的内容全部复制目录/home/cat中的命令为:
cp –r /home/dog /home/cat
b) -f(force,强制):在目标文件已经存在的时候不询问直接强制复制
4. 使用mv命令移动及修改文件和目录名
1) mv命令的功能:既可以在不同的目录之间移动文件和目录,也可以重新命名文件和目录。
2) mv命令的用法举例:
a) 移动文件和目录的例子:
将当前目录中的lists文件移动到其子目录babydog中的命令:
mv lists babydog
b) 重命名文件和目录的例子:
将bigdog目录名改为babydog的命令:
mv bigdog babydog
5. 使用mkdir命令创建目录
1) mkdir命令的功能:创建一个新目录
2) mkdir命令的用法举例:
创建目录daddog的命令:mkdir dadgog
递归的创建目录: mkdir -p /a/b/c
6. 使用touch命令创建文件
1) touch命令的功能:可以创建一个空文件,也可以同时创建多个文件。
2) touch命令的用法举例:
在当前目录中创建一个名为babydog1的文件的命令:
touch babydog1
7. 使用rm命令删除文件
1) rm命令的功能:永久地在文件系统中删除文件或目录。
2) rm命令的常用选项:
a) –r(recursive,递归的):递归地删除目录。当删除一个目录时,删除该目录中所有的内容,其中包括子目录中的全部内容。
b) –f(force,强制):系统并不询问而是强制删除,即直接删除原有的文件。
3) rm命令的用法举例:
删除当前目录中的babydog1文件的命令:rm babydog1
8. 使用rmdir或rm –r命令删除目录
1) rmdir命令的功能:删除空目录。
2) rmdir命令的用法举例:
删除空目录 mumdog/girldog/babydog的命令:
rmdir mumdog/girldog/babydog
3) rm –r命令的功能:删除包含文件和子目录的目录。
4) rm –r命令的用法举例:
删除非空目录mumdog的命令:
rm –r mumdog
9. 使用cat命令浏览正文文件的内容
5) cat命令的功能:将一个或多个文件的内容显示在屏幕上,该命令会不停的以只读的方式显示整个文件的内容。
6) cat命令的用法举例:
a) 浏览game.txt文件中的全部内容的命令:
cat game.txt
10. 使用head命令浏览文件中的内容
1) head命令的功能:默认将显示一个文件的前10行。
2) head命令的常用选项:
-n 改变显示的行数
3) head命令的用法举例:
a) 查看/etc/passwd文件中前10行的详细信息的命令:
head /etc/passwd
b) 查看/etc/passwd文件中前5行的详细信息的命令:
head –n 5 /etc/passwd
11. 使用tail命令浏览文件中的内容
1) tail命令的功能:默认显示文件最后10行的内容。
2) tail命令的常用选项:
-n 显示从文件末尾算起的n行
3) tail命令的用法举例:
a) 查看/etc/passwd文件中最后10行的详细信息的命令:
tail /etc/passwd
b) 查看/etc/passwd文件中最后5行的详细信息的命令:
tail –n 5 /etc/passwd
12. 使用more命令浏览文件
1) more命令的功能:使用more命令之后,每次在屏幕上显示一屏(一页)的文件内容,并且在屏幕的尾部将会出现“—More--(n%)”的信息,其中,n%是已经显示文件内容的百分比。
2) 灵活应用more命令
a) 分页浏览learning.txt文件内容的命令:
more learning.txt
四 用户、群组和权限
用户及passwd文件
/etc/passwd文件的功能
/etc/passwd文件每个字段的具体含义
shadow文件
/etc/shadow文件的功能
/etc/shadow文件每个字段的具体含义
群组及group文件
/etc/group文件的功能
/etc/group文件的功能
怎样在Linux系统中添加一个新的用户账户
useradd命令的功能
useradd命令的常用选项
useradd命令的用法举例
使用usermod命令修改用户账户
usermod命令的功能
usermod命令修改用户账户信息时的常用选项
usermod命令的用法举例
使用usermod命令锁住用户及将用户解锁
usermod –L命令
usermod –U命令
使用userdel命令删除用户账号
userdel命令的功能
userdel的常用选项
userdel的用法举例
群组的管理
groupadd命令的功能
groupadd命令的常用选项
groupadd命令的用法举例
groupmod命令的功能
groupmod命令的常用选项
groupmod命令的用法举例
groupdel命令的功能
groupdel命令的用法举例
1. 用户及passwd文件
1) /etc/passwd文件的功能:存储所有用户的相关信息,该文件也被称为用户信息数据库(Database)。
2) /etc/passwd文件每个字段的具体含义:
a) 第1个字段(列)记录的是这个用户的名字(在创建用户时root用户起的)。
b) 第2个字段(列)如果是x,表示该用户登录Linux系统时必须使用密码;如果为空,则该用户在登录时无须提供密码。
c) 第3个字段(列)记录的是这个用户的uid。
d) 第4个字段(列)记录的是这个用户所属群组的gid。
e) 第5个字段(列)记录的是有关这个用户的注释信息(如全名或通信地址)。
f) 第6个字段(列)记录的是这个用户的家目录的路径。
g) 第7个字段(列)记录的是这个用户登录后,第一个要执行的进程。
2. shadow文件(详见linux系统管理P133)
1) /etc/shadow文件的功能:存储所有用户的密码,每一个用户占用一行记录,该文件实际上就是存放用户密码的数据库(Database)。
2) /etc/shadow文件每个字段的具体含义:
a) 第1个字段(列)是用户名。
b) 第2个字段(列)是密码,这个密码是经过MD5加密算法加密过的密码。
3. 群组及group文件(详见linux系统管理P135)
1) /etc/group文件的功能:存放了Linux系统中所有群组的信息,它实际上就是一个存放群组信息的数据库(Database)。
2) /etc/group文件每个字段的具体含义:
a) 第1个字段是这个群组的名字。
b) 第2个字段中的x表示这个群组在登录Linux系统时必须使用密码。
c) 第3个字段记录的是这个群组的gid。
d) 第4个字段记录的是这个群组里还有哪些群组成员。
4. 怎样在Linux系统中添加一个新的用户账户
1) useradd命令的功能:新增一个用户。
2) 了解useradd命令的常用选项:
a) –u:指定用户的UID
b) –g:指定用户所属的群组
c) –d:指定用户的家目录
d) –c:指定用户的备注信息
e) –s:指定用户所用的shell
3) 灵活应用useradd命令的举例:
a) 例如:在系统中新增一个fox(狐狸)用户的命令:useradd fox
b) 例如:在系统中新增一个用户user01,属组为police以及uid为600的命令:
useradd –u 600 –g police user01
5. 使用usermod命令修改用户账户
1) usermod命令的功能:修改用户的账户信息。
2) 了解usermod命令的常用选项:
a) –u:修改用户的UID
b) –g:修改用户的GID
c) –G:将一个用户加入到指定的群组中
d) –d:修改用户的家目录
e) –c:修改用户的备注信息
f) –s:修改用户所用的shell
3) 灵活应用usermod命令的举例:
a) 修改babydog4用户的家目录为/home/babies的命令:
usermod –d /home/babies babydog4
b) 将babydog4这个用户添加到babydog6这个群组中的命令:
usermod –G babydog6 babydog4
c) 将babydog4这个用户的的gid变更为dog群组的命令:
usermod –g dog babydog4
6. 使用usermod命令锁住用户及将用户解锁
1) 了解usermod –L命户令的功能:将用户的账号锁住
2) 了解usermod –L命户令的用法举例:
例如:将babydog6用户的账号锁住的命令:usermod –L babydog6
3) 了解usermod –U命户令的功能:将用户的账号解锁
4) 了解usermod –U命户令的用法举例:
例如:将babydog6用户的账号解锁的命令:usermod –U babydog6
7. 使用userdel命令删除用户账号
1) userdel命令的功能:删除用户。
2) 了解userdel命令的常用选项:
a) –r:在删除用户的同时删除这个用户的家目录及其邮箱。
3) 灵活应用userdel命令删除用户的举例:
a) 例如:删除babydog5用户不删除其家目录的命令:
userdel babydog5
b) 例如:删除babydog5用户,同时删除其家目录的命令:
userdel –r babydog5
8. 群组的管理
1) 掌握groupadd命令的功能:创建一个新的群组账号。
2) 了解groupadd命令的常用选项:
c) –g:指定群组的GID
3) 灵活应用groupadd命令的举例:
例如:在系统中新增加一个名为boydogs的群组的命令:
groupadd boydogs
4) 掌握groupmod命令的功能:修改一个群组账号的信息。
5) 了解groupmod命令的常用选项:
a) –g:修改群组的GID
b) –n:修改群组的名称
6) 灵活应用groupmod命令的举例:
a) 例如:修改police群组的gid为521的命令:
groupmod –g 521 police
b) 例如:将群组boydogs改名为daddogs的命令:
groupmod –n daddogs boydogs
7) 掌握groupdel命令的功能:删除一个群组账号。
8) 灵活应用groupdel命令的举例:
例如:删除daddogs群组的命令:groupdel daddogs
五 用户、群组及权限的深入讨论
怎样查看文件的权限
ls命令详解
root用户及文件的安全控制
什么是root用户
用户分类
文件操作权限
文件操作权限的字符表示
chown
chgrp
使用符号表示法设定文件或目录上的权限
chmod命令的功能
chmod命令的-R选项
什么是符号表示法
权限状态的3个部分
符号表示法举例
使用数字表示法设定文件或目录上的权限
什么是数字表示法
数字代表的资源权限状态
数字表示法举例
1. 怎样查看文件的权限
1) 掌握使用ls –l命令查看文件上所设定的权限。
2) 掌握ls –l命令的显示结果中的第一列分成4组,其中;
a) 第1个字符为第1组,代表这是一个文件(-)或是一个目录(d),也可以是其他资源。
b) 第2、3、4个字符为第2组,定义了文件或目录的所有者(owner)所具有限的权,使用u代表所有者(owner)对文件的所有权限。
c) 第5、6、7个字符为第3组,定义了文件或目录的所有者所在的群组中其他(用户)所具有的权限,使用g代表这一组(group)权限。
d) 第8、9、10个字符为第4组,定义了既不是owner也不和owner在同一群组的其他用户对文件或目录所具有的权限。使用o代表这一组(other)权限。
3) 掌握ls –l命令的显示结果中的第三列、第四列为文件的属主和属组。
2. root用户及文件的安全控制(详见linux系统管理P136)
1) 掌握root用户的定义:root用户也称为超级用户,它可以完全不受限制地访问任何用户的账户和所有文件及目录。
2) 了解Linux系统中用户分类:
Linux系统是将系统中的所有用户分成了3类:
a) 第1类:所有者
b) 第2类:同组用户(修正:所属组,因为你创建一个用户的过程会以为这个用户名为名字创建一个同名的组)
c) 第3类:非同组的其他用户
3) 掌握文件操作权限包括读(read)、写(write)和执行(execute)
4) 掌握Linux操作系统在显示权限时,使用如下4个字符来表示文件操作权限:
a) r:表示read权限,也就是可以阅读文件或者ls命令列出目录内容的权限。
b) w:表示write权限,也就是可以编辑文件或者在一个目录中创建和删除文件的权限。
c) x:表示execute权限,也就是可以执行程序或者使用cd命令切换到这个目录以及使用带有-l选项的ls命令列出这个目录中详细内容的权限等。
d) -:表示没有相应的权限(与所在位置的r、w或x相对应)。
3. 掌握使用chown修改文件的属主
chown 属主:属组 文件
chown :属组 文件
chown 属主 文件
a) 例如,修改文件file1的属主和属组为root的命令为:chown root.root file1 递归的修改文件file1的属主和属组为root的命令为:chown -R root.root file
4. 掌握使用chgrp修改文件的属组
chgrp 属组 文件
a) 例如,修改文件file1的属组为wg的命令为:chgrp wg file1
5. 使用符号法设定文件或目录上的权限
1) 掌握chmod命令的功能:设定或更改文件或目录上的权限。
2) 掌握-R选项:不但设置(或更改)该目录权限,而且还要递归地设置(或)更改该目录中所有文件或子目录的权限。
3) 掌握是符号表示法的定义:
符号表示法是使用几个特定的符号来设定权限的状态。
4) 掌握权限状态可以分为3个部分:
a) 第1个部分,表示要设定或更改谁的权限状态。其中的具体表示如下:
u:表示所有者(owner)的权限。
g:表示群组(group)的权限。
o:表示既不是owner也不与owner在同一个group的其他用户(other)的权限。
a:表示以上3组,也就是所有用户(all)的权限。
b) 第2部分,是运算符(operator),也有人称为操作符,其中的具体表示如下:
+:表示加入权限
-:表示去掉权限
=:表示设定权限
c) 第3部分,表示权限(permission),其中的具体表示如下:
r:表示read(读)权限。
w:表示write(写)权限。
X:表示execut(执行)权限。
5) 灵活应用符号表示法设定或更改文件或目录上的权限:
a) 例如:在dog_wolf文件上添加所有者和同组用户的可执行权限的命令:
chmod ug+x dog_wolf
b) 例如:在babydog目录上为其他用户添加写权限的命令:
chmod o+w babydog
6. 使用数字表示法设定文件或目录上的权限
1) 掌握数字表示法的定义:
数字表示法是指使用一组三位数的数字来表示文件或目录上的权限状态。其中:
第1个数字代表所有者(owner)的权限(u)。
第2个数字代表群组(group)的权限(g)。
第3个数字代表其他用户(other)的权限(o)。
2) 数字代表的资源权限状态:
4:表示具有读(read)权限。
2:表示具有写(write)权限。
1:表示具有执行(execute)权限。
0:表示没有相应的权限。
3) 灵活应用数字法表示法设定或更改文件或目录上的权限:
a) 例如:使用数字表示法对owner开放/home/dog/babydog目录和其中所有文件的一切权限,但是对同组用户开放读和执行权限,而对其他用户只开放读权限的命令:
chmod -R 754 /home/dog/babydog
六 正文处理命令及tar命令
使用cat命令进行文件的纵向合并
两种文件的纵向合并方法
归档文件和归档技术
归档的目的
什么是归档
tar命令的功能
tar命令的常用选项
使用tar命令创建、查看及抽取归档文件
使用tar命令创建归档文件
使用tar命令查看归档文件
使用tar命令抽取归档文件
文件的压缩和解压缩
什么是压缩
压缩的目的
什么是解压缩
gzip命令和gunzip命令
bzip2命令和bunzip2命令
在使用tar命令的同时进行压缩和解压缩
在使用tar命令的同时进行压缩和解压缩的用法举例
1. 使用cat命令进行文件的纵向合并
1) 掌握使用cat命令实现文件的纵向合并:
a) 例如:使用cat命令将baby.age、baby.kg和baby.sex这三个文件纵向合并为baby文件的方法:
cat baby.age baby.kg baby.sex >baby
b) 例如:使用cat命令将baby.age文件的内容添加到baby2文件中的方法:
cat baby.age >>baby2
wc -l a.txt 可以统计a.txt文件中一共有多少行
2. 归档文件和归档技术
1) 掌握归档的定义:归档(archiving)就是将许多文件(或目录)打包成一个文件。
2) 了解归档的目的:归档的目的就是方便备份、还原及文件的传输操作。
3) 掌握tar命令的功能:将多个文件(也可能包括目录,因为目录本身也是文件)放在一起存放到一个磁带或磁盘归档文件中。并且将来可以根据需要只还原归档文件中的某些指定的文件。
4) 掌握tar命令的常用选项:
c:创建一个新的tar文件。
t:列出tar文件中目录的内容。
x:从tar文件中抽取文件。
f:指定归档文件或磁带(也可能是软盘)设备(一般都要选)。
v:显示所打包的文件的详细信息,v是verbose的第1个字母。
z:使用gzip压缩算法来压缩打包后的文件。
j:使用bzip2压缩算法来压缩打包后的文件。
3. 使用tar命令创建、查看及抽取归档文件
1) 掌握使用tar命令创建归档文件的用法举例:
例如:使用tar命令将arch目录打包成一个名为arch.tar的归档文件的方法(要求显示所有打包的文件和目录):
tar cvf arch.tar arch
掌握使用tar命令查看归档文件的用法举例:
例如:使用tar命令显示arch.tar这个归档文件(包)中的所有文件的方法:
tar tf arch.tar
2) 掌握使用tar命令抽取归档文件的用法举例:
例如:使用tar命令恢复arch.tar中的全部内容的方法:
tar xvf arch.tar -C 路径
4. 文件的压缩和解压缩
1) 掌握压缩的定义:压缩就是将一个大的文件通过一些压缩算法变成一个小文件。
2) 了解压缩的目的:主要是缩小文件的大小,这样会节省存储文件的磁盘或磁带的空间,另外在网络上传输这些小文件也会减少网络的浏览(也就是节省网络的带宽)。
3) 掌握解压缩的定义:解压缩就是将一个通过一些压缩算法的文件恢复到压缩之前的样子。
4) 掌握gzip命令和gunzip命令的用法举例:
a) 例如:将文件file1压缩成.gz格式的压缩包应该使用的命令为:gzip file1 –c > /路径/name.gz
b) 例如:将压缩文件file1.gz解压缩的命令为:
gunzip file1.gz >
5) 掌握bzip2命令和bunzip2命令的用法举例:
a) 例如:将文件file1压缩成.bz2格式的压缩包应该使用的命令为:bzip2 file1 >
b) 例如:将压缩文件file1.bz2解压缩的命令为:
bunzip2 file1.bz2 >
5. 在使用tar命令的同时进行压缩和解压缩
1) 掌握在使用tar命令的同时进行压缩和解压缩的用法举例
a) 例如:使用tar命令将arch目录打包而且同时使用gzip的技术压缩打包后文件的方法(打包后的文件名为arch.tar.gz):
tar cvfz arch.tar.gz arch
b) 例如:使用tar命令将arch目录打包而且同时使用bzip2的技术压缩打包后文件的方法(打包后的文件名为arch.tar.bz2):tar cvfj arch.tar.bz2 arch
七 利用vi编辑器创建和编辑正文文件
vi编辑器简介
什么是vi
vi编辑器的操作模式
vi编辑器的3种基本模式
在vi编辑器中光标的移动
移动光标位置的键与光标移动间的关系
进入插入模式
从命令行模式进入插入模式的命令
在命令行模式下删除与复制的操作
删除与复制命令
粘贴命令
复原和重做命令
扩展模式与文件的存储和退出
扩展模式下常用的命令
快速移动光标在文件中的位置
快速移动光标在屏幕中的位置
1. vi编辑器简介
1) 掌握vi的定义:vi是一个UNIX和Linux系统内嵌的标准正文(文字)编辑器,它是一种交互类型的正文编辑器,它可以用来创建和修改正文文件。
2. vi编辑器的操作模式
1) 掌握vi编辑器的3中基本模式:
a) 命令行模式:vi的默认模式。在这一模式中,所有的输入被解释成vi命令,可以执行修改、复制、移动、粘贴和删除正文等命令,也可以进行移动光标、搜索字符串和退出vi的操作等。
b) 编辑模式:在编辑模式中,可以往一个文件中输入正文。在这一模式下,输入的每一个字符都被vi编辑器解释为输入的正文。使用ESC键返回命令行模式。
c) 扩展模式:在一些UNIX系统上也叫最后一行模式。在这一模式下,可以使用一些高级编辑命令,如搜寻和替代字符串、存盘或退出vi编辑器等。要进入最后一行模式,需要在命令行模式中输入冒号(:),冒号这一操作将把光标移到屏幕的最后一行。
3. 在vi编辑器中光标的移动
1) 掌握在vi编辑器中用来移动光标位置的键与光标移动之间的关系,如下表:
4. 进入插入模式
1) 掌握从命令行模式进入插入模式的命令:
a:进入插入模式并在光标之后进行添加。
i:进入插入模式并在光标之前进行插入。
o:进入插入模式并在当前(光标所在)行之下开启新的一行。
5. 在命令行模式下删除与复制的操作
1) 掌握常用的删除与复制的常用按键
6.粘贴命令
1) 掌握粘贴命令:
7. 复原和重做命令
1) 掌握常用的复原和重做命令:
8.扩展模式与文件的存储和退出
1)掌握扩展模式下常用的命令:
9.快速移动光标在文件中的位置
1)掌握快速移动光标在文件中的位置的命令
10.快速移动光标在屏幕中的位置
1)掌握快速在屏幕中移动光标的位置的命令
八 系统的初始化和服务
Linux系统引导的顺序
Linux系统引导的顺序
BOIS的初始化和引导加载程序
什么是BIOS
GRUB程序和grub.conf文件
什么是grub
grub配置文件grub.conf
内核的初始化和init的初始化
init的配置文件/etc/inittab
init程序要做的工作
run levels(运行级别)
各运行级别对应的功能
关闭系统及重启系统
关闭系统的命令
重启系统的命令
单用户模式修改用户密码
救援模式
1. Linux系统引导的顺序(详见linux系统管理P312)
1) 掌握Linux系统引导的顺序:(详见附1)
其中,Bios的工作是检查计算机的硬件设备,如CPU、内存和风扇速度等;
MBR会在启动盘的第1个块中,大小为512B。其中前446中的程序代码是用来选择boot partition(分区),也就是由哪个分区来装入开机用的代码;
在内核部分主要是装机计算机设备的驱动程序以便操作系统可以控制计算机上的设备。并且以只读的方式挂载/(根)文件系统,也就是此时的操作系统只能读到根文件系统(目录)所在的分区;
init程序的进程id为1,即Linux操作系统第1个执行的程序。
1. BOIS的初始化和引导加载程序
1) 掌握BIOS的定义:BIOS(Basic Input/Output System)(基本输入/输出系统的缩写),它是硬件与软件之间的接口,而且是非常基本的接口。
2. GRUB程序和grub.conf文件
1) 掌握GRUB的定义:GRUB是Grand Unified Bootloader(多重操作系统启动管理器)的缩写。
2) 掌握grub的配置文件为:grub.conf
设置grub Md5加密命令 grub-MD5-crypt
Password = 明文或 password --md5 密文(编辑grub配置文件的密码)
Title red hat 标题
Password = 明文或 password --md5 密文(加载内核系统引导必须的密码)
3. 内核的初始化和init的初始化
1) 掌握init的配置文件为:/etc/inittab
2) 了解init程序要做的工作:
a) 决定预设(默认)要使用哪个run levels(运行级别)。
b) 执行一些系统初始化的脚本(程序)来初始化操作系统。
c) 根据run level的设置来执行所对应目录中的程序,以决定要启动哪些服务。
d) 设定某些组合键。
e) 定义UPS不间断电源系统,即当电源出现问题时或电源恢复时要执行哪些程序。
f) 产生6个virtual consoles,也就是tty1~tty6。
4. run levels(运行级别)
1) 掌握所有的运行级别及每一个运行级别对应的功能:
5. 关闭系统及重启系统
1) 掌握常用的可以关闭系统的命令:
shutdown -h now
halt
poweroff
init 0
2) 掌握常用的可以重启系统的命令:
shutdown -r now
reboot
init 6
Ctrl+Alt+Delete键
6. 掌握单用户模式修改用户的密码
7. 掌握救援模式
九 系统监控
系统监视和进程控制工具—top和free
top命令的功能
top命令显示结果中一些常用状态信息的具体含义
free命令的功能
系统中进程的监控—ps
什么是进程
什么是守护进程
什么是父进程、子进程
ps命令的功能
系统中进程的监控—pstree、kill、pkill、pgrep
pstree命令的功能
pstree命令的用法举例
kill命令的功能
kill命令的用法举例
kill -9
pkill、pgrep命令的功能
1. 系统监视和进程控制工具—top和free
1) 掌握top命令的功能:top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。
2) 了解使用top命令列出系统状态时,系统默认每5秒刷新一下屏幕上的显示结果。
1. 第一行是任务队列信息
12:38:33 |
当前时间 |
up 50days |
系统运行时间,格式为时:分 |
1 user |
当前登录用户数 |
load average: 0.06, 0.60, 0.48 |
系统负载。 三个数值分别为 1分钟、5分钟、15分钟前到现在的平均值。 |
2. 第二、三行为进程和CPU的信息
Tasks: 29 total |
进程总数 |
1 running |
正在运行的进程数 |
28 sleeping |
睡眠的进程数 |
0 stopped |
停止的进程数 |
0 zombie |
僵尸进程数 |
Cpu(s): 0.3% us |
用户空间占用CPU百分比 |
1.0% sy |
内核空间占用CPU百分比 |
0.0% ni |
用户进程空间内改变过优先级的进程占用CPU百分比 |
98.7% id |
空闲CPU百分比 |
0.0% wa |
等待输入输出的CPU时间百分比 |
0.0% hi |
硬件中断占用CPU时间的百分比 |
0.0% si |
软件中断占用CPU时间的百分比 |
3. 第四五行为内存信息。
4. 进程信息
列名 |
含义 |
PID |
进程id |
PPID |
父进程id |
RUSER |
Real user name |
UID |
进程所有者的用户id |
USER |
进程所有者的用户名 |
GROUP |
进程所有者的组名 |
TTY |
启动进程的终端名。不是从终端启动的进程则显示为 ? |
PR |
优先级 |
NI |
nice值。负值表示高优先级,正值表示低优先级 |
P |
最后使用的CPU,仅在多CPU环境下有意义 |
%CPU |
上次更新到现在的CPU时间占用百分比 |
TIME |
进程使用的CPU时间总计,单位秒 |
TIME+ |
进程使用的CPU时间总计,单位1/100秒 |
%MEM |
进程使用的物理内存百分比 |
VIRT |
进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES |
SWAP |
进程使用的虚拟内存中,被换出的大小,单位kb。 |
RES |
进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA |
CODE |
可执行代码占用的物理内存大小,单位kb |
DATA |
可执行代码以外的部分(数据段+栈)占用的物理内存大小,单位kb |
SHR |
共享内存大小,单位kb |
nFLT |
页面错误次数 |
nDRT |
最后一次写入到现在,被修改过的页面数。 |
S |
进程状态。 |
COMMAND |
命令名/命令行 |
WCHAN |
若该进程在睡眠,则显示睡眠中的系统函数名 |
Flags |
任务标志,参考 sched.h |
cpu利用率与load average
cpu是用来干活的,按照这个层面去理解,每个码农都是一个cpu
cpu利用率:上一天班的时间是8个小时,而码农敲代码的时间为2个小时,2/8=0.25 ,25%就是码农在一天的时间内的利用率(正常情况,cpu利用率<70%)
cpu负载:公司在一分钟内为某个码农安排了3个任务,而1分钟内该码农能做6个任务,那么该码农一分钟内的负载为0.5
如果公司在5分钟内为某个码农安排了100个任务,而5分钟内该码农只能做50个任务,那么该码农5分钟内的负载为2.0,即超负荷运转
cpu负载<=1:能正常应付
cpu负载>1:超负荷运转
如果有4核,相当于将100个任务交给4个码农去干,如果每个码农的负载都是100%,那么整体的cpu负载达到4.0则是很正常的现象
多核cpu, load average 应该 <= cpu核数 * 0.7
为何要有1分钟,5分钟,15分钟三种cpu负载?
其实之所以要给出3个值,就是希望我们能结合起来看。或者说希望展示一个动态的图表式的数据,比如最近一分钟显示负载120%。而最近5分钟和15分钟显示负载为50%。可能你不用太过担心。但是如果你发现系统的负载一直维持在120%以上,就必须要提高硬件配置了。
cpu利用率和cpu负载过高,都是不好的现象,但是也有可能出现,低利用率,高负载的情况:
为一个码农分配了100个项目,毫无疑问,该码农的负载是很高的,但是码农在具体去做一个项目时,可能会碰到需要购买机器,或者查询资料等耗费时间的问题,真正动手写代码的时间可能很短,而这段时间才是码农真正为公司干活的时间,如果每个项目都有类似这种问题,那么100个项目加到一起,码农真正工作的时间也不会太多,这就造成了低利用率。
在两种情况下会导致一个进程在逻辑上不能运行,
1. 进程挂起是自身原因,遇到I/O阻塞,便要让出CPU让其他进程去执行,这样保证CPU一直在工作
2. 与进程无关,是操作系统层面,可能会因为一个进程占用时间过多,或者优先级等原因,而调用其他的进程去使用CPU。
因而一个进程有三种状态
3) 掌握free命令的功能:显示内存的使用状态。(下图centos6中查看效果,用二维数组代表FO即free output)
1 2 3 4 5 6 1 total used free shared buffers cached 2 Mem: 24677460 23276064 1401396 0 870540 12084008 3 -/+ buffers/cache: 10321516 14355944 4 Swap: 25151484 224188 24927296
从操作系统的角度:
物理内存FO[2][1]=24677460KB
物理内存被使用的内存FO[2][2]=23276064KB
可以用内存F[2][3]=1401396KB
等式:FO[2][1] = FO[2][2] + FO[2][3]
共享内存F[2][4]=0,表示几个进程共享的内存(数据共享)
F[2][5]=870540表示已经分配但是还未使用的buffers大小
F[2][6]=12084008表示已经分配但是还未使用的buffers大小
buffer和cache的解释:
- A buffer is something that has yet to be "written" to disk.
- A cache is something that has been "read" from the disk and stored for later use.
也就是说buffer是用于存放要输出到disk(块设备)的数据的,而cache是存放从disk上读出的数据。这二者是为了提高IO性能的,并由OS管理。
Linux和其他成熟的操作系统(例如windows),为了提高IO read的性能,总是要多cache一些数据,这也就是为什么FO[2][6](cached memory)比较大,而FO[2][3]比较小的原因。我们可以做一个简单的测试
- 释放掉被系统cache占用的数据;
echo 3>/proc/sys/vm/drop_caches
- 读一个大文件,并记录时间;
- 关闭该文件;
- 重读这个大文件,并记录时间;
第二次读应该比第一次快很多。
free输出的第二行是从一个应用程序的角度看系统内存的使用情况。
- 对于FO[3][2],即-buffers/cache,表示一个应用程序认为系统被用掉多少内存;
- 对于FO[3][3],即+buffers/cache,表示一个应用程序认为系统还有多少内存;
因为被系统cache和buffer占用的内存可以被快速回收,所以通常FO[3][3]比FO[2][3]会大很多。
这里还用两个等式:
- FO[3][2] = FO[2][2] - FO[2][5] - FO[2][6]
- FO[3][3] = FO[2][3] + FO[2][5] + FO[2][6]
free命令的所有输出值都是从/proc/meminfo中读出的。
4) 掌握free命令的功能:显示内存的使用状态。(下面均为centos7中查看效果)
http://www.linuxatemyram.com/提到使用free
命令查看Linux
系统使用内存时,used
一项会把当前cache
的大小也会加进去,这样会造成free
这一栏显示的内存特别少:
$ free -m
total used free shared buff/cache available
Mem: 1504 1491 13 0 855 869
Swap: 2047 6 2041
可是实际上,cache
根据应用程序的需要是可以回收利用的,因此free
这一栏并不能真实地表现有多少“可以使用”的内存。实际系统可用内存应该以available
数据为准。
linuxatemyram
所提到的free
命令也许是比较老的版本,我尝试了RHEL 7.2
,Ubuntu 16.04
和Arch Linux
这3
个Linux
发行版,均没有出现used
包含cache
的情况:
$ free -m
total used free shared buff/cache available
Mem: 64325 47437 3150 1860 13737 14373
另外,从man free
命令中也可以得到,目前计算used
的值是要减掉free
和buff/cache
的:
used Used memory (calculated as total – free – buffers – cache)
可以使用-w
命令行选项得到buff
和cache
各自使用的数量:
$ free -wm
total used free shared buffers cache available
Mem: 64325 48287 2476 1859 1430 12131 13524
需要注意的是,free
表示的是当前完全没有被程序使用的内存;而cache
在有需要时,是可以被释放出来以供其它进程使用的(当然,并不是所有cache
都可以释放,比如当前被用作ramfs
的内存)。而available
才真正表明系统目前可以提供给应用程序使用的内存。/proc/meminfo
从3.14
内核版本开始提供MemAvailable
的值;在2.6.27
~3.14
版本之间,是free
程序自己计算available
的值;早于2.6.27
版本,available
的值则同free
一样。
2. 系统中进程的监控—ps
1) 掌握进程的定义:进程是程序的一次动态执行。
2) 掌握守护进程的定义:守护进程是在后台运行并提供系统服务的一些进程。
3) 掌握父进程、子进程的定义:当一个进程创建另一个进程时,第1个进程被称为新进程的父进程,而新进程被称为子进程。
4) 掌握ps命令的功能:用来显示当前进程的状态。
Ps –aux 显示所有的与用户相关的完整信息
系统中进程的监控pstree、kill
centos7默认没有pstree,需要yum -y install psmisc
1) 掌握pstree命令的功能:以树状图显示程序。
2) 掌握pstree命令的用法举例:
例如:列出PID为4729的进程的进程状态树的命令:pstree 4729
3) 掌握kill命令的功能:把一个信号发送给一个或多个进程。默认发送终止信号。
4) 灵活应用kill命令终止进程
例如:终止PID为3852的进程的命令:kill 3852
5) 灵活应用kill -9命令杀死进程
例如:杀死PID为3906的进程的命令:kill -9 3906
3. 掌握pgrep命令的功能:通过名称或其他属性查找进程
例如:查找名为firefox的进程的命令为:pgrep firefox
4. 掌握pkill命令的功能:通过名称或其他属性发信号给进程
例如:杀死名为firefox的进程的命令为:pkill firefox
十 硬盘分区、格式化及文件系统的管理一
硬件设备与文件名的对应关系
硬盘的结构及硬盘分区
为什么进行硬盘分区
硬盘的逻辑结构
Linux系统中硬盘的分区
硬盘分区的分类
分区数量的约束
使用fdisk和partprobe命令来管理硬盘分区
fdisk 命令的功能
fdisk命令列表中常用的命令
partprobe命令
创建文件系统(数据的管理)
什么是格式化
什么是文件系统
文件系统类型
mkfs命令的功能
mkfs命令的用法举例
为一个分区设定label(分区名)
e2label命令的功能
e2label命令的用法举例
1. 硬件设备与文件名的对应关系
1) 掌握在Linux系统中,每个设备都被当初一个文件来对待。
2) 掌握各种设备在Linux中的文件名
2. 硬盘的结构及硬盘分区
1) 了解为什么要进行硬盘分区:
a) 更容易管理和控制系统,因为相关的文件和目录都放在一个分区中。
b) 系统效率更高。
c) 可以限制用户使用硬盘的份额(磁盘空间的大小)。
d) 更容易备份和恢复。
2) 掌握硬盘的逻辑结构:
一个硬盘逻辑上可以被划分成块、磁道、磁柱和分区。
3) 掌握块的定义:块是盘片上寻址(访问)的最小单位,一个块可以存储一定字节的数据。
4) 掌握磁道的定义:磁道是由一系列头尾相连的块组成的圆圈。
5) 掌握磁柱的定义:磁柱是由一叠磁道,由在相同半径上每个盘面的磁道所组成。
6) 掌握分区的定义:分区是由一组相邻的磁柱所组成。
3. Linux系统中硬盘的分区(详见linux系统管理P303)
1) 掌握硬盘分区的分类:硬盘的分区可以分为主分区、扩展分区和逻辑分区。
2) 掌握主分区的数量:在一个硬盘上最多可以划分出4个主分区。
3) 了解Linux操作系统的内核支持每个硬盘上的分区数量还是有一定限制的,Linux内核在每个硬盘上可以最多支持:
a) 在SCSI硬盘上划分15个分区(Partitions)。
b) 在IDE硬盘上划分63个分区(Partitions)。
4. 使用fdisk和partprobe命令来管理硬盘分区
1) 掌握fdisk命令的功能:创建磁盘分区。
2) 掌握fdisk命令列表中常用的命令:
a) d:删除一个(已经存在的)分区,其中d是delete的第1个字母。
b) l:列出(已经存在的)分区的类型,其中l是list的第1个字母。
c) m:列出fdisk中使用的所有命令,其中m是menu的第1个字母。
d) n:添加一个新的分区,其中n是new的第1个字母。
e) p:列出分区表的内容,其中p是print的第1个字母。
f) q:退出fdisk,但是不存储所做的变化,其中q是quit的第1个字母。
g) t:改变分区系统的id,其中t是title的第1个字母。
h) w:退出fdisk并存储所做的变化,其中w是write的第1个字母。
3) 掌握partprobe命令的功能:重新初始化内存中内核的分区表。
5. 创建文件系统(数据的管理)(详见linux系统管理P399)
1) 掌握格式化的定义:所谓的格式化就是将分区中的硬盘空间划分成大小相等的一些数据块(Blocks),以及设定这个分区中有多少个i节点可以使用等。
2) 掌握文件系统的定义:文件系统是操作系统用于明确磁盘或分区上的文件的方法和数据结构;即在磁盘上组织文件的方法。
3) 了解常用的文件系统类型
ext2:Linux系统中标准的文件系统
ext3:一种日志式文件系统
ext4:一种针对ext3系统的扩展日志式文件系统
lvm:逻辑盘卷管理
iso9660:目前唯一通用的光盘文件系统
4) 掌握mkfs命令的功能:格式化磁盘。
5) 灵活应用常用的格式化命令:
mkfs.文件系统类型
例如,将分区/dev/sdb1格式化为ext4文件系统的命令为:
mkfs.ext4 /dev/sdb1
6. 为一个分区设定label(分区名)
1) 掌握e2label命令的功能:设定或查看一个设备的label名称。
2) 灵活应用e2label命令设定label:
a) 例如:查看/dev/sdb1分区的label的命令为:
e2label /dev/sdb1
b) 例如:将/dev/sdb1分区的label设定为wg的命令:
e2label /dev/sdb1 wg
十一 硬盘分区、格式化及文件系统的管理二
文件系统的挂载与卸载
什么是挂载
mount命令的功能
mount命令的用法举例
umount命令的功能
umount命令的用法举例
利用/etc/fstab文件在开机时自动挂载文件系统
虚拟内存的概念以及设置与管理
什么是虚拟内存
创建swap分区的步骤
使用硬盘分区创建和使用系统交换分区的实例
mkswap 命令的功能
mkswap 命令的用法举例
swapon命令的功能
swapon -a
swapon -s
以上是关于linux的基本使用的主要内容,如果未能解决你的问题,请参考以下文章
linux打开终端如何启动scala,如何在终端下运行Scala代码片段?
Android 逆向Linux 文件权限 ( Linux 权限简介 | 系统权限 | 用户权限 | 匿名用户权限 | 读 | 写 | 执行 | 更改组 | 更改用户 | 粘滞 )(代码片段