学习笔记整理_Linux基本命令

linux

操作系统

	也是一款计算机程序
		管理计算机软、硬件
		
分类:
	桌面操作系统
		windows 
		macOS 细节 应用软件不够丰富
		Linux 
	服务器操作系统
		Linux 免费开源
		Windows Server 收费
	嵌入式操作系统
		Linux 
	移动设备操作系统
		Unix ->(minix) Linux -> Android/华为鸿蒙
			 	IOS

特点:

1. 免费开源 -- 极大地加速了linux的发展
2. 长时间运行系统也比较稳定
3. 几乎没有流氓软件和病毒(系统安全性比较好)
4. 多用户、多任务
5. 基于文件

两个基本思想

	一切都是文件 -- 基于文件的操作系统
	每个软件都有确定的用途

版本

	内核版
		linux团队开发出来的操作系统的核心代码,完全免费开源的
	发行版
		第三方的个人或者团队基于内核版进行二次开发而退出的版本
	我们所学习的centos是Redhat旗下的免费版(Red Hat Linux是最著名的Linux版本)	

使用SSH协议

Secure Shell 安全外壳协议

端口

Linux 默认对外只开放22端口,其他端口需要自己开启防火墙。

目录结构

/根目录
	/bin 二进制可执行文件
	/etc 系统的配置文件
	/var/log 程序运行日志存放目录
	/root
	/home

克隆虚拟机需要重新配置ip地址,修改主机名

1. 系统与设置命令

配置静态IP
vim /etc/sysconfig/network-scripts/ifcfg-ens33

	BOOTPROTO=static
	IPADDR=192.168.182.133 
	GATEWAY=192.168.182.2
	NETMASK=255.255.255.0
	DNS1=8.8.8.8
	DNS2=114.114.114.114
	
	重启网卡
	systemctl restart network
修改主机名
hostname		显示当前的主机名
hostname 		新主机名临时修改主机名,重启后就还原了
hostnamectl set-hostname 新主机名		永久修改主机名

网卡 / ifconfig
ifconfig	显示linux当前主机的ip地址
	ifconfig 查询当前激活的网卡
	ifconfig 网卡名 up
	ifconfig 网卡名 down
	ifconfig IP地址
	ifconfig IP地址 netmask 子网掩码
	
ip addr		显示linux当前主机的ip地址
ping ip地址或域名
	测试两台主机之间网络是否连通 需具有DNS服务器解析域名
	-c 指定次数
修改网卡设置:
vim /etc/sysconfig/network-scripts/ifcfg-ens33

账号管理相关命令:
创建用户 useradd 用户名
设置密码 passwd 用户名
修改用户 usermod -l 新名 旧名
删除用户 userdel -r -f 用户名 recursion force

用户组相关命令
添加组 groupadd 组名
修改组名 groupmod -n 新名 旧名
查询指定用户所属组 groups 用户名 
删除组 groupdel -f 组名

管理组成员:
	gpasswd -a 用户名 组名
			-d 从组中删除用户
			-A 指定管理员
			-r 删除密码

系统管理相关命令
date -s “2020-02-02” 设置日期与时间
显示登录使用的用户 logname 
显示当前用户 
	who 显示当前登录系统的用户 
	whoami 

切换用户 su
	su 用户名
		切换到指定用户
	su -c 命令 用户名
		切换到指定用户执行完命令之后回到当前用户
	su - 用户名
		切换到指定用户,并切换相关环境信息

进程相关命令
top 动态实时查看所有进程
	-c 实现显示所有的进程信息(完整命令)
	-p PID 实时显示指定进程的信息
ps 查看当前正在运行的进程信息
	-a 显示所有的进程信息(部分)
	-ef (完整)显示所有进程信息
	-u 显示指定用户的进程
	
kill -9 PID 强制中断指定进程
	杀死指定用户的所有进程:
		killall -u  
		kill -9 $(ps -ef | grep 用户名)

防火墙配置
systemctl status firewalld
systemctl start firewalld
systemctl stop firewalld
systemctl enable firewalld 设置开机自启
systemctl disable firewalld 非开机自启

开放程序端口
firewall-cmd --zone=public --add-port=端口/tcp --permanent 永久开放

关闭程序端口
firewall-cmd --zone=public --remove-port=端口/tcp --permanent 永久关闭

查询所有开放端口
firewall-cmd --list-all

systemctl
查看目前已加载服务
systemctl  list-units \*.service

systemctl status 服务名
systemctl start 服务名
systemctl restart 服务名
systemctl stop 服务名
systemctl enable 服务名 设置开机自启
systemctl disable 服务名 非开机自启

id命令
id 查看当前用户的详细信息(用户id ,群组id ,所属组)
	-g 所属组的id
sudo
	提高普通用户操作权限
	-l 显示自己权限

关机 shutdown now
	-c 取消
重启 reboot

设置时间同步
timedatectl
	status 显示当前系统时间和日期
	set-time "2000-01-01 12:00:00"设置时间
	set-timezones 设置时区
	set-ntp boolean 设置是否时间同步
	
clear 清屏 (Ctrl + L)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VznpYhYU-1592220345711)(F:\develop\Z_JavaEE\第二阶段_Linux.assets\1592206139837.png)]

2. 目录管理命令

常用目录说明

root	管理员默认登录进来的目录,管理员的主目录
home	普通用户登录以后进来的主目录,每个普通用户在这个目录下都有自己的主目录
bin		可执行文件所在目录,学习的大部分命令在这个目录下
etc		配置文件所在的目录
usr		资源共享目录,我们后期的软件通常安装在这个目录下

ls 列出目录
	-a 显示文件夹 包含隐藏文件夹 .表示隐藏文件
	-l

pwd -P 当前工作目录 print working directory

cd 切换目录 change directory
	./ 可省略
	../ 上级目录
	~ 当前用户的home目录
	- 回退到上一次的目录

mkdir 创建目录
	-p 同时创建父目录 make parent directories as needed
rmdir 删除空目录
	-p 当子目录被删除后使它也成为空的话,则顺便一并删除

3. 文件管理命令

在Linux中文件名是区分大小写的

cp 复制
	-a 复制目录时保留链接,文件属性,并复制目录下所有内容
	-r recursive 递归复制
	 cp 文件名 目录/新名

mv 剪切 备份
	同cp
	目录不存在即为 ./新名 成为了重命名
	-u, --update 只在源文件比目标文件新,或目标文件不存在时才进行复制

rm 	-r 递归删除
	-f 不询问直接删除 force

Linux文件基本属性
资源类型
	l link 链接
	- 文件
	d 目录

操作权限
	r 4
	w 2
	x 1
	- 0
角色
	当前用户(属主)
    当前用户所在组(属组)
    其他用户

chgrp -v 组 文件或文件夹
	更改所属组
chown
	更改所属用户
	 -R 用户:组 文件或文件夹 更改所属组及用户
	 
chmod 修改权限
	三位数字 文件/目录
	-R 777 递归授权
	设置属主、属组、其他用户
	u g o a + - =
	chmod u=rwx,g=rw,o=r a.txt

touch 不存在就创建文件,存在就修改时间属性
touch a{1..4}.txt 
touch a{a..f}.txt
	批量创建多个文件
stat a.txt 查看详细信息

vi/vim

Visual Interface

Linux常用的编辑器

	命令模式
		dd 删除当前行
		yy 复制当前行内容
		p 粘贴到光标所在行的下一行
		u 撤销上一步操作
		/字符串 查找	n 向后继续 N 向前继续
	
	编辑模式
		a append
        i insert
        o 当前行下面插入光标
	末行模式 搜索 :/关键字 ,回车
	
	
vim 文件不存在,会打开临时文件,当保存并退出后会真实存在与磁盘
	打开文件会产生文件名 .swq 的交换文件,异常退出此文件不会自动删除
	改动时修改的是交换文件,保存后内容存到真实文件,然后自动删除交换文件
	
	报错就将该交换文件删除即可

查看文件内容
cat
	-n 显示行号
	
less -N 显示行号
	回车 下一行
	空格 下一页
	上下键
	q 退出
	
more 
	回车 下一行
	空格 下一页
	q 退出
	
tail 动态查看后面文件(服务器日志)
	tail -30f 查看最后30行
	
head 查看前面文件
	head -30

grep
grep
	-n 展示包含关键字的行
	-i 忽略大小写
	-c 查找满足条件的个数
	-v 展示不包含关键字的行 --invert-match
	--color 高亮

find
find 起始目录 参数 
	-name '*.java'
	-ctime -3   3天内更新过的目录
	-ctime +3	3天以前

管道符|
将第1条命令执行的结果做为第2条命令执行的条件,管道命令至少有2条以前以前面的结果作为后面的源

重定向
命令>文件 将命令的结果输出到文件中,会覆盖文件中原有内容
命令>>文件 将命令的结果追加输出到文件中,不会覆盖文件中原有内容

echo
echo 字符串 >>文件  在屏幕上输出字符串,可配合重定向使用

AWK文本分析工具
awk -F '分隔符' '/正则表达式/' '{script}' 目标文件
awk -f scriptFile 目标文件
	
	OFS="字符" 以指定字符作为分隔符于结果中显示
	'{BEGIN{}{total=total+$4}END{print total}}'
	
.awk文件
	BEGIN{
		total=0
		math=0
	}
	{
		total+=$4
		math+=$2
	}
	END{
		print "总分为:"+total+"数学成绩为:"+math
	}


软连接(快捷方式)
ln -s 目标文件路径 快捷方式路径

4. 备份压缩命令

gzip
gzip 参数 文件名 -- 压缩后源文件被替换
	-d 解压
	-v 显示过程信息
	gzip * 压缩本目录所有未压缩文件
gunzip 参数 压缩文件 
	-v

tar

调用其他

包文件.tar
压缩文件.tar.gz

tar 必要参数 选择参数 文件
	-c 创建压缩文件
	-C 解压后存放路径
	-v 显示指令执行过程
	-f 指定压缩文件
	-z 调用gzip处理压缩文件
	-t 查看压缩文件/包内容
	-x 解压
	
	-cvf 打包
	-zcvf 压缩
	-ztvf 查看压缩文件内容
	-tvf 查看包内容
	-xvf 解压缩
	

zip

zip -q 不显示指令执行过程 
	-r 递归
unzip 	-- 只能解压.zip文件
	-l 显示压缩文件内容
	-d 指定目录 压缩文件  解压到

新算法 文件更小,但是时间更长
	bizp2 -v 解压并显示详细信息,替换之前的文件
	bunzip2 -v 解压并显示详细信息

5. 网络与磁盘管理命令

netstat 查看网络进程

netstat -lnp | grep 3306
	无参	显示当前所有访问网络的进程
	-a 显示所有连线中的socket
	-i 显示网卡列表
	-n number显示程序的ip和端口号
	-t 只显示tcp协议连接的程序 
	-u 显示udp协议连接的程序
	-l listener 显示监听中的socket 
	-p 显示产能徐的名字 programs

lsblk

查看使用硬盘情况
lsblk -f 显示系统信息

df

df 
	df 文件夹 查看文件夹
	-h 单位换算后的结果
	--total 显示所有信息	

mount 挂载Linux 系统外的设备

新建挂载点(文件夹) 建立与外部设备的连接
	mount -t auto /dev/cdrom 挂载点 开始挂载
	umount 挂载点  卸载

fdisk

创建和维护分区
fdisk -l 显示当前分区情况
	-h 单位换算后的结果
fdisk /dev/sdb 开始指定磁盘分区

6. shell与安装

Linux中常见的软件安装方式

1. 二进制发布包
	相当于windows平台的解压版
	并不保证兼容性
2. rpm安装包 redhat package manager
	并不自动安装依赖软件
3. yum在线安装 yellow dog updater modify
	自动下载安装程序且自动安装依赖
4. 源码编译方式
	手动对源代码编译,最终产生可执行程序

rpm

软件管理
	-v 显示安装详细的过程
	-q 查询是否安装
	-a 列出所有已经安装的软件
	-h 显示安装百分比
	-i 安装指定的rpm软件包
	-e 删除指定的软件包	erase
	--nodeps 安装过程中不检查软件的依赖
	--force 安装中强制覆盖
	
rpm -qa

yum Yellow dog Updater Modified
yum -y 全选yes
	install 软件名 在线安装
 	remove 软件名 卸载
 	list 软件名 tom* 查找
 	info 软件名 查询当前系统是否安装软件
修改yum源 
	进入yum文件目录 /etc/yum.repos.d
	备份源文件 mv CentOs-Base.repo CentOS-Base.repo.back
	下载阿里云的源文件 wget -O CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
	wget 下载工具 -O 新名
	清理缓存 yum clean all
	建立缓存 yum makecache

shell
Linux中的命令解释器 bash
脚本文件.bat .sh

执行脚本
	bash a.sh 
	./a.sh
#! /bin/bash

注释
	# 单行注释
	:<<! 
	多行注释
	!

定义变量
	var=value value不能有特殊字符 数字
	var='value' value原样输出
	var="value" 先变量获取再赋值给var
使用变量 
	$var
	'$var'
	${var}
	"${var}"
只读变量
	readonly 变量名
删除变量
	unset 变量名

命令变量
	var=`命令`
    var=${命令}

定义数组
	arr=(1 2 3 4)
	arr[index]=value
	${arr[index]}
	${#arr[*]} *或@可以获取长度或所有元素

运算
	num1=$((1+1))
	num2=`expr 1 \* 1`
	num3=$((var1+var2))
	((a++)) 仅操作,不引用变量,不要加$
	echo $((++a))

判断字符串
	= 字符串是否相等
	!= 不等
	-z 长度是否为0
	-n 长度是否不为0
	$ 是否为空 不为空0
	$? 获取上一条语句值是真(0)或假(1)

关系运算符
	只能比较数字,或者值为数字的字符串
	-eq [ $a -eq $b ]
	-ne
	-gt
	-lt
	-ge
	-le

boolean运算符
	! 取反
	-o or
	-a and

逻辑运算符
&& 
||
[[ $a -gt 100 && $b -lt 100 ]]

语法
if [ ] then 
	...
elif [ ] then 
	...
else
	...
fi

case
"" )
	;;
"" )
	;;
esac

for var in 1 2 3 4 5
do
done

while
do
done	

7. nginx

加载静态资源
反向代理
负载均衡
邮件服务器

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值