第1讲 Linux概述与安装
Linux的特点:
多用户多任务、开源、安全、稳定
内核版本和发行版本含义或区别:
Linux内核是操作系统的核心部分,它提供了操作系统的基本功能和底层支持。内核版本是指Linux内核的特定版本号,例如3.14、4.19、5.10等。每个内核版本都有其独特的功能、改进和修复。
Linux发行版本是基于Linux内核的完整操作系统,包含了内核以及其他周边的软件和工具。发行版本通常由Linux社区、开发者或组织来维护和提供支持。一些常见的Linux发行版本包括Ubuntu、Debian、CentOS、Fedora等。
相同家族的Linux发行版本有哪些?
Red Hat(红帽子)、Ubuntu、CentOS、国产红旗Linux
Linux内核版本3个数字组成:x.y.z含义:
r:目前发布的内核主版本;
x:偶数表示稳定版本;奇数表示开发中版本;
y:错误修补的次数;
稳定版本与非稳定版本:
x:偶数表示稳定版本;奇数表示开发中版本;
Linux系统安装时,必修有的两种分区:
Swap交换分区(内外存对换,存放内存中暂时不用的数据)和根分区/
第2讲 Linux图形界面与命令界面
Linux的两种工作界面:图形界面和命令行字符终端界面
命令界面命令:
系统关闭、重启命令:shutdown –r/h now、halt、reboot
帮助命令名:man、help、info常规用法;
查找命令位置:whereis命令
Shell中的管道用法: |
Shell中的5种重定向用法及含义:> < >> 2> &>
uname -a (查看Linux内核版本);
(uname -r)显示操作系统的发行版号;
history命令作用:列出历史输入的所有命令
自动补齐键:Tab键
标准输入设备文件描述符 :0 或 stdin
标准输入设备文件描述符 :1或stdout
第3讲 文件管理与常用命令
Linux的5种不同的文件类型及其符号表示?
(1)普通文件:符号是 -
(2)目录文件:符号是 d
(3)字符设备文件:符号是c
(4)块设备文件:符号是b
(5)符号链接文件:符号是l
链接文件有哪两种?
Hard Link硬链接、Sort Link软链接
Linux中路径符号:“.”和“..”表示法
根目录:/
home目录:~
当前目录:./
父级(上一级)目录:../
上两级目录:../..
Linux目录结构中的几个常见目录:/bin、/boot、/root、/mnt、/usr、/lib、/dev、/etc、/var/log等目录的用途
1./bin:该目录存放了最基本的命令, 如ls、cp、mv等。
2./boot:存放Linux启动所需的文件, 包括内核、引导程序和配置文件等。
3./dev:该目录存放Linux系统中的设备文件。
4./etc:存放系统的配置文件和一些程序的配置文件, 如网络配置文件、用户账户和密码文件等。
5./home:该目录存放用户的主目录, 每个用户都有一个独立的子目录。
6./lib:该目录存放Linux系统和应用程序所需的共享库文件。
7./media:用于挂载可移动媒体设备, 如U盘、光盘等。
8./mnt:用于挂载临时文件系统, 如网络文件系统(NFS) 等。
9./opt:用于存放第三方应用程序的安装目录。
10./proc:该目录提供了内核和进程信息的虚拟文件系统, 可以通过读取这些文件获取系统信息。
11./root:该目录为系统管理员的主目录。
12./sbin:该目录存放一些系统管理命令, 如reboot、shutdown等。
13./tmp:该目录用于存放临时文件, 重启后会自动清空。
14./usr:该目录存放系统应用程序和文件, 如/usr/bin、/usr/lib等。
15./var:该目录存放一些系统和应用程序的日志文件, 如/var/log等。
常用操作命令
Ls -a;
ls -l(文件详细信息中第1个字段含义的具体含义);
grep(用于查找文件里符合条件的字符串或正则表达式。);
find -name;
wc -l(统计行数);
cp(复制文件、复制目录);
mv(文件或目录的移动、重命令);
mkdir -p(递归建立目录);
rm -rf(删除非空目录);
touch file(创建空文件);
cd~或cd(进入当前用户的主目录), cd- (返回上一次的操作目录); pwd;
cal 2001(查看2001年月历)
对全部已登录用户发送信息:wall命令
超级用户登录提示符:# 普通用户登录提示符:$
chmod改变文件或目录的访问权限(字母或数字修改);
chmod ugo+x filename(添加可执行权限、只读权限);
umask nnn(设置默认权限);
chown(更改某个文件或目录的属主和属组);
gunzip(解压.gz压缩文件);
查找/usr下名为ljh.c的文件:
find /usr -name ljh.c
使用命令修改文件或目录的3种访问权限?采用字母与数字表示法修改文件或目录权限
chmod 755 文件名(每个数字由三个二进制位组成。对于每个用户类别(文件所有者、组和其他用户),这些二进制位表示读(r)、写(w)和执行(x)权限)
文件归档命令:
压缩: tar -zcvf hello.tar.gz(目标文件) /etc
解压: tar -zxvf hello.tar.gz -C /home
对某文件内容ljh.c的所有输出行进行编号输出的命令:
#cat -n ljh.c
使用echo命令在某文件增加一行字符串hello:
#echo “hell” >> a.txt
第4讲 用户与用户组管理
Linux系统下的3类用户和功能;3类用户的UID值?
第一类:root(超级管理员),UID为0,这个用户有极大的权限,可以直接无视很多的限制,包括读写执行的权限。
第二类:系统用户,UID为1~499。一般是不会被登入的。
第三类就是普通用户,UID范围一般是500~65534。这类用户的权限会受到基本权限的限制,也会受到来自管理员的限制。不过要注意nobody这个特殊的帐号,UID为65534,这个用户的权限会进一步的受到限制,一般用于实现来宾帐号。
Linux用户账户配置文件—/etc/passwd、/etc/shadow的作用
/etc/passwd文件是用户账户信息的文本文件,其中包含了系统上所有用户的基本信息。该文件中的每一行代表一个用户账户,每行包含了七个字段,分别表示用户名、用户密码、用户ID、组ID、用户全名或描述、用户家目录和默认的shell程序。虽然/etc/passwd文件包含了用户的某些基本信息,但需要注意的是,该文件中存储的密码是加密的,而且该文件对所有用户都是可读的。
/etc/shadow文件是用于存储加密用户密码以及相关账户信息的文件。与/etc/passwd文件不同,/etc/shadow文件中的信息只有root用户可以读取,从而保护了用户的密码安全。该文件中包含的每行代表一个用户账户,每行中包含了加密的密码、最后一次修改密码的时间、密码到期时间、账户到期时间、保留字段和扩展字段等。通过这些信息,系统管理员可以管理用户的账户和密码,确保系统的安全性和稳定性。
Linux用户组账户配置文件—/etc/group、/etc/gshadow的作用
/etc/group 文件是用户组的配置文件,内容包括用户和用户组,并且能显示出用户是归属哪个用户组或哪几个用户组。如果root用户把某个文件的读写执行权限开放,root用户组的所有用户都可以修改此文件。/etc/group文件对用户组的许可权限的控制并不是必要的,用户组可以像用户一样拥有口令。
/etc/gshadow文件中每个用户组都有一条记录,它是/etc/group的加密文件,比如用户组管理密码就是存放在这个文件中。/etc/gshadow文件中每一行都有4个段位,段位间用”:”分割,分别为用户组名称、密码、组管理员账户、支持的账户名称。
用户与用户组管理命令:useradd; userdel; usermod;
#userdel -r ljh //删除用户”ljh”及其主目录下的所有文件
#useradd -d /home/www newuser // 创建用户newuser,并设置该用户主目录为/home/www
root用户的id号:0
如何使用命令将某个用户添加到某个组?
gpasswd -a it root
who命令显示已登录当前计算机的用户
统计登陆系统的用户数: who | wc -l
第5讲 Linux磁盘和文件系统管理
Linux硬盘分区类型与分区命令:
硬盘分区一共有3种:主分区、扩展分区和逻辑分区(逻辑驱动器)
fdisk命令介绍:使用fdisk命令可以对磁盘进行格式化分区,包括在块设备上建立、修改和删除分区。
命令语法:
fdisk [-b <分区大小>][-uv][磁盘设备名]
fdisk [-l][-b <分区大小>][-uv][磁盘设备名]
fdisk [-s <分区编号>]
命令中各选项的含义如下:
-b:指定每个分区的大小
-l:列出(或查看)指定硬盘的分区表信息
-v:显示版本信息。
-s:将指定的分区大小输出到标准输出上,单位为区块。
-u:搭配“-l”参数列表,用分区树木取代柱面数目,表示每个分区的起始地址。
hdXY;sdXY的含义
hd 表示 IDE 硬盘设备,如 /dev/hda、/dev/hdb 等。
sd 表示 SCSI/SATA/USB 硬盘设备,如 /dev/sda、/dev/sdb 等。
X 代表磁盘号,从 a 开始计数,例如第一块IDE硬盘就是 /dev/hda。
Y 代表分区号,从 1 开始计数。
一块Linux系统的磁盘最多有4个主分区
硬盘分区命令fdisk、在分区上创建文件系统的命令mkfs:
mkfs –t ext2/ext3/ext4、mke2fs、mkfs.ext3
挂载文件系统的命令: mount (如将FAT32文件系统/dev/sda3分区挂载到/mnt/sda3目录中)
设置开机自动挂载文件系统的方法:修改/etc/fstab文件
通过修改cron配置文件的方法,实现周期性任务自动化时, /etc/fstab文件新增记录的格式
结合磁盘与文件系统管理命令,描述使用新增磁盘的一般使用步骤
(1)fdisk命令对磁盘进行分区
(2)mkfs命令创建文件系统
(3)mount命令挂载硬盘分区
第6讲 Linux日常管理和维护
查看系统进程信息的命令:ps -aux;top;pstree
终止一个不在后台(前台)的进程: [Ctrl+C]键 (该组合键无法终止后台进程)
终止一个后台进程: kill命令
kill用法: kill -9 PID(PID为进程ID号)
如何让一个进程在后台运行:在命令后跟随符号“&”
后台进程调入前台: fg
前台进程调入后台:bg
第7、8讲 shell编程
shell第一行内容格式?
#!/bin/bash
执行shell脚本的三种方式
(1)hello.sh 直接执行(需要可执行权限)
(2)sh hello.sh 使用sh命令(若root用户的shell是/bin/bash,要用bash命令)
(3)source hello.sh或 . hello.sh 使用source命令或点命令
shell的系统变量:$0,、$?、 $#、 $n、 $*等表示的含义
(1)$0 当前程序的名称
(2)$? 前一个命令或函数的返回值,0表示成功,非0表示失败
(3)$# 命令行参数的总个数,不包含程序名称
(4)$n 第n个参数
(5)$* 以“参数1 参数2 … ” 形式保存所有参数,即所有命令行参数的值
分支结构——test命令;
(1)整数判断:-lt(小于)、-le(小于等于)、-gt(大于)、-ge(大于等于)、-eq(等于)、-ne(不等于)
例如:test 3 -lt 4 判断3是否小于4
(2)字符串判断:=(等于)、!=(不等于)、-z str(str长度为0返回真)、-n str(str长度不为0返回真)
(3)逻辑判断:-a(逻辑与)、-o(逻辑或)、!(逻辑非)
(4)文件判断:-f file(如果文件存在且是一个普通文件)
例如:test $a -eq 0 -a $b -eq 0 判断变量a和变量b是否都等于0
使用方括号表示测试条件的规则是:方括号两边必须有空格
set 命令:设置参数值;
$0, $1, $2…..等表示的含义
在Linux中,0、1、$2等表示的是位置参数。
$0 是脚本本身的名字。
$1 是传递给该shell脚本的第一个参数。
$2 是传递给该shell脚本的第二个参数。
...
shell中单引号、双引号、倒引号使用方法
(1)’:由单引号括起来的内容都作为普通字符出现
(2)”:由双引号括起来的字符,$、倒引号和反斜杠保留特殊功能,其余字符否作为普通字符对待
(3)`:倒引号用于命令替换,括起来的字符串被解释为命令,转换为其标准输出结果
(4)\:转义字符
例:
echo “My current directory is pwd and logname is $LOGNAME”
输出My current directory is /root and logname is root
echo “My current directory is pwd and logname is $LOGNAME”
输出My current directory is /root and logname is $LOGNAME
echo ‘My current directory is pwd and logname is $LOGNAME’
输出My current directory is pwd and logname is $LOGNAME
分支结构——if语句、 for语句使用方法
If语句:
if 判断条件1
then …
elif 判断条件2
then …
else …
fi
for语句:
for 循环变量名 in 变量列表
do
…
done
利用shift访问参数变量
在Linux中,使用shift命令可以访问参数变量。shift命令会将位置参数向左移动,即$1变为$2,$2变为$3,依此类推。
echo命令---提示用户 : echo -ne
打印99乘法表
#!/bin/bash
for i in `seq 1 9`
do
for j in `seq 1 9`
do
echo $i x $j = $[$i*$j]
done
done
如何为脚本程序添加可执行权限,如何运行?
chmod a+x jiujiu.sh或chmod 111 jiujiu.sh
第9讲 Linux网络基本配置与网络安全
Linux网络配置文件: /etc/network/interfaces、/etc/resolv.conf、文件的作用
(1)/etc/network/interfaces:网卡配置文件
(2)/etc/resolv.conf:DNS配置文件(指定DNS域名解析器)
网络配置命令:ifconfig、route命令设置网卡IP地址和网关
(1)ifconfig eth0 192.168.1.1 netmask 255.255.255.0 up 配置网卡eth0的IP地址和子网掩码,同时激活该设备
(2)route add -net 192.168.20.0/24 gw 192.168.10.1 dev eth0给eth0网卡添加路由
关闭/激活网卡eth0命令: ifconfig eth0 down/up
主机访问控制文件hosts.deny和hosts.allow中添加相关规则
Linux系统下防火墙ufw的关闭、使能与端口开放/关闭命令
(1)ufw enable 开启防火墙
(2)ufw disable 关闭防火墙
(3)ufw allow/deny port 开放/关闭端口port
重新启动某个服务的命令(例如ftp服务器):
#service vsftpd restart
或 /etc/init.d/vsftpd restart
或 systemctl restart vsftpd
第10讲 Web、Ftp、Samba与NFS服务器配置和第11讲 Mail、DNS和远程连接服务器配置
软件包在线安装命令: apt-get install apache2或 vsftpd或nfs
启动、停止、重启ftp服务、Web服务(apache2)的命令?
启动apache:#/etc/init.d/apache2 start或#service apache2 start
停止Web服务则需要使用stop参数,类似的重启Apache需要使用restart参数
OpenSSH 、Samba和NFS服务器含义、作用和区别
OpenSSH服务器用于远程连接
SAMBA是Windows主机和Linux主机(不同平台间)之间实现资源共享的协议程序。
NFS(network file system)用于实现Linux或unix系统之间的资源共享
特定用户名+密码格式,以命令方式访问ftp服务器:
# ftp ljh:123456@10.64.131.110
第12讲 Linux下C C++集成开发环境
make命令的工作步骤?
(1)在当前目录下寻找文件名为GNUmakefile、makefile、Makefile的文件,找到了则解释这个文件
(2)依次读取工作目录makefile文件中使用“include”包含的文件
(3)重建所有已读取的Makefile文件的规则
(4)初始化Makefile文件中的变量值
(5)推倒隐晦规则
(6)根据终极目标及其他目标的依赖关系建立依赖关系链表
(7)执行除终极目标外的所有目标的规则
(8)执行终极目标的规则
编写简单的Makefile文件;能读懂如下的Makefile文件(包括有几个规则,目标分别是什么);
1 hello:hello.o say_hello.o
2 {cc} $^ -o $@
3 say_hello.o:say_hello.c say_hello.h
4 gcc -c say_hello.c -o say_hello.o
5 hello.o:hello.c say_hello.h
6 gcc -c hello.c -o hello.o
Makefile中的显示命令符号@加或者不加的区别?
makefile中的命令前加了@则不显示命令本身,只显示结果
第13讲 Linux内核引导加载、分析及其编译
Linux系统的引导加载和初始化流程
(1)加载BIOS
(2)读取MBR
(3)加载Grub第二部分和boot/grub/grub.cfg
(4)加载内核和解压挂载initrd文件系统
(5)根据rc-sysinit.conf文件设定运行等级
(6)init进程执行/etc/init.d/rc
(7)启动内核模块
(8)执行不同运行级别的脚本程序rc0.d~rc6.d
(9)执行自定义脚本/etc/rc.local
(10)执行/bin/login程序,进入登录状态