admin管理员组文章数量:1656145
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/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
加载静态资源
反向代理
负载均衡
邮件服务器
版权声明:本文标题:学习笔记整理_Linux基本命令 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dianzi/1729726276a1211408.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论