3.26课堂笔记——linux基础
基础认识
-
什么是开源?
开源就是软件和源代码都是公开的.
可以修改(完善作者的代码)和创建自己的软件.
2.免费软件不同于自由软件,虽然它是免费的,但他不公布源代码,共享软件与免费软件有点类似,其初起是不收费的,但过了试用期后收费.
3.linux起源:
GUN项目计划
GNU Project发起于1984年,由著名的黑客Richard Stallman提出的,GNU获得了自由软件基金会(FSF for Free Software Foundation)的支持,这也是GNU的主要资金来源,目的是为了建立免费的UNIX系统,基本原则是源代码共享及思想共享。
GNU是“GNU's Not Unix”的递归缩写。
GNU[nu:, nju:]的中文翻译是角马(南非产的象牛的大羚羊)。所以GNU的标志也就是这个,记住,他是角马,不是牛,也不是其他的什么。 别出去闹笑话哦 !
这就是Richard Stallman,很著名的黑客,如果你要从事IT,别人问你Richard Stallman 你说不知道,那就问题严重了
GNU通用公共许可(GPL)
Linux是基于Copyleft(版权所无)的软件模式进行发布的,其实Copyleft是与Copyright(版权所有)相对立的新名称,它是GNU项目制定的通用公共许可证GPL(General Public License)。
GPL是由自由软件基金会发行的用于计算机软件的协议证书,使用该证书的软件被称为自由软件(Free software),后来改名为开放源代码软件(Open Source Software)。大多数的GNU程序和超过半数的自由软件使用它 。
GPL保证了任何人都有权复制、修改和重新发布自由软件的源代码,并且规定在不增加费用的条件下得到源代码(基本发行费用除外),但你不能声明你做了原始的工作,或声明是由他人做的。
LNUX发展史和Linus Torvalds
Linux核心编写者 Linus Torvalds
Linux由Linus Torvalds于1991年10月在芬兰赫尔辛基大学发布的,Linux可以说是UNIX操作系统的一个克隆体。
Linux kernel + GNU utilities = open source,UNIX-like operating system
仅有内核而没有应用软件的操作系统是无法使用的,所以许多公司或社团将内核、源代码及相关的应用程序组织构成一个完整的操作系统,让一般的用户可以简便地安装和使用Linux,这就是所谓的发行版本(distribution)。
当然还有我们的REDHAT
REDHAT是 1994年,由Bob Young Marc Ewing 创建的,是世界上最大的的开放原代码的公司之一
桌面版最高是 9.0,那也是个绝版 ,从那以后REDHAT就专注与服务器版本。 没在对桌面投入太多,Fedora Core 是REDHAT和开源社区合作开发的,并不是红帽所有。
1.虚拟机操作
[kiosk@foundation0 Desktop]$ rht-vmctl stop desktop ###关闭
Stopping desktop.
[kiosk@foundation0 Desktop]$ rht-vmctl start desktop ###开启
Starting desktop.
[kiosk@foundation0 Desktop]$ rht-vmctl view desktop##显示
[kiosk@foundation0 Desktop]$ rht-vmctl poweroff desktop###强行关闭
[kiosk@foundation0 Desktop]$ rht-vmctl reset desktop###重置虚拟机
[kiosk@foundation0 Desktop]$ rht-vmctl fullreset desktop####完全重置
2.设置语言语系
system tools -->settings-->region language
3.设置命令快捷键
system tools -->settings-->keyboard-->shortcus
4.什么是shell
壳层(英语:Shell)在计算机科学中,是指“提供用户使用界面”的软件,通常指的是命令行界面的解析器。一般来说,这个词是指操作系统中,提供访问内核所提供之服务的程序。Shell这个词是来自于操作系统(内核)与用户界面的外层界面。通常将壳层分为两类:命令行与图形界面。命令行壳层提供一个命令行界面(CLI);而图形壳层提供一个图形用户界面(GUI)。
shell是操作系统最外面的一层。操作系统与外部最主要的接口就叫做shell。shell管理你与操作系统之间的交互:等待你输入,向操作系统解释你的输入,并且处理各种各样的操作系统的输出结果。
5 命令
对计算机程序编程时所下达的编程指令。
5.1命令提示符
[kiosk@foundation0 Desktop]$
kioks ##开启shell的用户
@ ##分隔符
foundation0 ##主机的短名称,表示shell开启在那台主机里 hostname主机名查询
Desktop ##表示你在系统的什么位置
$ ##身份提示符中的普通用户,超级用户的提示符为:#
5.2.在shell中如何使用命令
5.2.1 命令一定要在提示符之后输入
5.2.2 命令的输入方式
命令 参数 目标
参数是命令功能的指定
-参数 # 单词的缩写
--参数 # 单词的全拼
5.2.3命令行中的开启设置
gnome-control-center #开启设置
gnome-terminal #开启终端
6.切换用户
[kiosk@foundation0 Desktop]$ su - 系统中已经存在用户名字 ####切换用户身份
ctrl+d 退出
7.虚拟控制台
ctrl+alt+f2-f6 ####进入虚拟控制台
ctrl+alt+F1|F7 ####回到图形
8.系统启动级别:
init
0 系统停止
1 单用户系统,不需要登陆
2 多用户系统但不支持NFS,命令行模式登陆
3 完整多用户模式,命令行模式登陆
4 未用
5 X11图形模式,图形模式登陆
6 重新启动系统
这些可以在/etc/initab文件中可以看到0-6级的注释,代码段如下:
# Default runlevel. The runlevels used by RHS are:
# 0 - halt (Do NOT set initdefault to this)
# 1 - Single user mode
# 2 - Multiuser, without NFS (The same as 3, if you do not have networking)
# 3 - Full multiuser mode
# 4 - unused
# 5 - X11
# 6 - reboot (Do NOT set initdefault to this)
1.级别 0
系统停止。注意不要把该级别设置为默认模式,否则系统每次启动以后就会自动停止,无法进入。
这个运行级别主要用于关闭任务,在 rc0.d 目录下的各个连接命令都是此级别的命令。在关闭时,这些命令逐个执行。它们将杀掉所有进程、关闭虚拟内存和交换文件、卸载文件系统和交换分区。
关机操作在 DOS 下和 Linux 下截然不同。在 DOS 提示符下,可以很放心地直接关闭电源。但是,在 Linux 下不能这么做。Linux 的文件系统在启动时被装入,在关闭时要被卸载。这种差别正是 Linux 强大功能的前提。
在 Linux 下,要通过输入命令 shutdown 加上参数来关闭、重启计算机或者通过按下热键“Ctrl”+“Alt”+“Del”来重新启动。
2.级别 1
单用户模式。该模式只能许可一个用户从本地计算机上登录 rc1.d 目录下的所有文件与此运行级别相连。此运行级别一般用于系统管理与维护,如:给 Linux 系统升级,安装新软件等等。
在此模式下,只能由管理员进入而其他用户无法登录。因为在启动时,文件系统被加载但是网络却没有被加载,无法通过网络登录。
3.级别 2
多用户模式。用户可以通过网络进行登录。在不支持网络的情况下该模式和模式 3 是相的,rc2.d 目录下所有文件与此级别相连。
4.级别 3
完全多用户模式。这是缺省的运行模式,在此模式下所有网络服务程序一起运行。rc3.d录下的文件与此级别相连。
5.级别 4
未使用模式,rc4.d 目录与此级别相连。这一级别是用户自定义的运行级别,用户可以根需要自己定义。如果想运行此级别的话,必须在 rc3.d 目录下放入连接文件,就像其他 rc*.d目录下的文件,并指明是启动还是终止进程。
6.级别 5
在 Linux 下运行 X Window 就是使用这一级别。在此级别下除了因特网的域名服务器的named 与级别 3 不同,其余的都相同。
7.级别 6
这是个重新启动系统的运行级别。rc6.d 目录与此级别相连。既然是重新启动也就是关闭当前系统,但不关闭电源,所以此目录下的连接与级别为 0 的在 rc0.d 下的连接基本相同。不同之处在于,虽然它们都执行 halt(关闭)命令,但是给 halt 传递的参数不一样,因而级别 6 能够重新启动系统
12.date命令
date 月月天天小时分钟.秒秒 ##更改时间
date [MMDDhhmm[[CC]YY][.ss]]
+%H hour (00..23)
+%I hour (01..12)
+%m month (01..12)
+%M minute (00..59)
[kiosk@foundation6 Desktop]$ date -d +83day
Fri Jun 17 14:48:47 CST 2016
[kiosk@foundation6 Desktop]$
13.passwd命令
passwd username ###更改用户密码(只有超级用户root可以)
passwd ####普通用户修改自己的密码
普通用户只能修改自己的密码,并且必须知道自己原始密码,修改密码必须大于8位,不能与原始密码字符重复
passwd -l username ###冻结普通用户
passwd -u username ###解锁冻结帐号
-d username ###清除密码
-x username ###maximum password lifetime (root only)
-n username ###minimum password lifetime (root only)
-w username ###number of days warning users receives before
###password expiration (root only)
14.tab键
补齐系统中存在的文件名称,命令,和命令参数
Tab completion
"<TAB>" can automatic completion of
command ,file name and some
15.文件管理
touch ###创建文件
cat文件名称 ###查看文件所有内容到文件的最后
less文件名称 ###查看文件所有内容从文件的开始,按Q退出
head -数字文件名称 ###文件内容前多少
tail -数字文件名称 ###文件内容后多少
16.历史调用
!数字 ###执行第多少条命令
!关键字 ###执行最近一条以关键字开头的命令
ctrl+R+关键字 ###调出最近一条含有关键字的命令
上下键 ###从最后一条命令开始向前查看或者向后查看
history ###查看历史
17.file查看文件类型
file ###查看文件类型
18.wc命令
wc 统计文本内容行,单词数,字节大小
-l ###行数
-c ###字节数
-m ###字符数
-w ###单词数
-L ###显示最长行的长度
19.watch命令
watch [options] command
The watch program executes a given command at regular inter-vals; the default is every two seconds. The command is passed to the shell (so be sure to quote or escape any special characters), and the results are displayed in a full-screen mode, so you can observe the output conveniently and see what has changed. For example,
每隔一段时间重复运行一个命令,默认间隔时间是2秒。要运行的命令直接传给shell(注意引用和转义特殊字符)。结果会展示为全屏模式,这样你可以很方便的观察改变。例如:
watch -n 60 date
executes the date command once a minute, sort of a poor man’s clock. Type ^C to exit.
执行date命令每分钟一次,输入^C 退出。
watch -n 1 date ##监控date命令每秒钟执行一次
20.开关机,登陆
关机
poweroff|init 0|shutdown -h now
重启
reboot| init 6 |shutdown -r now
登陆
login
for gui
for text
21 --help帮助
21.1命令--help
【内容】###内容选加
<内容>###内容必加
内容...###内容个数任意
21.2 whatis
22.快捷键
22.1 ctrl
+ a 光标移动到行首
+ e 光标移动到行尾
+ u光标所在位置删除到行首
+ k光标所在位置删除到行尾
+ r调出最近一条含有关键字的命令
+ 左|右光标移动以单词为单位
+ c撤销以输入的命令
+ d关闭当前环境
22.2 ctrl +c 撤销未执行的命令
ctrl +d 结束终端
22.3 ctrl+alt+上|下 切换工作界面
ctrl+alt+L 锁屏
22.4 gnome-control-center 开启设置
gnome-terminal 开启终端
二 .linux入门
一linux系统结构
1. linux系统结构是倒树型
2.系统挂载相关
Liunx采用树形的文件管理系统,也就是在Linux系统中,可以说已经没有分区的概念了。分区在Linux和其他设备一样都只是一个文件。要使用一个分区必须把它加载到文件系统中。这可能难于理解,继续往下看。
Linux中树形的文件结构,最顶层是/ 目录。在安装系统时,你必须选择把一个主分区挂载在/ 目录下,因为系统需要安装在/挂载的主分区下。否则系统会提示你。这里又一次提到了挂载。所以挂载就是把目录和分区连接起来,和上面说的WINDOWS下的映射关系是一样的。不同的是WINDOWS是把分区映射到一个盘符,而LINUX下是映射到一个目录。 这是理解他们不同最重要的地方,而导致不同的是因为文件系统结构不同。
上面说了Linux的文件系统是树形的,安装的系统必须是在/ 目录下,因为/目录下挂载了一个主分区。/目录是树形的根,其他所有目录都是他的子节点。 我们安装系统的时候已经把分区1挂载到 / 目录下了. 而这个时候没有挂载其他任何分区,所以/ 目录下的所有其他目录都在这个分区下,也就是说,我在任何目录下读写操作实际都是操作的这个1号分区。如果我们想使用其他分区,就必须把这个分区挂载到一个目录下,这个目录可以是已经存在的目录,比如/home,也可以是我们自己建立的目录,比如/oracle。当然有些目录比如/lib, /dev, /etc, /usr这些都不能挂载其他分区,因为他们都存放着系统需要的文件,一旦被挂载其他分区,那没OS就无法找到所需的文件,系统就会崩溃。比如我们把分区2挂载到/usr/X11目录下时,系统就无法通过X11目录找到分区1上的文件,这个时候系统图形界面就无法使用了. 虽然文件还在硬盘上。前面说过,目录 --- 分区 是通过挂载吧他们联系起来。你更换了分区,也就破坏了联系,就无法在找到之前的文件了。我们在看分区5和分区6,我们把它挂载到/home/ftp 和 /oracle目录下,这个时候我们在操作这2个目录是,就是操作对用的分区了.
而WINDOWS就没这么复杂,她不是采用树形的结构,每个分区对应一个盘符,一旦建立映射关系就无法在修改。实际上,LINUX的每个挂载了分区的目录就相当于WINDOWS系统中的盘符,比如上面的,/home/ftp 和 /oracle目录我们就可以把她看做一个盘符和一个分区关联,只是因为LINUX文件系统,使得她更加灵活,所以也更复杂和难以理解。
df 命令可以查看分区挂载情况, fdisk 命令可以查看系统分区情况。
LINUX下所有设备都被认为是文件,而/dev目录存放所有系统设备文件的,而一个分区就是一个文件,名字就是分区的名字.
2.1、通过mount挂载文件 来挂载磁盘分区(或存储设备)
mount挂载文件 [-t 文件系统 ] [-o 选项] 设备 目录
-t 通过这个参数,我们来指定文件系统的类型,一般的情况下不必指定有时也能识别
-o 这个选项,主要选项有权限、用户、磁盘限额、语言编码等
设备 指存储设备,比如/dev/hda1, /dev/sda1 ,cdrom 等...至于您的系统中有哪些存储设备,主要通过 fdisk -l 或者查看 /etc/fstab 或 dmesg ;一般的情况下光驱设备是/dev/cdrom ;软驱设备是/dev/fd0 ;硬盘及移动硬盘以 fdisk -l 的输出为准;
2.1.1)对光驱和软驱的挂载;
我们先建一个目录,然后执行Linux mount挂载文件 命令,这样cdrom 就挂在 /mnt/cdrom 中了;我们就可以在/mnt/cdrom 中查看光盘中资料和文件;这个目录您想怎么建就怎么建。用什么目录不是最重要的。重要的是您知道自己在做什么就行了。比如我们也可以把这个目录建成 dvdrom ;然后用 Linux mount挂载文件 /dev/cdrom /mnt/dvdrom 来挂载;
2.1.2)挂载硬盘和移动硬盘的文件系统;
一个分区只有创建了文件系统后才能使用,前面我们说过了,我们在Linux大多用的是ext2 、ext3、reiserfs、fat32、msdos 、ntfs等;
[1]挂载Linux文件系统;
首先我们得建一个文件系统挂载的目录;我们前面已经提到了;一个有文件系统的分区要挂到系统中,必须要有一个挂载点;这个挂载点就是一个目录;比如我们通过fdisk -l 得知hda5 是Linux分区,并且创建了文件系统,比如是reiserfs 文件系统吧;
步骤:
先创建一个挂载目录;比如/mnt/hda5
设置/mnt/hda5的权限为任何用户可写可读可执行;这样所有的用户都能在写入;
通过-t reiserfs 来指定/dev/hda5是reiserfs 文件系统, 并且挂载到/mnt/hda5目录;
假如我们不知道hda5上reiserfs 文件系统,我们可以用 -t auto 让系统定夺,然后挂载到/mnt/hda5
不加任何参数,直接 Linux mount挂载文件 /dev/hda5 到/mnt/hda5;系统自动判断分区文件系统;
通过df -lh 来查看是不是被挂载了;
3.linux根目录
/bin ##二进制可执行文件也就是系统命令
/sbin ##系统管理命令存放位置
/boot ##启动分区,负责系统启动
/dev ##设备管理文件
/etc ##大多数系统管理文件
/home ##普通用户的家目录
/lib ##32位系统库文件存放位置
/lib64 ##64位系统库文件存放位置
/media ##系统临时设备挂载点
/mnt ##系统临时设备挂载点
/run ##系统临时设备挂载点
/opt ##第三方软件安装位置
/proc ##系统信息
/root ##超级用户家目录
/srv,/var ##系统数据
/sys ##系统管理,主要是关于内核的
/tmp ##系统临时文件存放位置
/usr ##系统用户相关信息数据及用户自定义软件存放位置
4.系统文件路径
4.1绝对路径
文件在系统的真实位置,文件名字以“/”开头
4.2相对路径
文件相对与当前所在位置的一个名字的简写,这个名字不会以/开头,而且名字会自动添加pwd显示的值
5.命令
5.1 pwd ##显示但前在系统的位置 print work directory
5.2 cd ##chage directory ##进入目标目录中
5.3 ls ##list列出目标文件,或者列出目录中的内容
-a ##列出所有
-l ##列出文件属性
-s ##列出文件大小
-R ##第归列出
-d ##指定目录本身
5.4 stat file 查看
5.5 touch ##新建文件,修改时间:
-a change only the access time
-m change only the modification time
-t STAMP use [[CC]YY]MMDDhhmm[.ss]
5.5 rm -f #强制删除文件
rm -fr #强制删除目录
5.6 cp 被复制文件 目的地
-r ##第归复制,用与复制目录
5.7 移动: 相同磁盘移动只是重命名
不同磁盘间是数据的备份重建
mv 被移动文件 目的地
mv 老名字 新名字
mv test/file . ##把test/file移动到当前
5.8 mkdir
make directory ##建立目录
-p ##第归建立目录
5.9
. 当前目录
~+ 当前目录
.. 上级目录
~- 之前目录
~ 用户家目录
~username 进入到指定用户家目录