C++笔记day13-Linux

130 阅读14分钟

Linux内核版本

内核(kernel)是系统的心脏,是运行程序和管理像磁盘和打印机等硬件设备的核心程序,它提供了一个在裸设备与应用程序间的抽象层。

Linux内核版本又分为稳定版和开发版,两种版本是相互关联,相互循环:

l  稳定版:具有工业级强度,可以广泛地应用和部署。新的稳定版相对于较旧的只是修正一些bug或加入一些新的驱动程序。

2  开发版:由于要试验各种解决方案,所以变化很快。 内核源码网址:www.kernel.org,所有来自全世界的对Linux源码的修改最终都会汇总到这个网站,由Linus领导的开源社区对其进行甄别和修改最终决定是否进入到Linux主线内核源码中。

Unix/Linux开发应用领域介绍

Unix/Linux服务器

是目前Unix/Linux应用最多的一个领域,可以提供Web、FTP、Gopher、SMTP/POP3、Proxy/Cache、DNS等服务器,支持服务器集群,支持虚拟主机、虚拟服务、VPN等。

嵌入式Linux系统

嵌入式Linux是将流行的Linux操作系统进行剪裁修改,能够在嵌入式计算机系统上运行的一种操作系统。Linux嵌入式系统能够支持多种CPU和硬件平台,性能稳定,剪裁性好,开发和使用容易。其中包括Embedix、uCLinux、muLinux等。

桌面应用

近年来,Linux系统特别强调在桌面应用方面的改进,并且已达到相当的水平,完全可以作为一种集办公应用、多媒体应用、网络应用等多方面功能于一体的图形界面操作系统,在办公应用方面,Unix/Linux集成了openOffice、SUN公司的StarOffice以及KOffice等工具。

电子政务

随着Linux的快速发展,Linux已逐渐成为Windows系统重要的竞争力量。尤其是Linux在安全性方面的独特优势,又使得Linux在政府应用领域得到很大的发展。目前一些国家正将其电子政务系统向Linux平台迁移。中国政府也对Linux给予极大的支持。

文件系统

目录和路径

目录

  1. 目录是一组相关文件的集合。
  2. 一个目录下面除了可以存放文件之外还可以存放其他目录,即可包含子目录。
  3. 在确定文件、目录位置时,DOS和Unix/Linux都采用“路径名+文件名”的方式。路径反映的是目录与目录之间的关系。

路径

Unix/Linux路径由到达定位文件的目录组成。在Unix/Linux系统中组成路径的目录分割符为斜杠“/”,而DOS则用反斜杠“\”来分割各个目录。

  路径分为绝对路径和相对路径:

  1. 绝对路径 1)  绝对路径是从目录树的树根“/”目录开始往下直至到达文件所经过的所有节点目录。

2)  下级目录接在上级目录后面用“/”隔开。

3)  注意:绝对路径都是从“/”开始的,所以第一个字符一定是“/”。

  1. 相对路径

1)  相对路径是指目标目录相对于当前目录的位置。

2)  如果不在当前目录下,则需要使用两个特殊目录“.”和“”了。目录“.”指向当前目录,而目录“..”。

文件系统

Windows和Linux文件系统区别

在 windows 平台下,打开“计算机”,我们看到的是一个个的驱动器盘符:每个驱动器都有自己的根目录结构,这样形成了多个树并列的情形。在 Linux 下,我们是看不到这些驱动器盘符,我们看到的是文件夹(目录)。

在早期的 UNIX 系统中,各个厂家各自定义了自己的 UNIX 系统文件目录,比较混乱。Linux 面世不久后,对文件目录进行了标准化,于1994年对根文件目录做了统一的规范,推出 FHS ( Filesystem Hierarchy Standard ) 的 Linux 文件系统层次结构标准。FHS 标准规定了 Linux 根目录各文件夹的名称及作用,统一了Linux界命名混乱的局面。

和Windows操作系统类似,所有Unix/Linux的数据都是由文件系统按照树型目录结构管理的。而且Unix/Linux操作系统同样要区分文件的类型,判断文件的存取属性和可执行属性。

Unix/Linux也采用了树状结构的文件系统,它由目录和目录下的文件一起构成。但Unix/Linux文件系统不使用驱动器这个概念,而是使用单一的根目录结构,所有的分区都挂载到单一的“/”目录上,其结构示意图如图所示:

无论何种版本的 Linux 发行版,桌面、应用是 Linux 的外衣,文件组织、目录结构才是Linux的内心。

image.png

Linux目录结构

/ 根目录,一般根目录下只存放目录,在Linux下有且只有一个根目录。所有的东西都是从这里开始。当你在终端里输入“/home”,你其实是在告诉电脑,先从/(根目录)开始,再进入到home目录。

/bin : /usr/bin : 可执行二进制文件的目录,如常用的命令ls、tar、mv、cat等。

/boot 放置linux系统启动时用到的一些文件,如Linux的内核文件:/boot/vmlinuz,系统引导管理器:/boot/grub。

/dev 存放linux系统下的设备文件,访问该目录下某个文件,相当于访问某个设备,常用的是挂载光驱 mount /dev/cdrom /mnt。

/etc:系统配置文件存放的目录,不建议在此目录下存放可执行文件,重要的配置文件有 /etc/inittab、/etc/fstab、/etc/init.d、/etc/X11、/etc/sysconfig、/etc/xinetd.d。

/home 系统默认的用户家目录,新增用户账号时,用户的家目录都存放在此目录下,~表示当前用户的家目录,~edu 表示用户 edu 的家目录。

/lib : /usr/lib : /usr/local/lib 系统使用的函数库的目录,程序在执行过程中,需要调用一些额外的参数时需要函数库的协助。

/lost+fount 系统异常产生错误时,会将一些遗失的片段放置于此目录下。

/mnt : /media 光盘默认挂载点,通常光盘挂载于 /mnt/cdrom 下,也不一定,可以选择任意位置进行挂载。

/opt 给主机额外安装软件所摆放的目录。

/proc:此目录的数据都在内存中,如系统核心,外部设备,网络状态,由于数据都存放于内存中,所以不占用磁盘空间,比较重要的目录有 /proc/cpuinfo、/proc/interrupts、/proc/dma、/proc/ioports、/proc/net/* 等。

/root 系统管理员root的家目录(宿主目录)。

/sbin : /usr/sbin : /usr/local/sbin 放置系统管理员使用的可执行命令,如fdisk、shutdown、mount 等。与 /bin 不同的是,这几个目录是给系统管理员 root使用的命令,一般用户只能"查看"而不能设置和使用。

/tmp 一般用户或正在执行的程序临时存放文件的目录,任何人都可以访问,重要数据不可放置在此目录下。

/srv 服务启动之后需要访问的数据目录,如 www 服务需要访问的网页数据存放在 /srv/www 内。

/usr:应用程序存放目录,/usr/bin 存放应用程序,/usr/share 存放共享数据,/usr/lib 存放不能直接运行的,却是许多程序运行所必需的一些函数库文件。/usr/local: 存放软件升级包。/usr/share/doc: 系统说明文件存放目录。/usr/share/man:  程序说明文件存放目录。/usr/include存放头文件。

/var 放置系统执行过程中经常变化的文件,如随时更改的日志文件 /var/log,/var/log/message:所有的登录文件存放目录,/var/spool/mail:邮件存放的目录,/var/run:程序或服务启动后,其PID存放在该目录下。

Linux中一切皆文件

一切皆文件

Unix/Linux对数据文件(--.mp3、--.bmp),程序文件( --.c、--.h、--.o),设备文件(LCD、触摸屏、鼠标),网络文件( socket ) 等的管理都抽象为文件,使用统一的方式方法管理。

在Unix/Linux操作系统中也必须区分文件类型,通过文件类型可以判断文件属于可执行文件、文本文件还是数据文件。在Unix/Linux系统中文件可以没有扩展名。

文件分类

通常,Unix/Linux系统中常用的文件类型有7种:普通文件-、目录文件d、套接字文件s、管道文件p和软链接文件l、字符设备文件c、块设备文件b。

Linux不以后缀名作为区分文件的依据。

普通文件

普通文件是计算机操作系统用于存放数据、程序等信息的文件,一般都长期存放于外存储器(磁盘、磁带等)中。普通文件一般包括文本文件、数据文件、可执行的二进制程序文件等。

在Unix/Linux中可以通过file命令来查看文件的类型。如果file文件后面携带文件名,则查看指定文件的类型,如果携带通配符“ *”,则可以查看当前目录下的所有文件的类型。

目录文件

Unix/Linux系统把目录看成是一种特殊的文件,利用它构成文件系统的树型结构。   目录文件只允许系统管理员对其进行修改,用户进程可以读取目录文件,但不能对它们进行修改。

每个目录文件至少包括两个条目,“..”表示上一级目录,“.”表示该目录本身。

ls -l 命令(长信息)-a(查看隐藏文件)

查看目录下文件的所有信息: 第1块 表示文件的属性信息:包含文件类型和文件访问权限;

第一个字符表示文件类型
后面字符每3个一组分3组:
    第一组代表文件所有者的读写执行权限,
    第二组代表文件所属组的读写执行权限,
    第三组表示其他人的读写执行权限。

第2块 表示文件的硬链接计数; 第3块 表示文件的所有者 第4块 表示文件的所属组 第5块 表示文件所占用的空间大小 第6块 表示文件创建或最后修改时间 第7块 表示文件名 image.png

Linux命令

Linux命令格式

image.png

帮助手册

help命令

一般是 Linux 命令自带的帮助信息,并不是所有命令都自带这个选项。

如我们想查看命令 ls 的用法:ls --help

image.png

man(有问题找男人)

man 是 Linux 提供的一个手册,包含了绝大部分的命令、函数使用说明。

该手册分成很多章节(section),使用 man 时可以指定不同的章节来浏览不同的内容。

man 中各个 section 意义如下:

1.Standard commands(标准命令)

2.System calls(系统调用,如open,write)

3.Library functions(库函数,如printf,fopen)

4.Special devices(设备文件的说明,/dev下各种设备)

5.File formats(文件格式,如passwd)

6.Games and toys(游戏和娱乐)

7.Miscellaneous(杂项、惯例与协定等,例如Linux档案系统、网络协定、ASCII 码;environ全局变量)

8.Administrative Commands(管理员命令,如ifconfig)

image.png

image.png

image.png

使用技巧

1. 自动补全

在敲出命令的前几个字母的同时,按下tab键,系统会自动帮我们补全命令。

2.热键

Ctrl+p和Ctrl+n 相对本条命令的上一条和下一条历史命令,用上下方向键也可以 Ctrl+u 清空命令 Ctrl+l清屏 Ctrl+a和Ctrl+e 把光标回到最前,把光标回到最后

3. 通配符

*代表1~n个任意字符;?代表一个任意字符。

常用命令

输出重定向命令:>

Linux允许将命令执行结果重定向到一个文件,本应显示在终端上的内容保存到指定文件中。

如:ls > test.txt ( test.txt 如果不存在,则创建,存在则覆盖其内容 )。 > 输出重定向会覆盖原来的内容, >> 输出重定向则会追加到文件的尾部。

image.png

分屏显示:more

查看内容时,在信息过长无法在一屏上显示时,会出现快速滚屏,使得用户无法看清文件的内容,此时可以使用more命令,每次只显示一页,按下空格键可以显示下一页,按下q键退出显示,按下h键可以获取帮助。

切换工作目录: cd

在使用Unix/Linux的时候,经常需要更换工作目录。cd命令可以帮助用户切换工作目录。Linux所有的目录和文件名大小写敏感。

cd后面可跟绝对路径,也可以跟相对路径。如果省略目录,则默认切换到当前用户的主目录。 image.png 注意: 如果路径是从根路径开始的,则路径的前面需要加上 “ / ”,如 “ /mnt ”,通常进入某个目录里的文件夹,前面不用加  “ / ”。 image.png

显示当前路径:pwd

使用pwd命令可以显示当前的工作目录,该命令很简单,直接输入pwd即可,后面不带参数。

创建目录:mkdir

通过mkdir命令可以创建一个新的目录。参数-p可递归创建目录。

需要注意的是新建目录的名称不能与当前目录中已有的目录或文件同名,并且目录创建者必须对当前目录具有写权限。

删除文件:rm

可通过rm删除文件或目录。使用rm命令要小心,因为文件删除后不能恢复。为了防止文件误删,可以在rm后使用-i参数以逐个确认要删除的文件。使用参数-r 可以删目录。  

常用参数及含义如下表所示: image.png

查看或者合并文件内容:cat

cat如果要合并需要重定向 image.png

拷贝文件:cp 拷贝目录需要加参数 -r 或-a(保留文件原有参数)

cp命令的功能是将给出的文件或目录复制到另一个文件或目录中,相当于DOS下的copy命令。

image.png

移动文件:mv

用户可以使用mv命令来移动文件或目录,也可以给文件或目录重命名。

常用选项说明: image.png

获取文件类型:file

Linux系统文件类型不是根据文件扩展名分类的,通过file命令可以确认文件具体类型。 image.png

归档管理:tar

tar zcvf xxx.tar.gz yyy1 yyy2 yyy3 计算机中的数据经常需要备份,tar是Unix/Linux中最常用的备份工具,此命令可以把一系列文件归档到一个大文件中,也可以把档案文件解开以恢复数据。

tar使用格式 image.png image.png

文件压缩解压:gzip

  1. tar与gzip命令结合使用实现文件打包、压缩。

  2. tar只负责打包文件,但不压缩,用gzip压缩tar打包后的文件,其扩展名一般用xxxx.tar.gz。

gzip使用格式如下: image.png 压缩用法: tar czvf 压缩包包名 文件1 文件2 ... image.png 解压用法: tar zxvf 压缩包包名 image.png

文档压缩解压:bzip2

  1. tar与bzip2命令结合使用实现文件打包、压缩(用法和gzip一样)。

  2. tar只负责打包文件,但不压缩,用bzip2压缩tar打包后的文件,其扩展名一般用xxxx.tar.bz2。

  3. 在tar命令中增加一个选项(-j)可以调用bzip2实现了一个压缩的功能,实行一个先打包后压缩的过程。

  4. 压缩用法:tar cjvf 压缩包包名 文件...(tar jcvf bk.tar.bz2 *.c)

  5. 解压用法:tar xjvf 压缩包包名 (tar jxvf bk.tar.bz2)

查看命令位置:which

image.png

用户权限和管理

切换用户 su su-

更改密码 passwd

修改文件权限:chmod

chmod 修改文件权限有两种使用格式:字母法与数字法。 image.png

系统管理常用命令

显示所有进程:ps aux

管道过滤: ps aux | grep XXX

image.png

终止进程:kill

image.png

关机重启

image.png

切换图形界面

image.png

查看或配置网卡信息:ifconfig

image.png

image.png

测试远程主机连通性:ping

image.png

vi/vim编辑器

vim 3 种工作模式:

命令模式:

	使用所有输入都被vim当成命令看。

	iaos -- IAOS

文本模式(编辑模式):

	在该模式下编辑代码。

末行模式:

	“:” 切换为末行模式。 

	w:保存。 q:退出。

vim基本使用.png

vim常用操作:gg=D 可以自动排版代码

image.png

image.png

image.png

远程操作

远程登录

Linux平台相互远程 ssh username@ipaddress

操作命令:ssh -l username hostip image.png 退出用exit命令

Windows与Linux文件互传

需要使用软件:Xshell或secureCRT 可以用UltraEdit传输文件 image.png image.png image.png