linux课件完整汇总

第一章 Linux历史与系统安装

Linux是一个开源的操作系统内核,发布与GPL协议,全称是GNU/Linux

Linux参考了Unix的设计思想

重启网络服务: sudo /etc/init.d/networking restart

查看IP地址:ip addr 或ifconfig

重启: reroot

 

第二章 目录结构与磁盘管理

文件系统是操作系统用于在外部存储设备(主要是硬盘)上组织文件的机制。Ubuntu 16.04默认Ext4

Linux没有“盘符”的概念,通过一个整体的目录树来组织文件

目录            说明

/                    系统根目录

/usr               用户的程序,配置等信息

/bin              存放常用命令的目录,和/sbin目录存放系统最核心的命令

/home           主目录,所有用户主目录都会在此目录下,以用户名命名

/sbin              超级用户root才能使用的命令所在目录

/lib                系统动态链接共享库

/boot             root用户的主目录

/etc                系统配置文件以及一些程序的配置文件都在此目录

/dev              外接设备会映射为此目录下的一个文件

/media           把系统自动识别的u盘,光盘等挂载到此目录下

/proc             一个虚拟目录,是系统内存的映射,可以获取系统以及进程的信息

/sys               一个虚拟目录,把硬件设备映射成文件,可以通过文件控制硬件

/lost+found   一般为空,系统异常关机时会有一些信息存入此目录

/var              存放一些不断变化增长的东西(如日志文件)

/usr/bin         用户程序目录

/usr/sbin        需要超级用户权限运行的程序所在的目录

/tmp              存放临时文件的目录

 

命令              说明

ls                   显示目录/文件

cd                  切换工作目录

df                  查看磁盘使用情况

fdisk              磁盘格式化

mkfs              创建文件系统

mount           挂载设备

umount         卸载设备

 

ls -a              显示目录下的所有内容,包括以 . 开头的隐藏文件

ls -l               以详细方式显示目录内容信息

ls -R             递归显示目录内容

ls -S              按文件大小排序,大的在前

使用man is可查看ls命令帮助手册

 

cd (changedirectory)

cd ..              回到上一层目录,在根目录/下使用还是根目录

cd ~              在任何目录下使用

cd -               进入上一次使用的目录

/dev /sd[a-z]  表示硬盘设备(老式的IDE硬盘用hd表示)

sda1, sad2…   表示分区

/dev下cdrom、dvd等表示光盘存储设备

 

df -h             以易于读取的方式显示空间使用情况

df -T              显示文件系统的类型

 

fdisk -l           列出已安装的所有磁盘的分区

fdisk-l<disk> 列出指定磁盘的分区

运行sudo fdisk/dev/sda,根据提示,输入m可获取帮助信息

d                   进入删除分区的子步骤

l                    显示所有Ubuntu支持的文件系统格式

n                   进入创建分区的子步骤,其中p用来创建主分区,e用来创建扩展分区

p                   打印修改后的分区表。这个分区表还没有写入硬盘,只是保存在内存中

w                   把分区表写入硬盘,q放弃修改

 

mkfs (makefilesystem)

mkfs -f<文件系统类型><设备分区>

mkswap /dev/sda5       创建交换文件系统

 

mount -r /dev/sdb2/media/c                                 只读模式挂载

mount -t ext4/dev/sdb2 /media/c                          指定ext4文件系统,一般不用,mount会自动识别文件系统类型

mount -t iso9660 -oloop ./Ubuntu.iso /media/iso  挂载ISO文件

umount /media/c                                                   卸载挂载点

 

注意

U盘对应/dev 目录下的sdx文件。这个时候,可以使用fdisk进行分区等操作,但是若想读取U盘中的文件,必须进行挂载:       sudo mount /dev/sdb1/media/u

使用完毕,要用umount/media/u 进行卸载

而要使用fdisk对U盘/硬盘等其他已挂载的存储设备进行分区操作,则必须要先卸载才可以。

 

配置双网卡

安装ssh服务: sudo apt-get install openssh-server

终端命令:sudo printf“\nauto enp0s8 \n iface enp0s8 inet dhcp \n” >>  /etc/network/interfaces (可能失败)

或者进入文件页面修改:修改网卡配置:sudonano /etc/network/interferes

在下面面直接输入:autoenp0s8

iface enp0s8 inet dhcp

ctrl+x退出,提示保存Y,然后按enter确认

重启网络服务:sudo/etc/init.d/networking  restart

 

第三章 命令终端基础

终端:也称终端设备,是计算机最外围的设备,主要获取用户信息的输入以及处理结果的输出等

终端是一个设备。而shell是一个程序、主要就是获取用户输入的命令并运行,把结果返回给用户。终端最重要的事情是输入和输出,程序运行的结果要通过shell显示在终端上以此和用户产生交互

Linux命令分类

内部命令:属于Shell解释器的一部分,是shell程序自带的命令

外部命令:独立与Shell解释器之外的程序文件,是在系统的某个路径下的可执行程序,由shell依照事先设定好的路径查找,找到后才能执行

type<command>查找<command>是内部命令还是外部命令。hash表会缓存外部命令所在位置。刚开机时,hash表为空,每次运行命令,hash表会缓存此命令的路径,提高命令查找效率

which/whereis<command>查找<command>命令所在的路径

Linux命令格式

 Linux命令的通用格式为:命令 [选项] [参数]

 选项的含义:

       选项:用于调节命令的具体功能

              以”-”引导短格式选项(单个字符),例如”-l”

              以”—“引导长格式选项(多个字符),例如”--color”

       多个短格式选项可以写在一起,例如”-al”,但是这和程序设计方式有关,如果程序不支持这种格式则不能这样使用

 参数:命令操作的对象,如文件、目录名等

 选项和参数都是人为划分的,对程序来说,比如C语言的main(int argc, char *argv[])函数,后面的选项和参数都会传递到argv,都是作为main函数的参数传递的。

获得命令帮助

使用help查看Bash内部命令的帮助信息

命令的”—help”选项适用于大多数外部命令

使用man命令阅读手册页:man [COMMAND] ,↑↓滚动,PgUp PgDn翻页,q退出,按/后查找内容

命令搜索路径

bash会根据PATH变量的设置自动寻找输入的命令。如果有同名的命令,按照路径顺序找到后返回执行,不再继续寻找。有同名的命令可以输入路径运行

profile记录了bash会在哪些目录查找命令

默认的路径搜索顺序(用;隔开)

  ~/bin  ;~/.local/bin /usr/local/sbin ;

/usr/local/bin ; /usr/sbin ; /usr/bin

/sbin ; /bin ; /usr/games ; /usr/local/games

添加其他路径

  如果在用户主目录下存在ins目录,并希望添加到PATH环境变量中,可以在用户主目录下找到。profile文件,使用文本编辑器打开

PATH=后面的双引号中的字符串末尾添加 :/home/brave/in,保存文件

其中/home/brave是用户主目录,个人使用应换成自己的用户名

或者是直接使用$HOME/ins,$HOME会自动替换为当前用户的主目录

然后运行source  .profile

这样就可以直接在shell中输入ins目录下存在的程序名称被shell执行了

可以使用env命令显示系统中已存在的环境变量

shell使用小技巧

Tab键可以自动补全命令名称以及参数

命令历史:bash中可以使用↑↓逐条翻看,允许编辑并重复执行,history命令显示所有缓存在 .bash_history中的命令,history -c清空历史命令

快捷键

Ctrl+a 跳转行首,Ctrl+e 跳转行尾

Ctrl+l 清屏

Ctrl+c 终止程序执行

Ctrl+d 退出shell,回到登录界面

Ctrl+w 按单词删除,空格隔开的作为一个独立的词。

终端常用命令

命令              说明

ls                   列出文件、目录的信息

cd                  切换当前工作目录

mkdir            创建目录

rmdir             删除空目录

touch             创建空文件

rm                 删除给定的文件和目录。如果不为空,需要使用rm -rf

cp                  将一个或多个源文件或者目录复制到指定的目的文件或目录

mv                对文件或目录重新命名,或者将文件从一个目录转移到另一个目录中

cat                 连接文件并打印到标准输出设备上。cat经常用来显示文件的内容

more less       以全屏幕的方式按页显示文本文件的内容,less功能比more更强大

find               在指定目录下查找文件

常用命令使用示例

ls /usr            显示/usr的目录内容

ls -R /usr       递归显示目录内容

ls -l /usr        显示目录/文件详细信息

mkdir abc      在当前目录下创建abc目录

rmdir abc/      删除当前目录下的abc目录,abc必须是空目录

rm tmp/a.sh   删除tmp目录下的a.sh文件

rm -rf tmp/    删除tmp目录,目录可以不为空,会删除目录下所有的内容

cp tmp/a,sh sh/            复制tmp/a.sh文件到sh目录,tmp和sh都是当前目录的子目录

cp tmp/a.sh /tmp         复制tmp/a.sh到/tmp,/tmp是绝对路径

cp tmp/a.sh sh/b.sh     复制tmp/a.sh到sh/目录并为b.sh

cp mariadb/ -R /usr/local           递归复制mariadb目录到/usr/local

mv tmp/a.sh sh/                         移动文件

mv tmp/a.sh sh/b.sh                  移动文件并重命名

mv tmp/a.sh tmp/c.sh                重命名文件

touch tmp/test.sh                       在tmp目录创建test.sh空文件

cat /etc/passwd                          显示/etc/passwd文件的内容

find /usr -name gcc                   查找名称为gcc的文件,大小写敏感

find /usr -name gcc*                  查找名称gcc开头的文件,大小写敏感

find /usr/ -iname gcc*                查找名称开头gcc的文件,大小写不敏感

env                                            显示环境变量

 

第四章 IO重定向与管道

标准输入输出

       每个进程都至少有3个信道:标准输入-STDIN、标准输出-STDOUT、标准错误-STDERR

              标准输入:文件描述符为0,默认指向终端(在虚拟终端中即为键盘)

              标准输出:文件描述符为1,默认指向终端(在虚拟终端中即为屏幕)

              标准错误:文件描述符为2,默认指向终端(在虚拟终端中即为屏幕)

       在Linux中一切皆文件,所以标准输入、标准输出、标准错误都有对应的文件,而这种对应关系是通过文件描述来实

现的,我们在重定向的时候还会用到它们

    对于一个进程来说,它从描述符0指向的文件读取输入信息,把执行结果送到描述符1指向的文件,把出错信息送到

描述符2指向的文件,而不关心这些文件具体是什么

    关于文件描述符:一个进程有一个结构保存一组打开的文件,每个打开的文件用一个数字标识,此数字一般被称为文

件描述符,而在Linux/Unix上设备也被映射为文件,数字0,1,2都会分别关联到键盘,屏幕,屏幕

IO重定向

       在shell中输入命令运行程序,程序的正常输出信息(标准输出)和一些出错信息(标准错误)会通过shell显示在屏

幕上。有时候我们并不需要把这些输出信息(包括标准输出和标准错误)显示在屏幕上,或需要把这些输出信息保存在

一个文件中,这时就需要进行输出重定向。如果一个命令要获取的输入来自文件,或者是在shell脚本编程中,需要从

文件获取输入,则需要进行输入重定向

    重定向示例:echo‘abc’会输出abc到屏幕。echo ‘abc’ >tmp/buff会把abc输出到tmp/buff这个文件。如果没有此

文件则会创建这个文件并写入。但是如果文件存在并且不为空,则重定向会导致之前的数据丢失,只保存重定向的数据。

echo ‘abc’ >> /tmp/buff会把abc追加到文件末尾,之前的数据不会丢失

    谁控制重定向:在shell中使用>,<,>>等重定向符号时,执行重定向操作的是shell,而不是程序。shell把重定向符号解释成指令,将标准输入、输出、错误输出指向其他文件,而不是所关联的设备。手动编写的程序也是可以进行重定向的,但是在shell中输入命令,shell会创建子进程去执行命令,此时进行重定向操作的是shell

    重定向符号:shell将>,<,>>解释成指令,用来把一条命令的输入或输出重定向到一个文件。重定向STDERR的话,则用2>

类型                  操作符                                用途

重定向标准输入     <               将命令中接收输入的途径由默认的键盘更改为指定的文件

重定向标准输出         >               以替换的方式将命令的执行结果输出到指定的文件,而不是直接显示在屏幕上

                                  >>             将命令执行的结果追加输出到指定文件

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值