linux 基础知识总结
2016-07-29 15:08
549 查看
linux 基础知识总结
一.课程结构:
(一)预科部分:初始 linux
学会如何安装 linux 操作系统
了解 linux 的目录结构
掌握 linux 下的常规操作
(二)linux 系统知识:
shell 的简介和使用
使用 man 手册获取帮助–help
管理系统用户和组
文件权限(文件权限的意义和修改)
vim 的使用(关键字:快捷键操作)
(三)linux可能遇上的问题
制作 yum 源(本地、远程)及 yum 命令的基本操作
图形界面和字符界面切换
归档和压缩(关键字:tar 命令)
查看管理系统进程熟练掌握以下命令:
(一)基础部分:
1. Linux的含义
严格的来讲,Linux 不算是一个操作系统,只是一个 Linux 系统中的内核,即计算机软件与硬件通讯之间的平台;Linux 的全称是GNU/Linux,这才算是一个真正意义上的 Linux 系统。
GNU 是 Richard Stallman 组织的一个项目,世界各地的程序员可以变形 GNU 程序,同时遵循 GPL 协议,允许任何人任意改动。但是,修改后的程序必须遵循 GPL 协议。
2.安装 redhat 系统
3.linux 的目录结构
http://yangrong.blog.51cto.com/6945369/12880724.掌握 linux 下的常规操作
(0).基础
<1> 用户权限
登陆 linux 系统需要用户名和密码,分为超级用户(root)和普通用户,两者之间存在着权限的差异。如果是在控制台中要进行用户的切换使用su命令,超级用户切入到普通用户可以直接切换。
登陆控制台之后我们可以看到一个等待用户输入命令的行提示符号:
[root@server home]#
第一个是指用户为
root,
server为我们的主机名(输入命令
hostname可以查看),第三个为我们当前工作目录
命令行提示符的结尾为
#说明是超级用户,如果是
$说明是普通用户
<2>文件路径(绝对路径和相对路径)
绝对路径:在 Linux 中,绝对路径是从/(也被称为根目录)开始的,比如/usr、
/etc/X11。
相对路径:对应的就不是从
/开始描述的,以当前目录
.开始进行描述。(
.为当前目录,
..为当前目录的上一级目录)
<3> linux 下的网络配置:
关于 linux 的网络配置,redhat6 和 redhat7 有着细微的差别:网卡的名称发生了改变,在 redhat6 中,我们着重关注的文件是
ifcfg-eth0和
ifcfg-br0(与虚拟机进行桥接的文件),
而在 redhat7中,
ifcfg-eth0变成了
ifcfg-enp3s0f0的形式,也就是说
eth0网卡失效了。
但是这几个文件的目录并没有发生改变:网络配置文件目录:
/etc/sysconfig/network-scripts/
如 果 我 们 不 进 行 桥 接 的 情 况 下 , 在
ifcfg-eth0和
ifcfg-enp3s0f0中需要写入以下参数:
DEVICE设备名称与 ifcfg-后的名字要相同,否则系统无法识别;
ONBOOT YES|NO
在重新启动网络时是否开启该网卡
BOOTPROTO dhcp | (static | none)
//dhcp 表示我们主机的 IPADDR,GATEWAY,DNS 都是自动获取的,这个设置要想成功的话,当前的环境中必须要有 dhcp 服务器开启,否则会获取失败,如果设置为 static 或者 none,则需要手动设置 IPADDR,GATEWAY 和 DNS1 的值。
GATEWAY环境的网关 IP
IPADDR与网关在同一网段的 IP
DNS1域名解析服务器 IPNETMASK
子网掩码(可以与 IPADDR 进行与运算确定该 IP网段)
(1).文件和目录操作命令
<1>.ls 命令
这个命令就相当于dos下的
dir命令一样 也是 Linux 控
制台命令中最为重要几个命令之一,ls 最常用的参数有三个
-a、
-l
和
–F:
ls -a
Linux 系统上的文件以.开头的文件被系统视为隐藏文件,仅用 ls 命令是看不到他们的。而用
ls -a除了显示一般文件名外,连隐藏文件也会显示出来。
ls –l
这个命令可以使用长格式显示文件内容 如果需要察看更详细的文件资料就要用到
ls -l这个指令。
ls -F
在列出的文件 目录 名称后加一符号 例如可执行文件加”
*“, 目录则加 “
/“。
<2>.cd 命令
cd这个命令是用来进出目录的,它的使用方法和在 dos 下没什么两样,但和 dos 不同的是 Linux 的目录对大小写是敏感的如果
大小写拼写有误,你的 cd 操作是成功不了的。另外,cd 如果直接输
入,cd 后面不加任何东西。会回到使用者自己的 Home 目录,假设如果是 root 那就是回到/root。这个功能同
cd ~是一样的。
<3>. mkdir rmdir 命令
mkdir命令用来建立新的目录,如输入如下命令
mkdir work
将在当前目录下新建一个 work 目录
rmdir 用来删除已建立的目录,如输入如下命令
rmdir work
将删除已存在的空目录 work
*如果要删除的目录不为空的话,使用 rmdir 无法进行删除,
使用命令:
rm 目录文件 -fr
<4>. cp 命令
cp这个命令相当于 dos 下面的
copy命令;具体用法是:
cp –r 源文件(source) 目的文件(target)
参数 r 是指连同源文件中的子目录一同拷贝.在我们的 shell 设置中,把 cp -r 的别名设置成了 cp,两者功能相同。
<5>. rm 命令
rm 这个命令是用来删除文件的,rm 命令常用的参数有三个-i,-r,-f.比如我现在要删除一个名字为 text 的一个文件,输入如下命令rm –i test
系统会询问我们是否要删除 test 文件 敲了 y/n 确认是否
rm –r 目录名
这个操作可以连同这个目录下面的子目录都删除.功能比上面讲到的 rmdir 更强大 不仅可能删除指定的目录,而且可以删除该目录下所有文件和子目录。
rm –f 文件名
这个操作可以不经确认强制删除文件
需要强调的是,rm 文件 -fr 这个命令是十分危险的,当你不清楚它执行后的结果的时候请不要轻易使用,以免造成文件的丢失。
<6>. mv 命令
mv 这个命令的功能是移动目录或文件,引申的功能是给目录或文件重命名比如:
mv /tmp/xxx.tar /root
该命令将/tmp 目录下的 xxx.tar 文件移动到/root 目录下,
需要注意的是 mv 此时和 cp 命令有着些许差别,mv 会把移动文件的
安全上下文属性保留,cp 则会使用目标目录的安全上下文。查看文件的安全上下文:
[root@foundation0 mnt]# ll file -Z -rw-r--r--. root root unconfined_u:object_r:mnt_t:s0 file
这 个 是 cp 后 的 结 果 , 安 全 上 下 文 由 mnt_t 改为public_content_t。
[root@foundation0 mnt]# cp file /var/ftp/pub/file1 [root@foundation0 mnt]# ll /var/ftp/pub/file1 -Z
这个是 mv 后的结果,安全上下文未发生改变:
[root@foundation0 mnt]# mv file /var/ftp/pub/ [root@foundation0 mnt]# ll /var/ftp/pub/file -Z -rw-r--r--. root root unconfined_u:object_r:mnt_t:s0
安全上下文是 linux 系统中另外一种安全机制,与 selinux是息息相关的。相当于给每个文件一个标签,通过安全上下文可以限制文件的功能。文件重命名:
mv aaa.tar bbb.tar
则是将当前目录下的文件 aaa.tar 更名为 bbb.tar
<7>. cat 命令
cat这个命令是 linux 中非常重要的一个命令,它的功能是显示或连结一般的 ascii 文本文件。它的用法如下:
cat text
该命令显示 text 这个文件的内容
cat file1 file2
该命令依顺序显示 file1,file2 的内容
cat file1 file2>file3
该命令把 file1,file2 的内容结合起来再重定向>到 file3文件中
<8>. more 命令
more 是显示一般文本文件的指令,如果一个文本文件太长了,超过一个屏幕的画面,用 cat 来看实在是不理想就可以试试 more。用法如下:
more file1
<9>. pwd 命令
pwd 这个命令的作用是显示用户当前的工作路径,直接输入pwd 即可。示例:
[root@foundation0 mnt]# cd /var/ftp/pub/ [root@foundation0 pub]# pwd /var/ftp/pub
<10>.使用 nautilus 以图形方式管理文件
打开文件管理器:[root@foundation0 Desktop]# nautilus
进入管理器后要想看到隐藏文件(以.开头的文件):
ctrl+h
想要访问远程 ftp 文件目录:
单击“
Connect to Server”,输入
ftp://XXX.XXX.XXX.XXX即
可访问远程 ftp(前提是对方开发了 ftp 服务)
*管理和访问文件我们建议尽量的使用命令行进行处理。
(2).磁盘及文件系统管理命令:
<1>.df 命令
作用:df 命令用来检查文件系统的磁盘空间占用情况,使用权限是所有用户。格式
df [options]
主要参数
-s:对每个 Names 参数只给出占用的数据块总数。
-a:递归地显示指定目录中各文件及子目录中各文件占用的数据块数。若既不指定-s,也不指定-a,则只显示 Names 中的每一个目录及其中的各子目录所占的磁盘块数。
-k:以 1024 字节为单位列出磁盘空间使用情况。
-x:跳过在不同文件系统上的目录不予统计。
-l:计算所有的文件大小,对硬链接文件则计算多次。
-i:显示 inode 信息而非块使用量。
-h:以容易理解的格式印出文件系统大小,例如 136KB、24MB、21GB。
-P:使用 POSIX 输出格式。
-T:显示文件系统类型。
说明
df 命令被广泛地用来生成文件系统的使用统计数据,它能显示系统中所有的文件系统的信息,包括总容量、可用的空闲空间、目前的安装点等。
超级权限用户使用 df 命令时会发现这样的情况:某个分区的容量超过了 100%。这是因为 Linux 系统为超级用户保留了 10%的空间,由其单独支配。也就是说,对于超级用户而言,他所见到的硬盘容量将是 110%。这样的安排对于系统管理而言是有好处的,当硬盘被使用的容量接近100%时系统管理员还可以正常工作.
<2>. mount 和 umount
mount 命令有很多参数,其中大多数都不会在日常工作中用到,mount 命令最常见的用法如下所示:mount [选项] 设备 目录
其中最常用的选项是 -a,把/etc/fstab 文件中列出的文件系统都挂装上
挂装软驱和光驱的命令比较简单,直接输入以下命令即可:
mount /mnt/cdrommount /mnt/floppy
umount 命令用于卸载一个文件系统,命令的格式如下:
umount [ -f ] directory
其中 directory 是准备卸载的目录名.
umount 命令有一个不足之处 如果文件系统正在使用中 也就是说有人在那个分区上打开了文件,就无法把这个文件系统卸载下来.这时可以使用和- f 参数强制执行卸载操作 当然这种操作可能会造
成用户数据的丢失。如:
umount -f /mnt/cdrom
该命令将强制卸载挂装在/mnt/cdrom 目录下的文件系统
所以我们给出的建议是,最好先退出所要卸载的目录,然后再执行卸载命令。
(二)linux 系统知识:
1.shell 的简介和使用
Shell 是系统的用户界面,提供了用户与内核进行交互操作的一种接口。它接收用户输入的命令并把它送入内核去执行。实际上 Shell 是一个命令解释器,它解释由用户输入的命令并且把它们送到内核。不仅如此,Shell 有自己的编程语言用于对命令的编辑,它允许用户编写由 shell 命令组成的程序。Shell 编程语言具有普通编程语言的很多特点,比如它也有循环结构和分支控制结构等,用这种编程语言编写的 Shell 程序与其他应用程序具有同样的效果。
Linux 提供了像 MicrosoftWindows 那样的可视的命令输入界面–X Window 的图形用户界面(GUI)。它提供了很多桌面环境系统,其操作就像 Windows 一样,有窗口、图标和菜单,所有的管理都是通过鼠标控制。GNOME。每个 Linux 系统的用户可以拥有他自己的用户界面或 Shell,用以满足他们自己专门的 Shell 需要。
同 Linux 本身一样,Shell 也有多种不同的版本。主要有下列版本的 Shell:
Bourne Shell:是贝尔实验室开发的。
BASH:是 GNU 的 Bourne Again Shell,是 GNU 操作系统上默认的 shell。
Korn Shell:是对 Bourne SHell 的发展,在大部分内容上与Bourne Shell 兼容。
C Shell:是 SUN 公司 Shell 的 BSD 版本。
Z Shell:The last shell you’ll ever need! Z 是最后一个字母,也就是终极 Shell。它集成了 bash、ksh 的重要特性,同时又增加了自己独有的特性。
shell 的使用之前我们已经介绍了部分命令,然而对于 shell的学习不仅限于此。
在以后的 linux 学习中我们还要接触脚本的编程,让系统的管理变得自动化。
但是前面的命令操作是基石,希望大家能够熟练掌握。
2.使用 man 手册获取帮助
对命令的操作不熟悉时,或者在 C 语言编程对函数的参数有不了解的地方。则需要使用 man 命令进行查找,它有很多个查找类型:1 Executable programs or shell commands 2 System calls (functions provided by the kernel) 3 Library calls (functions within program libraries) 4 Special files (usually found in /dev) 5 File formats and conventions eg /etc/passwd 6 Games 7Miscellaneous (including macro packages and conventions), e.g. man(7), groff(7) 8 System administration commands (usually only for root) 9 Kernel routines [Non standard]
小提示:在 man 中如果搜索某个关键字,使用“/查找关键字”
快速的进行定位。并且可以按“n”进行下一个的匹配
3.管理系统用户和组
(1).用户及用户组管理命令
<1>. useradd 命令
useradd 命令可以创建一个新的用户帐号,其最基本用法为:useradd 用户名
如输入以下命令
useradd newuser
系统将创建一个新用户 newuser,该用户的 Home 目录为
/home/newuser。
useradd 命令的参数较多,常用的组合为:
useradd 用户名 -g 组名 –G 组名 -d Home 目录名 -p 密码
其中:
-g指定该用户的首要组
-G指定该用户的次要组
-d指定该用户的 Home 目录
-p指定该用户的密码
如输入以下命令:
useradd oracle –g oinstall –G dba –d /home/oracle –p ora123
系 统 将 创 建 一 个 用 户 oracle , oracle 用 户 的 首 要 组 oinstall,次要组为 dba,Home 目录为/home/oracle,密码为 ora123。
*当要查看系统是否有某个用户的时候,使用命令
id:id 用户名
<2>.userdel 命令
userdel 命令用于删除一个已经存在的帐号,其用法为:userdel 用户名
<3>.groupadd 命令
groupadd 命令可以创建一个新的用户组,其最基本用法为:groupadd 组名
如输入以下命令:
groupadd newgroup
系统将创建一个新的用户组 newgroup
<4>.groupdel 命令
groupdel 命令用于删除一个已存在的用户组,其用法为:groupdel 组名
<5>.passwd 命令
出于系统安全考虑 Linux 系统中的每一个用户除了有其用户名外还有其对应的用户口令,用户可以随时用 passwd 命令改变自己的口令,该命令的一般格式为:passwd
输入该命令后,按系统提示一次输入密码和密码确认后,即可完成对用户密码的修改.
此外,超级用户还可以修改其他用户的密码,命令如下:
passwd 用户名
<6>.su 命令
su 命令这个命令非常重要,它可以让一个普通用户拥有超级用户或其他用户的权限也可以让超级用户以普通用户的身份做一些事情。普通用户使用这个命令时必须有超级用户或其他用户的口令,如果想要离开当前用户的身份可以键入 exit 命令。su 命令的一般形式为:su - 用户名
<7>.chown 命令
chown 用于更改某个文件或目录的属主和属组,这个命令也很常用,例如 root 用户把自己的一个文件拷贝给用户 oracle 为了让用户 oracle 能够存取这个文件,root 用户应该把这个文件的属主设为 oracle 否则用户 oracle 无法存取这个文件。chown 的基本用法为:
chown [用户:组] 文件
举例:
chown oracle:dba text
该命令将 text 文件的属主和属组分别改为 oracle 和 dba。
(4).文件权限(文件权限的意义和修改)
<1>.chmod 命令
使用权限 : 所有使用者使 用 方 式 :
chmod [-cfvR] [--help] [--version] mode file...
说明 : Linux/Unix 的档案调用权限分为三级 : 档案拥有者、群组、其他。利用 chmod 可以藉以控制档案如何被他人所调用。
参数 :
mode:权 限 设 定 字 串 , 格 式 如 下:
[ugoa...][[+-=][rwxX]...][,...],其中:
u表示该档案的拥有者,
g表示与该档案的拥有者属于同一个群体(group)者,
o表示其他以外的人,
a表示这三者皆是。
+表示增加权限、
-表示取消权限、
=表示唯一设定权限。
r表示可读取,
w表示可写入,
x表示可执行,
X表示只有当该档案是个子目录或者该档案已经被设定过为可执行。
-c: 若该档案权限确实已经更改,才显示其更改动作
-f: 若该档案权限无法被更改也不要显示错误讯息
-v: 显示权限变更的详细资料
-R: 对目前目录下的所有档案与子目录进行相同的权限变更(即以递回的方式逐个变更)
--help: 显示辅助说明
--version: 显示版本
范例 :将档案 file1.txt 设为所有人皆可读取 :\
chmod ugo+r file1.txt
将档案 file1.txt 设为所有人皆可读取 :
chmod a+r file1.txt
将档案 file1.txt 与 file2.txt 设为该档案拥有者,与其所属同一个群体者可写入,但其他以外的人则不可写入 :
chmod ug+w,o-w file1.txt file2.txt
将 ex1.py 设定为只有该档案拥有者可以执行 :
chmod u+x ex1.py
将目前目录下的所有档案与子目录皆设为任何人可读取 :
chmod -R a+r *
此外 chmod 也可以用数字来表示权限如
chmod 777 file
语法为:
chmod abc file
其中 a,b,c 各为一个数字,分别表示 User、Group、及 Other的权限。
r=4,w=2,x=1
若要 rwx 属性则 4+2+1=7;
若要 rw-属性则 4+2=6;
若要 r-x 属性则 4+1=5。
范例:
chmod a=rwx file和
chmod 777 file效果相同。
chmod ug=rwx,o=x file和
chmod 771 file效果相同。
若用
chmod 4755 filename可使此程序具有 root 的权限
(5).vim 的使用(关键字:快捷键操作)
关于 vim 的使用技巧,这里推荐《VI 和 VIM 编辑器(第 7 版)(中文版).pdf 》,
在 owncloud 上面有电子版,详细的介绍了 vim 的使用。
练习:自己安装 ctags,并且结合 vim 进行快速的源码阅读。
(三)linux可能遇上的问题
1.制作 yum 源(本地、远程)及 yum 命令的基本操作
(1).WHAT YUM?
yum 是一个软件包管理器,基于 RPM 包管理,能够从指定的服务器自动下载 RPM 包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。是的,它帮助我们把各种 RPM 包的依赖性解决好了,只需要执行yum 命令安装就可以了,所以很实用。
我们设定好远程 yum 源后,每次在安装某个软件的时候,其实是在本地查询软件的包依赖关系,按照依赖关系在远程的 ftp 服务器下载指定的包,完成安装后删除(系统默认,可保存包)所下载的包。
此时你只需要设置一个配置文件即可,该文件的目录为:
/etc/yum.repos.d/
在这个目录下的文件都是以 repo 为后缀结尾的,例如:
yum.repo
[source] name=localserver #baseurl=ftp://192.168.3.252/pub/rhel7.0 baseurl=file:///content/rhel7.0/x86_64/dvd gpgcheck=0
我们做下解释,第一行为一个源的名称(可以自定义),
name是对这个源的描述(可以自定义),
baseurl是 yum 源的指定目录。
如果是远程的 yum 源使用
ftp://,如果是本地的 yum 源使用
file://然后加上 yum 源的绝对路径
gpgcheck决定是否要对所下载的包进行校验,0 为否,1 为是。
(2).制作本地 yum 源:
制作本地 yum 源分为两个步骤:(1)首先,我们要把 iso 镜像文件挂在到指定的目录中,写入/etc/fstab 文件;
写入的内容与下面内容类似:
/content/rhel7.0/x86_64/isos/rhel-server-7.0-x86_64-dvd.iso /content/rhel7.0/x86_64/dvd iso9660 loop,ro 0 0
*每次修改完/etc/fstab 中需要执行命令 mount -a;
(2)然后在/etc/yum.repos.d/yum.repo 文件中写入 baseurl参数中。
*每次修改完 repo 文件,请执行 yum clean all 命令进行刷新。
关于 yum 的基本操作有以下几个命令:
查看所有安装包的列表
yum list
查看命令是何种包支持的
yum whatprovides 命令
安装包
yum install 包
删除安装过的包
yum remove 包
再次安装包
yum reinstall 包
组安装
yum groupinstall 包
组删除
yum groupremove 包
2.图形界面和字符界面切换
1.redhat7 的图形界面和 6 有着比较大的区别,它将之前的几个目录集和到了 Applications 里边,大家可以尝试着里边的应用,图形界面我们不做过多的解释。图形界面和字符界面的切换:
//图形---->字符: [root@foundation0 yum.repos.d]# init 3 //字符---->图形: [root@foundation0 yum.repos.d]# init 5
如果我们想要修改系统的开机默认界面,redhat6 和 7 的方法有区别:
redhat6 修改开机启动界面:
编辑/etc/inittab 文件,在最末尾设置开机级别,0-6 七个级别。
redhat7 修改开机启动界面:
查看/etc/inittab 文件如下所示:
# multi-user.target: analogous to runlevel 3 # graphical.target: analogous to runlevel 5 # # To set a default target, run: # # ln -sf /lib/systemd/system/<target name>.target/etc/systemd/system/default.target
可以看到图形界面和字符界面对应的参数分别为:
graphical.target(5)和 multi-user.tartget(3) 开机默认为图形界面: ln -sf /lib/systemd/system/graphical.target /etc/systemd/system/default.target 开机默认为字符界面: ln -sf /lib/systemd/system/multi-user.target /etc/systemd/system/default.target
3.归档和压缩(关键字:tar 命令)
这个就是我们 windows 当中的压缩和解压缩,要求我们要熟悉 tar 命令。关于 tar 命令的解释,网上有很多博客介绍到了:
http://blog.csdn.net/ericbaner/article/details/3966741
关于解压缩除了 tar 之外,我们有时还需要解压 zip 和 rar 压缩包:
1)对于.ziplinux 下提供了 zip 和 unzip 程序,zip 是压缩程序,unzip 是
解压程序。它们的参数选项很多,
这里只做简单介绍,依旧举例说明一下其用法:
zip all.zip *.jpg
这条命令是将所有.jpg 的文件压缩成一个 zip 包
unzip all.zip
这条命令是将 all.zip 中的所有文件解压出来
2)对于.rar
要在 linux 下处理.rar 文件,需要安装 RAR for Linux,可以从
网上下载,但要记住,RAR for Linux 不是免费的;然后安装:
# tar -xzpvf rarlinux-3.2.0.tar.gz # cd rar # make
这样就安装好了,安装后就有了 rar 和 unrar 这两个程序,rar
是压缩程序,unrar 是解压程序。
它们的参数选项很多,这里只做简单介绍,依旧举例说明一下其
用法:
# rar a all *.jpg
这条命令是将所有.jpg 的文件压缩成一个 rar 包,
名为 all.rar,
该程序会将.rar
扩展名将自动附加到包名后。
# unrar e all.rar
这条命令是将 all.rar 中的所有文件解压出来
4.查看管理系统进程熟练掌握以下命令:
ps aux top kill
我们可以通过上述的命令关闭某些进程;找到系统所占用资源最
大的进程;找到指定的进程。
相关文章推荐
- Linux基础知识总结(二)
- linux基础知识总结(三)
- android linux 基础知识总结
- linux 基础知识总结
- android linux 基础知识总结(2)
- Linux基础知识总结(四)
- Linux基础知识总结(2): 文件的压缩与打包
- Linux基础知识总结
- android linux 基础知识总结
- android linux 基础知识总结
- android linux 基础知识总结
- android linux 基础知识总结
- android linux 基础知识总结
- linux ,Android基础知识总结
- android linux基础知识总结
- android linux 基础知识总结
- linux ,Android基础知识总结
- linux ,Android基础知识总结
- android linux 基础知识总结(3)
- android linux 基础知识总结(1)