linux基础知识都有哪些

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux基础知识都有哪些相关的知识,希望对你有一定的参考价值。

第一阶段:linux基础入门
Linux基础入门主要包括: Linux硬件基础、Linux发展历史、Linux系统安装、xshell连接、xshell优化、SSH远程连接故障问题排查、L inux基础优化、Linux目录结构知识、Linux文件属性、Linux通配符、正则表达式、Linux系统权限等
第二阶段:linux系统管理进阶
linux系统管理进阶包括:Linux定时任务、Linux用户管理、Linux磁盘与文件系统、Linux三剑客之sed命令等。
第三阶段:Linux Shell基础
Linux Shell基础包括:Shell编程基础、Linux三剑客之awk命令等。
第四阶段:Linux网络基础
第五阶段:Linux网络服务
Linux网络服务包括:集群实战架构开始及环境准备、rsync数据同步服务、Linux全网备份项目、nfs网络存储服务精讲、inotify/sersync实时数据同步/nfs存储实时备份项目等。
第六阶段:Linux重要网络服务
Linux重要网络服务包括:http协议/www服务基础、nginx web介绍及基础实践、nginx web、lnmp环境部署/数据库异机迁移/共享数据异机迁移到NFS系统、nginx负载均衡、keepalived高可用等。
第七阶段:Ansible自动化运维与Zabbix监控
Ansible自动化运维与Zabbix监控包括: SSH服务秘钥认证、ansible批量自动化管理集群、 zabbix监控等。
第九阶段:大规模集群高可用服务(Lvs、Keepalived)
第十阶段:Java Tomcat服务及防火墙Iptables
第十一阶段:mysql DBA高级应用实践
MySQL DBA高级应用实践包括:MySQL数据库入门基础命令、MySQL数据库进阶备份恢复、MySQL数据库深入事务引擎、MySQL数据库优化SQL语句优化、MySQL数据库集群主从复制/读写分离、MySQL数据库高可用/mha/keepalved等。
第十二阶段:高性能数据库Redis和Memcached课程
第十三阶段:Linux大规模集群架构构建(200台)
第十四阶段:Linux Shell编程企业案例实战
第十五阶段:企业级代码发布上线方案(SVN和Git)
第十六阶段企业级Kvm虚拟化与OpenStack云计算
第十七阶段公有云阿里云8大组件构建集群实战
第十八阶段:Docker技术企业应用实践
第十九阶段:Python自动化入门及进阶
第二十阶段:职业规划与高薪就业指导
参考技术A Linux启动过程
启动流程:操作系统->/boot -> init进程 -> 运行级别 -> /etc/rc.d->用户登录->login shell
内核的引导:首先是Bios开机自检,按照BIOS中设置的启动设备(通常是硬盘)来启动,操作系统接管硬件以后,首先读入 /boot 目录下的内核文件
运行init进程:init 进程是系统所有进程的起点,没有这个进程,系统中任何进程都不会启动,init程序首先是需要读取配置文件 /etc/inittab,init进程的任务之一是运行开机启动的程序;许多程序需要开机启动。它们在Windows叫做"服务"(service),在Linux就叫做"守护进程"(daemon)
Linux关机

正确的关机流程为:sync>shutdown>reboot>halt
sync:将数据有内存同步到硬盘中
shutdown:关机指令;
Linux文件属性

通过命令 ll或 ls-l可以查看某个目录下所有的文件以及文件类型、权限、属组等
更为详细的介绍可以查阅下相关资料,比如《Linux就该这么学》。
参考技术B 一、Linux的磁盘分区及目录
Linux的配置是通过修改配置文件来完成。
1.1、Linux磁盘分区
Linux可以将磁盘分为多个分区,每个分区可以被当做一个独立的磁盘使用,磁盘类型:主分区、扩展分区、逻辑分区。
主分区标记为活动,用于操作系统的引导,一块磁盘最多划分4个主分区,主分区存放操作系统的文件或用户数据。
扩展分区:主分区小于4个时才可以划分扩展分区,一块磁盘最多有一个扩展分区,扩展分区不能保存任何数据,必须在扩展分区中进一步划分逻辑分区,用户数据只能保存在逻辑分区中。
逻辑分区:扩展分区中可以建立多个逻辑分区。
Linux中大多数硬件都是以文件的方式进行管理,这些硬件设备被映射到"/dev"目录下对应的文件中,在‘/dev’目录下每个磁盘分区映射为一个文件,这些文件采用字母加数据的形式,如:
/dev/xxyN
其中的xx表示区名所在磁盘的设备类型,一般hd代表IDE接口的磁盘,sd代表SCSI或SATA即可的磁盘(光盘驱动器及U盘),fd代表软盘驱动器,tty是一种字符型的终端设备ttySn是串口设备。“y”表示分区所在的磁盘是当前接口的第几个设备比如第一个SCSI硬盘就是“/dev/sda”,第二个SCSI硬盘就是“/dev/sdb”。“N”表示分区的序号,前四个分区(主分区或扩展分区)使用1-4表示,逻辑分区从5开始。
分区完成后,用户并不能直接使用这些分区,需要格式化后再通过 mount命令挂载后才能使用,如使用mount命令将“/dev/sdb2”挂载到“/mnt/disk”目录,所有保存到/mnt/disk目录下的数据就会被保存到/dev/sdb2分区中。
1.2、Linux文件系统及目录结构
文件系统是一种存储和组织计算机文件及数据的方法,文件系统通常使用硬盘和光盘的存储设备,并维护设备中的物理位置。
Linux操作系统默认操作FAT、FAT32两种文件系统,默认情况下不支持NTFS系统,推荐使用ext3(第三版的扩展文件系统)文件系统。ext3是一种日志文件系统,在对系统数据进行写操作前,会把写操作内容写入一个日志文件中,一旦操作被意外中止,系统能够在重新启动时根据日志完成该写操作。
Linux文件系统中,文件是存储信息的基本结构。文件、目录、硬件设备都以文件的形式表示,文件名可以由字符、数据、原点、下划线组成,长度不超过256个字符。Linux中通过圆点区分文件名和扩展名帮助用户区分文件类型,用户可以根据自己需要随意假如自己的扩展名。Linux中有4种文件类型:普通文件,如文本文件、图片文件、视频文件、shell脚本文件;目录文件:特殊的文件;链接文件;特殊文件;
文件系统采用树形的结构。
Linux中每个用户有个家目录,如果是管理员(root用户)家目录是/root,若是普通用户家目录是/home。路径,从一个目录到另一个目录或文件的道路被称为路径,“.”表示当前目录,“..”当前目录的父目录,“~”当前用户的家目录,“-”上一个目录。
二、常用命令
poweroff:关闭系统 reboot:重启计算机 clear:清除终端显示 pwd :显示当前目录 cd:改变当前目录 . :表示当前目录 .. : 表示当前目录的父目录 ~“”表示home目录
- 上一个工作目录
mv :移动命令 cp:复制命令 rm:删除命令 mount:挂载命令 chamod:改变权限命令
cat:打印命令 mkdir:新建文件夹 lsmod:查询设备
netstate -nl :查看网络状态 netstate -nlu :查看UDP状态
ifconfig 查看网络配置 ifconfig -a:所有的网卡 ifconfig eth0 up/down 打开或关闭eth0设备 ifconfig 可以用来配置IP和网络掩码。 ping:查看网络是否通 date:查询时间 date -s :修改系统时间 cal:日历
man 命令:查看命令的使用方法。 kill 进程号:结束一个进程
2.1、vim命令
命令模式,启动后默认处于该模式,其他模式用ESC键或者Ctrl+C切换到命令模式。
插入模式,和txt文档编辑一样编辑,在命令模式下用i、o、a命令进入该模式。
可视模式,该模式下可用方向键进行内容选择,然后进行复制、粘贴和其他操作,在命令模式下使用v进入该 模式。
块操作模式,该模式下可用方向键进行内容选择,选择时可模拟鼠标选择的方式。在命令模式下使用ctrl+v进入该模式
修改模式,该模式下,类似于其他软件用insert键来完成切换。命令模式下用R进入该模式。
扩展命令模式,该模式下可以执行一些扩展命令。命令模式下使用‘:’进入该模式。
vim几种操作选择:“o” 可以只读方式打开该文件,“e”可正常编辑,使用该方式注意确定其他用户没有正在编 辑这个文件,“r”从临时交换文件中回复,“q”退出编辑该文件,“a”放弃并同时撤销后续命令的执行,“d”删除临时交换文件。
文件编辑完成,希望关闭需要首先切换到命令模式,击中退出方式::q 直接退出,:q!强行退出,如果文件内容发生改变则不保存,:wq保存并退出,:wq!强行保存并退出,一般用于文件是只读的情况下,但是文件的拥有者是当前用户。
2.2、Vim常用的操作键
命令模式常用的操作键:
G:移动到文件的最后一行
nG:n为数字,移动到文件的第n行。
/word: 向下查找关键字word
?word: 向上查找关键字word
n:重复前一个查找
N:反复重复前一个查找
:n,$s/a/b: 替换第n行开始到最后一行中每一行的第一个a为b。
:n$s/a/b/g: 替换第h开始到最后一行每一行所有的a为b,n位数字,若n为.表示从当前行开始到最后一行
d$: 删除光标所在位置到该行最后一个字符。
dd: 剪切当前行。
yy: 复制所选内容
nyy: 复制从光标开始n行内容
p: 将已经复制的内容粘贴到光标下一行。
P: 将已经复制的内容粘贴奥光标上一行。
u: 复原上一个操作。
ctrl+R: 重复前一个操作。
o: 当前下插入空行,并进入插入模式。
O: 当前下插入空行,并进入插入模式。
. : 重复前一个动作。
i : 进入插入模式,从当前光标所在位置插入。
I : 插入模式,从当前行第一个非空格处插入。
r : 插入模式,替换光标所在字符。
R: 进入修改模式。
ESC键:返回命令模式。
(2) 扩展命令模式常用操作键
:w ---- 保存。
:w! ---- 文件为只读时强制保存,不过能否保存还要看文件的权限。
:q ---- 离开vim。
:q! ----- 强制退出。
:wq ------- 保存后离开。
:x ------ 保存后离开。
:w[文件名] ----- 另存为新文件。
v ---------- 进入可视模式。
ctrl+V ------ 进入块操作模式。
:r[文件名] ----- 将文件名的文件读到光标后面。
n1,n2 w[文件名] ----- 将n1到n2另存为新文件
:new ----- 新增水平窗口
:new filename --- 新增水平窗口,并在新增的窗口加载filename文件。
:v new ----- 新增垂直窗口。
:v filename ----- 新增垂直窗口,并在新增窗口加载filename文件。
ctrl+W+方向键 ---- 切换窗口。
:only ---- 紧保留目前的窗口。
:set nu ----- 显示行号
:set nonu ---- 不显示行号
:set readonly ----- 文件只读,除非使用!可写。
:set ic ---- 查找是忽略大小写。
:set noic ---- 查找时不忽略大小写。

三、桌面环境
Linux的桌面图形界面有很多种,GNOME KDE Fluxbox Xfce FVWM sawflish WindowMaker等,最常用的是GNOME和KDE两种。
3.1、远程管理
Telnet协议是Internet远程登录服务的标准协议,提供了在本地计算机上完成远程主机工作的能力,用户可以在Telnet程序中输入命令,这些命令会在远程服务器上运行。传统的Telnet安全性差,许多服务器会将Telnet服务关闭,使用更安全的SSH。
ubuntu 开启Telnet服务步骤, http://www.linuxdiyf.com/linux/17355.html
SSH是Secure Shell 的缩写,为建立在应用层和传输层上的安全协议,SSh对所传数据进行加密保证了数据的安全而且数据是经过压缩的提高了传输速度。SSH可以代替Telnet,又可以为TFP、POP提供一个安全通道。
Linux及windows客户端通过SSH链接到服务器的方法:
(1) Linux客户端
Linux客户访问SSH服务器通过以下几个命令完成:
① ssh [-CflRv] [用户名@] SSH服务器 [命令] ,
SSH服务器指定要链接的服务器,可以使用FQDN或IP地址。
用户名@:指定链接SSH服务器的用户名,不指定用户时默认以root用户链接。
命令:使用ssh命令可以链接到服务器,有时需要在SSH服务器上执行一个命令时,可以直接通过此 参数指定需要执行的命令。
-C:启用压缩功能
-f: 在询问密码之后且在执行[命令]之前,将ssh转到后台运行。
-L:将本地系统中的某个端口转发到远程系统。
-R: 将远程系统 的某个端口转发到本地端口
-v: 显示与连接和传送有关的调试信息。
例如: ssh 192.168.159.11 通过ssh连接到远程计算机,默认使用root用户。如果是第一次连接到远 程计算机,本地主机的用户需要生成连接远程主机的RSA公钥,在此出现的警告输入yes。退出远程 连接服务器,输入exit。
② SCP命令可以使用SSH的方式在远程主机和本地主机复制文件或目录,语法如下,
scp [-Cpqrv] [[用户名@]复制源主机:]复制源文件[[用户名@]复制目标主机:][复制目标文件]
如果是windows客户端,可以用putty。
(2) RDP
在Windows中可通过“远程桌面”功能连接到远程的计算机进行管理。
四、Linux命令基础
4.1、Linux命令分类
Linux操作系统中,命令分为两种:Shell内部命令、Shell外部命令。
Shell内部命令:shell内部命令是一些较为简单的又常用的命令,如cd、mkdir、rm等,这些命令在shell启动时载入内存。
Shell外部命令:Linux中大多数命令属于外部命令,每一个shell外部命令都一个独立的可执行程序,也就是shell的外部命令是一些实用工具程序,管理员可以独立的在shell环境下安装或卸载这些shell外部命令。
Linux的内部命令可以在任何目录任何时间执行,而外部命令在执行时,Linux必须找到对应的可执行程序。Shell中一个名为PATH的环境变量,该变量包括一些路径用于shell自动搜索。
cat /etc/shells 来查看系统中的shell种类。
Shell中的引号分为三种:单引号,双引号,反引号
由单引号引起来的符号都作为普通字符出现。特殊字符用单引号引起来后,失去原来的意义,变为普通字符解释。
双引号的作用与单引号类似,区别在于没那么严格,单引号忽略所有的特殊字符,双引号中的3中特殊字符不被忽略 $ \ '。
反引号· 位于键盘的左上角,被反引号引起来的被shell解释为 命令行
用#做注释。
4.2、Linux命令格式
Shell解释器在用户和内核之间相当于一个翻译的角色,负责解释用户输入的命令。shell是操作系统和用户进行交互的界面。命令的基本格式:
命令 [选项] [参数]
命令是需要执行的操作,选项是对命令的要求,参数用于描述命令的作用对象。比如 ls -l /root ,命令是ls,选项-l表示要以长格式显示文件信息,/root 是 ls的命令参数,表示ls命令作用的对象是 /root目录。
五、Linux的目录及文件管理
5.1、Linux的主要目录
/ :根目录,一台计算机只有一个根目录,所有内容都是从跟目录开始。如/etc ,先从根目录开始在进入etc目录
/root:系统管理员的家目录。
/bin:存放了标准的Linux工具,如ls、cp、rm等。该目录已经包含在PATH中,使用该目录程序无需使用路径
/boot:用于加载程序的文件。
/proc:操作系统运行时,进程信息及内核信息,如果CPU、硬盘分区、内存信息等存放在该目录。
/etc:存放系统的配置方面的文件,如在系统安装vsftpd这个软件,你想要修改vstpd配置文件的时候,vstpd的配置文件就在/etc/vstpd目录下。
/etc/init.d 存放系统或以system V模式启动的服务脚本。
/etc/xinetd.d: 如果服务是通过xinetd模式运行的,服务的脚本要放在这个目录下。
/etc/rc.d : 存放BSD方式启动脚本,如定义网卡开启脚本等。
/etc/X11:存放X-Windows相关的配置文件
/dev :主要存放与设备(包括外设)有关的文件。
/home :存放每个用户的家目录。每个用户的设置文件,桌面文件夹、用户数据都放在这里。
/tmp :临时目录。
/bin、/usr/bin:大部分系统命令都是二进制文件形式保存。一般用户使用的命令都在这两个目录,系统核心命令工具,如cd、ls、cp、等都在/bin目录。如Web浏览器为于/usr/bin目录,可以与其他用户共享使用。
/sbin、/usr/sbin :存放root用户的命令文件。
/usr/local :用于存放手动安装的软件。
/usr/share:存放系统共用的文件。
/usr/src:存放内核源码的目录。
/var :存放一些经常变化的文件。
/var/log:存放系统的日志。
/opt:存放那些可选的程序。
/lib:系统的库文件
/lost+found:在文件系统中,系统意外崩溃或意外关机时,产生的一些文件碎片放在该目录。
/mnt : 存放挂在存储设备的挂载目录。
/meia:有些发行版使用这个目录来挂载那些USB接口的移动硬盘,CD/DVD驱动器等。
5.2目录结构及操作命令
Linux系统中,以.开头的文件名表示该文件是隐藏文件, ls命令用于显示指定目录的内容,语法:
ls [-anruhtFS1R] --time=<atime|ctime> --color<=使用时机> [目录...]
[目录...]:指定要显示内容的目录或目录缩写,如果需要显示多个目录,可在目录名之间使用空格
-a:显示包括影藏文件在内的所有文件及目录。
-n:使用UID和GID代替用户名显示文件或目录所有者和拥有者。
-r:反向排序。
-u:以最后存取时间排序,显示文件和目录。
-h:使用k、M、G为单位,提高信息可读性。
-t:根据文件和目录最后修改时间的顺序显示文件和目录。
mkdir 创建目录,语法如下
mkdir [-p] [-m<目录属性>] 目录名称...
目录名称:需要创建的目录,若需建立多个目录,可在目录名之间使用空格分隔。
-p:如果要建立的目录父目录没创建,则一起建立父级目录。
-m:建立目录时,同时设置目录权限,权限设置方法与chmod命令相同。

Linux驱动开发与Linux嵌入式开发都有哪些相同点和不同点?两者都要学的基础知识都有哪些?

Linux嵌入式开发包括了Linux驱动开发.Linux嵌入式开发,包括了从应用层到底层驱动等等,驱动开发就属于底层开发.
都要学的基础知识,就是C语言,Linux,还有各种计算机原理那块的知识.
参考技术A 应该说嵌入式开发范围大一点,linux驱动开发是相对底层的,上面还有应用层开发,下面有硬件,驱动跟其他一些库的开发是在硬件的基础上为应用开发提供接口,而这所有的开发都叫嵌入式开发 参考技术B 嵌入式开发包括了驱动开发。基础知识:程序语言,操作系统,驱动架构,硬件知识等。网上有很多嵌入式学习方面的书单整理,你看看就知道了。 参考技术C 驱动开发需要对硬件有一些基础,而嵌入式开发是纯应用的。两者都需要linux系统基础操作。 参考技术D 基本没有区别,需要学习linux下面系统的开发。

以上是关于linux基础知识都有哪些的主要内容,如果未能解决你的问题,请参考以下文章

Linux培训内容都有哪些

Linux运维工程师须掌握的基础技能都有哪些?

python学习,需要都有哪些基础呢?

老男孩教育每日一题-第69天-shell脚本知识点:linux系统脚本中trap信号都有哪些,如何进行使用?

大数据技术平台都有哪些?

想做一个Python工程师,都有哪些技能是必备的?