1. linux 简介
什么是linux?
Linux是一个多任务、多用户的 操作系统
多任务:某一时刻,可以同时执行多个任务
多用户:多个用户 普通用户 + 超级用户(管理员)
------------------------------------------------------------------------------------------------------------------------------
1.1 linux发展历史
美国贝尔实验室 + 通用电气AT&T + 麻省理工学院(大型的多任务多用户的系统)
(肯·汤姆逊): 星际旅行 Unix(多用户、多任务的系统)
(Unix花钱 + 闭源)
(Linux免费+开源)
C -- 丹尼斯·里奇
Unix(肯·汤姆逊) ----> Minix(塔能·鲍姆) ----> Linux(林纳斯·托瓦兹)
www.kernel.org
---------------------------------------------------------------------------------------------------------------------------
1.2 linux和unix区别和联系
(1)时间
Unix系统时间 早于 Linux
Linux的思想源于Unix
(2)金钱
Unix 花钱闭源
Linux 开源免费
------------------------------------------------------------------------------------------------------------------------------
1.3 GNU和GPL
1.3.1 GNU
(1)什么是GNU?
理查德·斯托曼
GNU //自由软件联盟
GNU is Not Unix
(2)GNU宗旨:
提供开源免费的软件供大家使用
---------------------------------------------------------------------------------------------------------------------------------
1.3.2 GPL
(1)什么是GPL?
general public license
注册版权协议
---------------------------------------------------------------------------------------------------------------------------------
1.4 linux 内核版本号和版本
1.4.1 内核版本号
(1)查看内核版本号
uname -a
Linux ubuntu 3.2.0-29-generic-pae #46-Ubuntu SMP Fri Jul 27 17:25:43 UTC 2012 i686 i686 i386 GNU/Linux
(2)内核版本号组成
3.2.0
3 //主版本号,有重大更新的时候,才会更新主版本号
2 //次版本号 偶数:稳定版本 奇数:测试版本
0 //末版本号
(3)下载内核(kernel)
www.kernel.org
---------------------------------------------------------------------------------------------------------------------------------
1.4.2 Linux发行版本
ubuntu
Suse
redhat
Debian
红旗
所有的用的都是Linux内核,所以统称为 Linux系统
---------------------------------------------------------------------------------------------------------------------------------
2. linux 使用(一切皆文件)
Linux系统里面一切皆文件
(1)终端作用
可以在终端输入命令,实现与系统的交互
(2)开启新的终端
ctrl + alt + t //开启一个新的终端
ctrl + shift + t //开启一个新的终端
ctrl + shift + n //开启一个新的终端
ls 命令
ls //查看目录文件的列表 (看看这个文件夹子里面有啥完扔)
ls Pictures/ //查看当前目录下的Pictures
//蓝色:目录文件
//白色: 普通的文本文件
//绿色:可执行的二进制文件
cd 命令
##功能: 进入目录文件
cd 你要进入的目录文件的名字
cd Pictures //进入到当前目录下的Pictures目录文件
cd .. //返回上一级目录
pwd //命令,打印当前所在位置的绝对路径
指南针:在Linux里面迷路了,敲pwd,看看自己在那儿
-----------------------------------------------------------------------------------------------------------------------
2.2 目录
2.2.1 目录结构
(1)Linux系统下一切皆文件
(2)Linux文件系统犹如一颗倒置的树
/ //根目录
home //普通用户的家目录 home目录下,会有与普通用户同名的目录文件作为该用户的工作目录
root //root 超级用户,管理员
bin //存放常用命令(命令就是可执行的程序 同a.out)
dev //device 设备文件
etc //配置文件
lib //library 库文件
mnt //可移动的U盘 挂载服务
media //可移动光盘 挂载
boot //开机启动引导程序
proc //存放内核相关信息
opt //第三方软件安装的默认路径
var //存放的是经常变化的文件 系统日志
usr //存放的是不经常变化的文件 头文件 stdio.h 壁纸
bin cdrom etc initrd.img lost+found mnt proc run selinux sys usr vmlinuz
boot dev home lib media opt root sbin srv tmp var
---------------------------------------------------------------------------------------------------------------------------------
2.2.2 相对路径和绝对路径
相对路径:相对于当前目录
cd Pictures //相对路径方式进入
绝对路径:以根为起点的路径 //绝对路径在任何情况下都好用
cd /home/linux/Pictures/
相对和绝对路径哪个是万能的???
绝对路径是万能的
相对路径简单
---------------------------------------------------------------------------------------------------------------------------------
2.3 命令
2.3.1 linux快捷键:
(1)上下键:
调用历史命令
(2)tab键
自动联想补全已经存在的文件或目录的名字
(3)清屏
clear //命令
ctrl + l
---------------------------------------------------------------------------------------------------------------------------------
2.3.2 cd 命令
/home/linux/Pictures //第一个 /代表根目录 后面的两个/代表路径间的分隔符
cd .. //返回上一级
cd ~ //返回当前用户的工作目录
cd . // 语句 无意义 . //当前目录下的意思'
cd Pictures // cd ./Pictures
cd ../.. //返回上一级的上一级
cd - //反回上一次访问的目录,并打印当前位置的绝对路径
---------------------------------------------------------------------------------------------------------------------------------
2.3.3 pwd命令
#功能:防止迷路 打印当前所处位置的绝对路径
---------------------------------------------------------------------------------------------------------------------------------
2.3.4 man 命令
###查看函数或命令的帮助文档
man ls //查看ls命令的帮助文档
//当命令和函数的名字出现同名的时候,需要区分类别
man 1 ls //查看ls命令的帮助文档 1 类别 是命令
man 2 _exit //查看_exit函数的帮助文档 2类别 是系统调用
man 3 printf // 查看printf函数帮助文档 3 类别 库函数
man strcpy //查看strcpy函数的帮助文档,不需要加3,是因为没有同名的命令
---------------------------------------------------------------------------------------------------------------------------------
2.3.5 touch 命令
#功能:创建一个普通的文本文件
touch 文件的名字
touch 路径修饰(相对路径或绝对路径)/文件的名字
linux@ubuntu:~$ touch haha.c //在当前目录下创建haha.c
linux@ubuntu:~$ touch Pictures/xixi.c //在当前目录下的Pictures下创建xixi.c
linux@ubuntu:~$ touch /home/linux/Pictures/hehe.c //绝对路径的方式,在Pictures下创建hehe.c
//如何删除文件
rm // remove 的缩写
rm 文件的名字
rm 路径修饰(相对路径或绝对路径)/文件的名字
linux@ubuntu:~$ rm haha.c //删除当前目录下的haha.c
linux@ubuntu:~$ rm Pictures/xixi.c //删除当前目录下的Picture是目录下的xixi.c
linux@ubuntu:~$ rm /home/linux/Pictures/hehe.c //用绝对路径的方式,删除Pictures下的hehe.c
---------------------------------------------------------------------------------------------------------------------------------
2.3.6 mv 命令
mv ---- move缩写
#功能 剪切和重命名的功能
mv 源 目的
改名功能
mv test.c wuwu.c //将test.c 改名为 wuwu.c
剪切功能
mv wuwu.c Pictures //将当前目录下的wuwu.c 剪切到当前目录下的Pictures目录下
mv Pictures/wuwu.c ./ //将当前目录下的Pictures目录下的wuwu.c 剪切到当前目录下
剪切并改名
mv wuwu.c Pictures/heihei.c //将当前目录下的wuwu.c,剪切到当前目录下的Pictures目录下并改名为heihei.c
---------------------------------------------------------------------------------------------------------------------------------
2.3.7 mkdir 命令
mkdir ---> make directory
#功能:创建一个目录文件
//你怎么用touch命令,就怎么用mkdir命令
#功能:创建一个普通的文本文件
mkdir 目录文件的名字
mkdir 路径修饰(相对路径或绝对路径)/目录文件的名字
linux@ubuntu:~$ mkdir haha //在当前目录下创建haha目录文件
linux@ubuntu:~$ mkdir Pictures/xixi //在当前目录下的Pictures下创建xixi目录文件
linux@ubuntu:~$ mkdir /home/linux/Pictures/hehe //绝对路径的方式,在Pictures下创建hehe目录文件
#注意点:删除目录文件,需要加-r参数
linux@ubuntu:~$ rm -r haha //删除当前目录下haha目录文件
linux@ubuntu:~$ rm -r Pictures/xixi //删除当前目录下的Pictures目录下的xixi目录文件
linux@ubuntu:~$ rm -r /home/linux/Pictures/hehe //绝对路径的方式删除Pcitures目录下的hehe目录
-p //参数,用来创建多级目录
mkdir -p a/b/c/d/e //a目录下有b,b目录下有c,c目录下有d,d目录下有e
---------------------------------------------------------------------------------------------------------------------------------
2.3.8 cp 命令
cp //copy 拷贝 可以拷贝普通文件 拷贝目录文件
#注意:拷贝 目录文件需要加-r 参数
cp wuwu.c test.c //复制当前下的wuwu.c一份到当前目录下名字叫test.c
cp wuwu.c Pictures//复制当前下的wuwu.c到当前目录下的Pictures目录下
cp wuwu.c Pcitures/didi.c //复制当前下的wuwu.c到当前目录下的Pictures目录下并命名为didi.c
#注意:拷贝 目录文件需要加-r 参数
cp -r Pictures Public //复制当前目录下的Pcitures目录,到当前目录的Public目录下
---------------------------------------------------------------------------------------------------------------------------------
2.3.9 rm 命令 remove的缩写
删除文件
rm hehe.c
rm -r hehe //删除目录文件需要加-r参数
---------------------------------------------------------------------------------------------------------------------------------
2.3.10 文件查看命令
cp /usr/include/stdio.h ./ //注意 .不能省略不写,代表当前目录
2.3.10.1 cat命令
cat 命令,通常用来查看短小的文件
cat hello.c //查看hello.c的内容
cat -n hello.c //显示文件的内容 带行号
2.3.10.2 more 命令
more stdio.h
回车 //向下走一行
空格 //向下走一页
ctrl + b //向前翻一页
q //退出
2.3.10.3 less 命令
less stdio.h
方向键:向上 和 向下
回车 //向下走一行
空格 //向下走一行
ctrl + b //向前翻一页
//可以查找关键字
/printf 查找printf关键字
n //向下查找关键字
N //向上查找关键字
2.3.10.4 head 命令
#功能:只查看文件的开头部分
head stdio.h //默认值显示 stdio.h文件的前10行
head -5 stdio.h //只显示stdio.h的前5行
head -11 stdio.h //只显示stdio.h的前11行
2.3.10.5 tail 命令
#功能:只查看文件的结尾部分
tail stdio.h //默认值显示 stdio.h文件的最后10行
tail -5 stdio.h //只显示stdio.h的最后5行
tail -11 stdio.h //只显示stdio.h的最后11行
---------------------------------------------------------------------------------------------------------------------------------
2.3.11 grep
#功能: 去文本文件搜索关键字
grep "int" c基础/wuwu.c //去wuwu.c文件中查找int 出现的位置
grep -r "printf" /home/linux //去linux目录的所有子目录中的所有的文本文件中搜索printf关键字
---------------------------------------------------------------------------------------------------------------------------------
2.3.12 ls命令
ls -a // -a all 显示所有文件,包括隐藏文件
Linux系统中以.为开头的是隐藏文件
ls -l //查看所有文件的详细信息
d rwxr-xr-x 2 linux linux 4096 Sep 22 2012 Templates
- rw-rw-r-- 1 linux linux 44 Jul 7 03:48 test.c
(1) 文件的属性
d //目录文件 directory
- //普通文件
c //字符设备文件 char
b //块设备文件 block
l //链接文件 link
s //套接字文件 socket
p //管道文件 pipe
(2) 文件的访问权限
文件所属者 文件的所属组 其它用户
rwx r-x r-x
rw- rw- r--
r //读权限read
w //写权限write
x //可执行权限
- //没有对应的权限
(3)
1 //硬链接数
(4)
文件的所属者 文件的所属组
linux linux
(5) 文件大小
4096
(6) 最后被修改的时间
Sep 22 2012
(7) 文件的名字
test.c
---------------------------------------------------------------------------------------------------------------------------------
#重要
2.3.13 chmod 命令(*****)
#功能:修改文件权限
(1)全部修改(所属者 所属组 其它用户)
chmod +r test.c //给所属者 所属组 其它用户增加读权限
chmod -r test.c //给所属者 所属组 其它用户去掉读权限
w +w -w
x +x -x 同理
(2)逐个增加权限
u user g group o other
chmod u+x test.c //给所属者 增加可执行权限
chmod u-x test.c //给所属者,去掉可执行权限
chmod g+r test.c //给所属组,增加读权限
chmod g-r test.c //给所属组,去掉读权限
chmod o+w test.c //给其它用户,增加写权限
chmod o-w test.c //给其它用户,去掉写权限
//将 x 换成 r和w同理
(3)按位进行修改权限
6 3
110 011
//有权限,用1来表达,没有权限用0表达
rw- rw- r--
110 110 100
6 6 4
5 6 3
101 110 011
r-x rw- -wx
chmod 523 test.c
##将haha.c权限处理成 所属者 有读无写有执行 ,所属组 无读有写有执行
##其他用户:无读无写有执行
r-x -wx --x
101 011 001
5 3 1
chmod 541 haha.c
rm -f haha.c //-f 忽略问题提示,直接删除
---------------------------------------------------------------------------------------------------------------------------------
在华清的学习一天一天过去,学习的内容越来越多,努力坚持下去,会有很大的收获的。加油!!