Linux基础

Linux概述

1.基本介绍

  • Linux内核是基于GNU发布的自由软件
GNU:目标是编写大量兼容Linux系统的自由软件
GPL:允许用户任意复制,传递,修改和再发布
LGPL
  • 常见开发源码的软件
Firefos:网页浏览器
OpenOffice:网页套件
Apache
......
  • Linux发行版本构成
完整的OS=Linux内核+各种自由的软件
厂商提供的辅助安装、软件包管理等程序

2.磁盘分区


分区介绍

  • 硬盘很大,可分成一块块的,方便管理
  • 一块硬盘可以分为两大分区:主分区和扩展分区
1.主分区:能安装操作系统,能进行计算机启动
	这样的分区可以直接格式化
2.扩展分区:装文件
  • 分区规则
MBR分区表类型的硬盘中最多只能有4个主分区,多余的就要使用扩展分区
如果使用扩展分区,一个硬盘上最多只能有3个主分区和1个扩展分区
扩展分区不能直接使用,经过二次划分成为逻辑分区才可使用
一个扩展分区的逻辑分区可以是任意多个

Linux磁盘分区

  • Linux将硬盘、分区等设备都表示为文件
/dev/(hd/sd/a)5
	1.dev:硬件设备文件所在目录
	2.hd:IDE设备
	  sd:SCSI设备(服务器专用硬盘)
	3.a/b/c...:硬盘顺序号
	4.1/2/3...:分区顺序号
  • 编号
    在这里插入图片描述
  • 命令
df -lh:查看所有硬盘的使用状
du -sh /etc:查看etc目录的大小
free:显示内存使用状况
arch:显示架构
cat /proc/cpuinfo:显示CPU信息
cat /proc/meminfo:显示内存信息
fdisk -l:查看现有磁盘大小

3.文件系统类型

  • Linux默认使用EXT3(第3代扩展文件系统)、SWAP(交换文件系统)
  • 一般建议交换分区的大小设置为物理内存的1.5~2倍

4.目录结构

  • 列出目录
    在这里插入图片描述
  • 树型目录结构
    在这里插入图片描述
  • 目录及作用
    在这里插入图片描述

Linux命令

1.概述

  • 用于实现某一类功能的指令或程序
  • 命令的执行依赖于解释器

2.分类

  • 内部命令:属于Shell解释器的一部分
  • 外部命令:独立于Shell解释器之外的程序文件

3.通用命令格式

  • 命令字符 [选项] [参数]
1.空格分割
2.选项:- 短格式选项,单个字符
	    -- 长格式选项,多个字符
	 	多个短路式的选项写在一起只用-
3.参数:命令操作的对象

4.常用命令

  • ls:全部列表–文件名
  • ll:详情列表
  • uname -a:查看Linux版本
  • reboot:重构
  • systemctl set-default multi-user.target:切换界面

5.快捷操作

  • tab:自动补齐
  • \:强制换行
  • Ctrl+U:清空至行首
  • Ctrl+K:清空至行尾
  • Ctrl+L:清屏
  • Ctrl+C:取消本次命令编辑,有结果
  • Ctrl+Z:后台运行,没有结果

6.获得命令帮助

  • help:查看Bash内部命令的帮助信息
  • 命令 --help:查看外部命令的信息
  • man 命令:阅读命令的官方手册
  • info:阅读信息页
  • q:退出

7.管道和重定向

  • 管道|:将前面命令的屏幕输出结果作为后面命令的处理对象
  • 重定向输出>:将正确的输出结果保存到>后的指定文件中
  • col:过滤文本中一些特殊控制字符,支持中文
1.man ls|col -b > a.txt
2.需要可以输入中文的环境,但菜单,标题,系统信息等为英文界面,则输入以下语句
	LC_CTYPE=zh_CN.UTF-8
	LANG=en_US.UTF-8

8.命令别名

  • alias:查看所有的别名
  • alias name=value:设置value命令的别名
  • unalias name:取消别名

9.目录操作

  • pwd:打印当前的工作目录
  • cd:切换路径,相对路径没有/,绝对路径/开头
.. 上一级目录
.  当前目录
/  根目录
~  当前登录的用户目录
  • ls:列出该目录下的所有目录和文件
ls -l:列出详细信息
	第一栏位:文件属性
		开头  d:目录
			  -:文件
			  c:字符文件
			  l:链接
		后面:权限
	第二栏位:文件个数,目录=1,文件=目录个数
	第三栏位:该文件或目录的拥有者或创建者
	第四栏位:所属的组
	第五栏位:文件大小
	第六栏位:文件或目录创建的时间
	第七栏位:文件名
  • ll:相当于ls -l,列出详细信息
支持通配符:* 任意多个字符
		   ? 一个字符(想要多个,可以????
  • mkdir:创建目录
单级目录:mkdir cj
多级目录:mkdir -pv cj/a/b/c
	p:连父目录一起创建,否则只建一级
	v:显示创建详情
  • du:查看信息
-a:全部文件
-h:以人类可读的形式
-s:总数

10.文件操作

  • touch 文件名:创建文件
  • file 文件名:查看文件类型
  • cp 被复制的文件名 复制的文件名:复制文件
-r:多级目录使用其递归
  • rm 文件名:删除文件
-r:递归
-d:只删除空目录
-f:强制操作而不提示
  • mv 被移动的文件名 移动的位置:移动文件
  • which 命令程序名:查看命令或程序的位置
  • find 查找范围 查找条件:查找
  • ln [-s] 源文件或目录 目标文件或目录
硬链接:以文件副本的形式存在,不占用实际空间
	    不允许目录创建硬链接
	    只有在同一个文件系统中才可以创建
	    在选的位置上生成一个和源文件大小相同的文件
软链接-s:以路径的形式存在
		 可以跨文件系统
		 可以对不存在的文件名进行链接
		 可以对目录链接
		 只会在选定的位置上生产一个源文件的镜像,不会占用磁盘空间
无论硬还是软,文件都保持同步变化

11.文件内容操作

  • cat 文件名:查看文件内容
  • more 文件名:一页页查看内容
  • less 文件名:一页页查看内容
  • head -n 文件名:查看前n行
  • tail -n 文件名:查看后n行
  • wc 文件名:统计单词数+行数+字节数
  • grep 待查找内容 文件名:查找指定内容

12.网络命令

  • ip addr:查看网卡信息
  • ifconfig:查看网卡信息
  • ping:man ping自查参数
    在这里插入图片描述
  • scp:上传jar包
  • netstat:查看网络状态
netstat -a:查看所有端口
netstat -at:查看TCP端口
netstat -au:查看UTP端口
netstat -ano:查看tomcat端口
netstat -ano|grep 8080:8080端口
  • ss:查看网络状态
  • lsof:查看当前系统进程信息
一般 lsof -i|grep 进程名
列1:进程名称
列2:进程所有者
列3:文件描述符
列4:指定磁盘名称
列5:文件大小
列6:所有节点
列7:打开文件的确切名称
  • telnet:网络连接命令
  • host:分析域名查询工具
    在这里插入图片描述
  • tcpdump:抓取数据包工具,打印所有经过网络接口数据包的头信息

13.进程

  • ps:静态列出系统中运行的进程
ps -a:列出系统中所有运行的进行
ps -ef|frep XXX:列出需要的进程
ps -aux:显示进程信息
  • top:动态监听系统中不同进程
  • kill:杀死结束进程
kill -9 <pid>
  • ulimit:控制系统资源在shell和进程上的分配量

14.系统信息查询

  • echo $xxx:系统环境变量
  • uname:操作系统名
  • hostname:本机映射域名
对应 /etc/hostname 文件
  • dmesg:开机信息
  • uptime:系统运行时间
  • du:磁盘空间情况
  • top:实时显示系统资源情况
  • df:文件系统磁盘空间状态
  • free:系统内存
  • cal:日历
  • date

15.压缩

  • gzip
压缩:  gzip -9 要压缩的文件
解压:  gzip -d 压缩文件
  • tar
压缩:  tar -cvzf 待压缩文件名.gz 要压缩的文件名   
解压:  tar -xzvf 压缩的文件名.gz

16.文件编辑

  • 作用
1.创建或修改文本文件
2.维护Linux系统的各种配件
  • 常用文本编辑器
vi:默认文本编辑器
vim:带颜色
  • 工作模式
命令模式、输入模式、末行模式
  • 工作模式间切换
    在这里插入图片描述

管理用户及文件权限

1.用户和组账号概述

  • 用户账户:普通用户+程序用户(一个程序装上就有一个空间,超过这个空间就不能操作,别的用户有该用户组权限就可以访问)
  • 组账号:基本组(私有组)+附加组(公共组)
  • UID:用户标识符
  • GID:组标识号

2.用户账号管理

  • 用户账号文件
保存用户账号基本信息:/etc/passwd
保存用户密码基本信息:/etc/shadown
  • 手动添加用户名和密码的底层步骤
1.创建home目录,将模板文件拷贝进来
2./etc/passwd中添加用户
3./etc/shadown中添加密码
useradd完成123,但是添加的密码为空,passwd完成3,自定义密码
  • 添加用户账号
useradd [选项] 用户名
	-u:知道UID标记
	-d:知道宿主目录
	-e:指定账号失效时间
	-g:指定用户基本组名
	-G:指定用户附加组名
	-M:不为用户建立并初始化宿主目录
	-s:指定用户登录的Shell
  • 设置更改用户口令
passwd [选项] 用户名
	-d:清空用户密码,使空密码就可以登录
	-l:锁定用户账号
	-S:查看用户账号状态
	-u:解锁用户账号
  • 用户账号的初始化配置文件
1.新建用户时,从/etc/skel目录中复制而来的初始配置文件===针对某用户个人
	~/.profile:每次登录时执行
	~/.bashrc:每次进入新Bash环境时执行
	~/.bash_logout:每次退出登录时执行
2.全局配置文件===针对全局公司
	/etc/bashrc
	/etc/profile
  • 修改用户账号和属性
usermod [选项] 用户名
	-l:更改登录名称
	-L:锁定用户账号
	-U:解锁用户账号
  • 删除用户账号
userdel [-r] 用户名
	-r:连用户的宿主目录一并删除

3.组账号管理

  • 组账号文件
/etc/group:保存组账号基本信息
/etc/gshadow:保存组账号密码信息
  • 添加组账号
groupadd 组账号名
  • 删除组账号
groupdel 组账号名
  • 查询
查询用户身份标识:id 用户名
查询用户所属的组:groups 用户名
查询用户账号的详细信息:finger [-l] 用户名
查询已登录到主机的用户:users、w、who

4.管理文件/目录的权限和归属

  • 查看文件/目录的权限和归属
访问权限
	读取:允许查看文件内容、显示目录列表ls
	写入:允许修改文件内容,在目录中新建、移动、删除文件或子目录
	可执行:允许运行程序、切换目录cd
归属(所有权)
	属主:拥有该文件或目录的用户账号
	属组:拥有该文件或目录的组账号
  • 图解
    在这里插入图片描述
  • 设置文件/目录的权限
1.chmod [ugoa] [+-=] [rwx] 文件/目录--加减方式
	u:属主
	g:属组
	o:其他用户
	a:所有用户
	+:增加权限
	-:去除权限
	=:设置权限
2.chmod nnn 文件/目录--数字方式
  	nnn:三位八进制数
3.-R:递归修改指定目录下所有文件,子目录的权限
  • 设置文件/目录的归属
chown 属主 文件或目录
chown :属组 文件或目录
chown 属主:属组 文件或目录
-R:递归修改指定目录下所有文件,子目录的归属
  • 使用附加权限
SET位权限:针对文件,为了保证安全性
	主要用途:其他用户可以执行该文件,且拥有属组或属主用户的权限
	权限字符s,设置在x位上
	案例:/etc/shadow的权限----------.
		  但是可以通过命令操作
		  /usr/bin/passwd权限-rwsr-xr-x.
		  说明当前用户拥有root|root的权限
	权限类型:
		SUID:对属主用户增加SET位权限
		SGID:对属组内用户增加SET位权限
	设置
		chmod ug(+-)s 可执行文件
		chmod o(+-)t 目录名
粘滞位权限:针对目录
	主要用途:设置公共目录(权限为777),任何用户都能使用
	权限字符t,用户不能删除该目录中其他用户文件,如:tmp、var/tmp临时目录
	设置
		chmod mnnn 可执行文件
			m=4:SUID
			m=2:SGID
			m=1:粘滞位
			可叠加

进程管理与计划任务

1.引导流程

在这里插入图片描述
请添加图片描述

2.chkconfig --list 服务名称

  • ubuntu中可以安装 sysv-rc-conf 来代替
  • 开启某个服务: chkconfig --level 2345 network on
  • centos 8:
systemctl list-unit-files   查看服务
systemctl enable smb nmb    开启指定服务
systemctl disable smb nmb   关闭指定服务

3.ps aux

  • 查看当前系统中所有的进程及信息
  • ps aux|grep 进程名

4.top命令

  • 查看动态的进程排名信息

5.pstree -aup

  • 进程树

6.进程启动的方式

  • 手工启动
1.前台启动:用户输入命令,直接执行程序
2.后台启动:在命令行尾加入“&”符号
	cp /dev/cdrom mycd.iso &
		将cdrom中的镜像文件挂载到当前用户的home目录下的 mycd.iso中
	head -10 mycd.iso
  • 调度启动
1.使用at命令,设置在某个特定的时间,执行一次任务:     
javascript:setTimeout()
2.使用crontab命令,设置按固定的周期(如每天、每周等)重复执行预先计划好的任务
javascript:setInterval() 

7.进程的前后台调度

  • Ctrl+Z
将当前进程挂起,即调入后台并停止执行
按Q键则退出此进程
  • jobs
查看处于后台的任务列表
  • fg
进程的顺序号
将处于后台的进程恢复到前台运行,需指定任务序号
  • Ctrl+C
中断正在执行的命令
  • kill、killall
kill用于终止指定PID号的进程
killall用于终止指定名称的所有进程
	-9 选项用于强制终止
		kill -9 进程编号:强制杀死进程

8.计划任务

  • at命令
在指定的日期、时间点自动执行预先设置的一些命令操作,属于一次性计划任务
	服务脚本名称:/etc/init.d/atd
	设置格式:at [HH:MM] [yyyy-mm-dd]
	然后输入要执行的操作,按ctrl+D结束输入(自动转化为 <EOT>)
	
1.atq命令:查询当前设置的at任务列表
2.atrm命令:删除指定任务编号的at任务
  • crontab命令
按照预先设置的时间周期(分钟、小时、天……)重复执行用户指定的命令操作,属于周期性计划任务
	服务脚本名称:/etc/init.d/crond
	主要设置文件
		 全局配置文件,位于文件:/etc/crontab 
		 系统默认的设置,位于目录:/etc/cron.*/
		 用户定义的设置,位于文件:/var/spool/cron/用户名
	命令
		crontab  -e  [-u  用户名]:编辑
		crontab  -l  [-u  用户名]:查看
		crontab  -r  [-u  用户名]:删除
  • 时间数值的表示

在这里插入图片描述

时间数值的特殊表示方法
	*  表示该范围内的任意时间
	,  表示间隔的多个不连续时间点
	-  表示一个连续的时间范围
	/  指定间隔的时间频率
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值