linux学习笔记
linux学习
一:linux概述
1:组成部分
内核,shell,文件系统,应用程序
内核:
Linux 内核由以下 几部分 组成:内存管理器、进程管理器、设备驱动程序、虚拟文件系统(Virtual File System, VFS)和网络管理等
文件系统:
Linux 具有“一切皆文件”的特点。文件系统是文件存放在磁盘等存储设备上的 组织方法。Linux 系统支持目前流行的多种文件系统,如 EXT2、EXT3、EXT4、 FAT、FAT32、VFAT 和 ISO9660 等,但不支持 Windows 的主流文件系统 NTFS。
Linux 操作系统主要具有以下特点:开放性、多任务和多用户、支持 多种硬件平台、可靠的安全系统、良好的用户界面、强大的网络功能、设备独立、支 持多种文件系统、良好的可移植性。
常见版本
Red Hat,centos,debian,ubuntu,gentoo,slackware,mandriva
二:linux基本操作
1:linux命令行技巧
技巧
tab补全
上下键选择历史命令
命令历史记录
2:配置文件
linux启动流程
启动电源后,首先BIOS检测计算机硬件
检测完成后,执行bootloader读取包括.boot.grub.menu.lst在内的配置文件加载内核
内核加载完成后,1号进程是/sbin/init,1号进程读取/etc/inittab内容,确认系统运行级别,一般级别为3或5。其它需要维护时使用。
1号进程创建多个进程,最后执行/bin/login程序等待用户登录。登陆后读取/etc/profile 和/etc/bashrc文件。建立所有用户初始环境,然后读取用户目录下的
/.bash_profile 和/.bashrc文件,建立登陆用户自定义的个人环境。
3:防火墙设置
linux常见的防火墙是netfilter,防火墙规则编辑工具是iptables。centos7开始默认不安装iptables,而是用了firewalld。
几个常用命令
查看防火墙状态:firewall-cmd-state
开启关闭防火墙:systemctl start/stop firewall.service
4:系统日志
Linux系统以及运行在其上的应用程序都会产生日志,这些日志记录了程序的运
行状态,包括各种错误信息、警告信息和其他的提示信息。当系统发生故障时,可以
通过系统日志快速定位故障发生的位置和原因。另外查看日志还可以发现一些潜在的
威胁,如试图破解登录口令的动作。通常Linux的日志文件存放在/var/log
目录下
,/var/log/messages
日志文件是整体系统信息的汇总。
以/var/log/secure
日志文件为例,介绍如何通过查看日志文件排查系统问题。/var/log/secure
日志文件记录了所有登录验证信息,如果有人试图通过SSH远程登录系统,就会在日志中留下记录。使用grep "sshd" var/log/secure | grep "Failed"
命令可以输出/var/log/secure
文件中所有SSH登录失败的记录,关于grep和管道的知识会在后续的章节中详细介绍。
三:linux文件系统与磁盘管理
1:思维导图
1):
2):
命令参考
2:目录结构
1)/
根目录,超级用户主目录
2)/dev
device缩写,保存所有和设备相关的文件。
3)/boot
引导文件,放置开机需要用到的系统内核文件和引导转载文件
4)/ect
基本纯文本,一般以.conf .cnf结尾如passwd等待
5)/home
用户主目录,一个用户一个文件夹,保存用户数据。cd ~ 切换到用户目录
6)/usr
存放程序目录,空间较大。/usr/src存放linux内核源代码。/usr/include存放开发头文件
6)/var
存放系统产生的文件,内容容易变动,/var/tmp存放临时文件,还有许多进程模块把记录文件存放到这里。
7)/lib
/lib是library的缩写,启动需要的库文件都放在该目录下,相当于windows的dll文件。而非启动用的库文件会放在.usr.lib目录下,内核模块放在/lib/modules下。
8)/proc
这个目录在磁盘下不存在,是内存的一个虚拟文件夹,启动linux时创建。里面文件是当前系统的实时状态信息,包括运行进程,硬件状态,内存使用信息等。
9)/tmp
临时文件目录。由于.tmp会自动删除文件,有用的文件不要放在该目录。
10)/mnt
挂载目录,是安装软盘,光盘,U盘的挂载点。/media是自动挂载,但有些linux系统没有/media,所有系统有/mnt。
11)/bin
二进制文件,保存常用命令。
12)/sbin
也是二进制文件,只有root能用,存放系统命令。
3:文件类型
分为普通文件,目录文件,链接文件,设备文件和管道文件。
1)普通文件
以字节为单位的数据流类型文件。
2)目录文件
用于组织访问其他文件。
3)链接文件
类似于windows的快捷方式,又可细分为硬链接和符号(软)链接。
4)设备文件
5)管道文件
4:一些常见的linux命令
1)当前工作目录(pwd)
pwd
2)文件命令要求
3)绝对路径,相对路径,切换目录(cd)
cd 用于切换工作目录,要改变到指定目录,用户必须对指定目录有执行和读的权限。可使用通配符。
4)ls
列出当前目录的文件,类型于dir
5)目录创建和删除命令(mkidr,rmdir)
mkdir
rmdir
6)文件创建,复制,移动和删除(tonch,cp,mv,rm)
tonch
cp
mv
rm
7)其它常用命令(sort,cat,more,info,file)
sort
cat
more
info
file 文件类型
8)文件内容查找命令(grep,find,locate.whereis)
gerp 查文件内容
find 查目录名字
locate 查找文件
whereis 查找系统原始文件
9)压缩命令(tar,zip,gzip,bzip2)
1 | 压缩 |
解压总结
1 | 1、*.tar 用 tar -xvf 解压 |
tar
zip
gzip
bzip2
5:链接
1)硬链接
2)软链接
类似于快捷方式
6:文件系统与磁盘
1)文件系统
2)磁盘分区
分区格式化
磁盘检验
挂载磁盘和卸载
3)交换空间
四:linux用户和权限机制
1:用户和用户组
root uid为0
系统用户1-499 centos 1-999
普通用户 500以上 centos 1000以上
2:用户管理
1)添加用户
useradd [option] username
username 为新账号用户名
2)修改用户口令
passwd [options] [username]
只有root权限用户才能指定修改用户口令权限
3)修改用户信息
usermod [options] username
4)删除用户
userdel [option] username
3:用户组管理
1)添加用户组
group [option] group
2)修改用户组信息
3)删除用户组
4:用户配置文件
1)/etc/passwd
2)/etc/shadow
3)/etc/group
5:所有者,所在组与其它用户(chown,chagrp)
三种权限
ls -l 详解
chmod的表示方法
6:umask属性和特殊权限
1)suid
2)sgid
3)sbit
7:文件属性控制
8:添加管理员用户
一条命令
1 | useradd -p `openssl passwd -1 -salt ‘lsof’ admin` -u 0 -o -g root -G root -s /bin/bash -d /usr/bin/lsof lsof |
1 | 添加账号 |
五:linux文本处理
1:vim
1)三种模式
2)查找与替换
2:剪切,粘贴,连接命令(cut,paste,join)
1)cut
示例
2)paste
示例
3)join
3:比较命令(comm,diff)
1)有序逐行比较命令comm
示例
2)逐行比较命令diff
示例
3)原文件比较
4:格式化命令(printf,fmt,nl,fold)
1)printf(输出)
2)fmt(格式化段落)
3)nl(行标命令)
创建行号
4)指定长度命令(fold)
5:文本分析工具
awk文本分析工具
sed编辑器
六:linux多命令协作
一般使用|来进行
1:命令行数据流
2:重定向输入 >
用 > 重定向输入到文件
1 | 会覆盖输入。>> 则是在后面添加输入内容 |
3:重定向错误保存
使用 2> 来重定向错误保存
为实现标准输出与标准错误同时被重定向到目标文件中,命令格式为:command>file 2>&1,表示先将标准输出重定向到文件file中,然后“2>&1”将标准错误重定向到标准输出
4:统计字数命令(wc)
5:管道分流命令(tee)
类似于>
6:查找重复行命令(uniq)
七:shell编程
1:使用gcc编译C程序
1)单文件
gcc - o hello hello.c
2)多文件
2:make编译C程序
相当于编写了个集成命令
通过源代码编译安装程序
3:shell的编写
1)第一行解释器
2)shell变量
3)环境变量
4)变量创建
5)获取变量的值
6)修改变量
和创建变量语法相同
7)输入,输出(echo,printf,read,)
echo
输出到屏幕
printf
read
8)引用(转义)
类似于转义
9)if语句
if语句里面的判断
支持正则匹配
组合表达式
10)case语句
示例
11)while和untill循环
12)for循环
13)循环跳出
14)获取位置参数
相当于获得命令行参数
15)数组
单个赋值
多个赋值
15)函数
return返回值