linux操作系统【进阶完整版】

简介: linux操作系统【进阶完整版】

基础命令

tail

tail a.txt

默认查看最后十行数据

tail -8 a.txt

查看最后八行数据

tail -f a.txt

持续更进文件的变化,此时一个新窗口并向a.txt增加内容,内容将被记录到第一个页面中

vim

I:头输入
A:尾输入
0:至开头
$:至结尾
/:搜索
n:向下搜索
N:向上搜素
[num]dd:向下删除num行
yy:复制当前行
P:粘贴到下一行
u:撤销操作
ctrl+R:反向撤销
gg:调到首行
G:调到尾行
dgg:向上全删
dG:向下全删
:w仅保存

systemctl

start 启动

stop 关闭

status 查看状态

enable 开启开机自启

disable 关闭开机自启

systemctl status firewalld

用户和组/权限

普通用户的权限,一般在其HOME目录内是不受限的

一旦出了HOME目录,大多数地方,普通用户仅有只读和执行权限,无修改权限

su/sudo

su - cc
exit //回退至root
sudo 
配置sudo认证
用root visudo
coleak ALL=(ALL)       NOPASSWD: ALL

配置完后可以直接sudo du,随时不用密码切换到root

创建删除

cat /etc/group
groupadd test
groupdel test
useradd [-g -d] 用户名
userdel [-r]
id //查看所属
id test
useradd test4
usermod -aG test test4//不去掉原来的组,相当于此时在两个组里
getent passwd//返回所有用户
getent group

ls -l

序号1,表示文件、文件夹的权限控制信息

序号2,表示文件、文件夹所属用户

序号3,表示文件、文件夹所属用户组

  • - 表示普通文件
  • d 表示目录
  • l 表示符号链接
  • c 表示字符设备文件
  • b 表示块设备文件
  • s 表示套接字文件
  • p 表示管道文件
r表示读权限
w表示写权限
x表示执行权限
针对文件、文件夹的不同,rwx的含义有细微差别
r,针对文件可以查看文件内容
针对文件夹,可以查看文件夹内容,如ls命令
w,针对文件表示可以修改此文件
针对文件夹,可以在文件夹内:创建、删除、改名等操作
x,针对文件表示可以将文件作为程序执行
针对文件夹,表示可以更改工作目录到此文件夹,即cd进入

chmod

chmod u=rwx,g=rx,o=x hello.txt ,将文件权限修改为:rwxr-x--x
其中:u表示user所属用户权限,g表示group组权限,o表示other其它用户权限
chmod -R u=rwx,g=rx,o=x test,将文件夹test以及文件夹内全部内容权限设置为:rwxr-x--x
快捷写法:chmod 751 hello.txt
rwx:421

chown

chown root hello.txt,将hello.txt所属用户修改为root
chown :root hello.txt,将hello.txt所属用户组修改为root
chown root:coleak hello.txt,将hello.txt所属用户修改为root,用户组修改为coleak
chown -R root test,将文件夹test的所属用户修改为root并对文件夹内全部内容应用同样规则

实用操作

快捷键

!搜索最近一次匹配的历史命令

history
 1024  cat test.txt 
 1025  vim test.txt 
 1026  tail
 1027  tail test.txt 
 1028  history 
!t=tail test.txt

ctrl+R

搜索匹配最近的命令
键盘左右键直接get该条命令,可以进行修改

光标移动

ctrl+a 至命令开头
ctrl+e 至命令结尾
ctrl+左右 跳过单词

清屏

ctrl+l

软件安装

yum -y install wget
yum -y remove wget
apt-get -y install wget
apt -y remove wget

软链接

-s选项,创建软连接

参数1:被链接的文件或文件夹

参数2:要链接去的目的地

绝对路径否则无法使用

ln -s `pwd`/aaa /aaa

时区与时间

date

格式化字符串:通过特定的字符串标记,来控制显示的日期格式

%Y 年

%y 年份后两位数字 (00…99)

%m 月份 (01…12)

%d 日 (01…31)

%H 小时 (00…23)

%M 分钟 (00…59)

%S 秒 (00…60)

%s 自 1970-01-01 00:00:00 UTC 到现在的秒数

-d 按照给定的字符串显示日期,一般用于日期计算

修改时区

将系统自带的localtime文件删除,并将/usr/share/zoneinfo/Asia/Shanghai文件链接为localtime文件即可

ip、主机名

查看主机名

hostname
hostnamectl set-hostname coleak_linux

域名解析

先查看本机的记录(私人地址本)

Windows看:C:\Windows\System32\drivers\etc\hosts

Linux看:/etc/hosts

再联网去DNS服务器(如114.114.114.114,8.8.8.8等)询问

配置固定ip

centos中修改/etc/sysconfig/network-scripts/ifcfg-ens33

BOOTPROTO="static"
IPADDR="192.168.10.143"
NETMASK="255.255.255.0"
GATEWAY="192.168.10.2"
DNS1="192.168.10.2"

service network restart

网络传输

请求

ping -c num

ping -c 4 www.baidu.com

wget命令

选项:
-b,可选,后台下载,会将日志写入到当前工作目录的wget-log文件

curl命令

-O,用于下载文件,当url是下载链接时,可以使用此选项保存文件
curl cip.cc //get请求

端口

分类

公认端口:1~1023,通常用于一些系统内置或知名程序的预留使用,如SSH服务的22端口,HTTPS服务的443端口
非特殊需要,不要占用这个范围的端口
注册端口:1024~49151,通常可以随意使用,用于松散的绑定一些程序\服务
动态端口:49152~65535,通常不会固定绑定程序,而是当程序对外进行网络链接时,用于临时使用。

嗅探

nmap 192.168.10.143
netstat -anp|grep 22

进程管理

ps -ef

UID:进程所属的用户ID
PID:进程的进程号ID
PPID:进程的父ID(启动此进程的其它进程)
C:此进程的CPU占用率(百分比)
STIME:进程的启动时间
TTY:启动此进程的终端序号,如显示?,表示非终端启动
TIME:进程占用CPU的时间
CMD:进程对应的名称或启动路径或启动命令

kill -9 进程的PID

kill -9 2388

主机状态监控

系统资源占用

PID:进程id

USER:进程所属用户

PR:进程优先级,越小越高

NI:负值表示高优先级,正表示低优先级

VIRT:进程使用虚拟内存,单位KB

RES:进程使用物理内存,单位KB

SHR:进程使用共享内存,单位KB

S:进程状态(S休眠,R运行,Z僵死状态,N负数优先级,I空闲状态)

%CPU:进程占用CPU率

%MEM:进程占用内存率

TIME+:进程使用CPU时间总计,单位10毫秒

COMMAND:进程的命令或名称或程序文件路径

选项

交互式选项

磁盘信息监控

df -h //硬盘的使用情况
yum install sysstat -y
iostat -x  //查看CPU、磁盘的相关信息
iostat [-x] [num1] [num2]
选项:
-x,显示更多信息
num1:数字,刷新间隔,num2:数字,刷新几次

网络状态监控

sar -n DEV num1 num2
选项:-n,查看网络,DEV表示查看网络接口
num1:刷新间隔(不填就查看一次结束),num2:查看次数(不填无限次数)

环境变量

PATH:搜索命令程序

env|grep PATH
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
echo /$PATH //直接取env中的PATH的value
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

设置环境变量

临时设置,语法:export 变量名=变量值

永久生效

针对当前用户生效,配置在当前用户的: ~/.bashrc文件中

针对所有用户生效,配置在系统的: /etc/profile文件中

并通过语法:source 配置文件,进行立刻生效,或重新登录FinalShell生效

[root@coleak_linux a]# export my_name=coleak
[root@coleak_linux a]# echo $my_name
coleak
vim ~/.bashrc
//export na=coleak
source  ~/.bashrc
echo $na

自定义命令

vim c
//echo coleak
chmod 755 c
vim /etc/profile
export PATH=$PATH:/coleak/test/myenv
source /etc/profile
[root@coleak_linux myenv]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/coleak/test/myenv
c
//coleak
这里输入c,成功执行输出coleak

上传和下载

上传

rz
拖拽上传(推荐)

xshell到物理机(下载)

sz 文件名

压缩和解压

tar

-c,创建压缩文件,用于压缩模式

-v,显示压缩、解压过程,用于查看进度

-x,解压模式

-f,要创建的文件,或要解压的文件,-f选项必须在所有选项中位置处于最后一个

-z,gzip模式,不使用-z就是普通的tarball格式

-C,选择解压的目的地,用于解压模式

-z选项如果使用的话,一般处于选项位第一个

-f选项,必须在选项位最后一个

touch {0..10}.txt
tar -zcvf my.tar.gz [0-9].txt
mkdir ungz
tar -zxvf my.tar.gz  -C ungz

zip/unzip

zip test.zip a.txt b.txt c.txt
将a.txt b.txt c.txt 压缩到test.zip文件内
zip -r test.zip test c a.txt
将test、c两个文件夹和a.txt文件,压缩到test.zip文件内
unzip test.zip,将test.zip解压到当前目录
unzip test.zip -d /home/coleak,将test.zip解压到指定文件夹内

安装部署

MySQL 8.x版本安装

cat /etc/redhat-release
https://dev.mysql.com/downloads/repo/yum/
rpm -ivh https://dev.mysql.com/get/mysql80-community-release-el7-7.noarch.rpm
yum info mysql-community-server
yum -y install mysql-community-server
systemctl start mysqld    # 启动
systemctl enable mysqld   # 开机自启
  1. 获取MySQL的初始密码
# 通过grep命令,在/var/log/mysqld.log文件中,过滤temporary password关键字,得到初始密码
grep 'temporary password' /var/log/mysqld.log
  1. 登录MySQL数据库系统
# 执行
mysql -uroot -p
# 解释
# -u,登陆的用户,MySQL数据库的管理员用户同Linux一样,是root
# -p,表示使用密码登陆
# 执行完毕后输入刚刚得到的初始密码,即可进入MySQL数据库
  1. 修改root密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '密码';  -- 密码需要符合:大于8位,有大写字母,有特殊符号,不能是连续的简单语句如123,abc
  1. [扩展],配置root的简单密码

我们可以给root设置简单密码,如123456.

请注意,此配置仅仅是用于测试环境或学习环境的MySQL,如果是正式使用,请勿设置简单密码

set global validate_password.policy=0;    # 密码安全级别低
set global validate_password.length=4;    # 密码长度最低4位即可
  1. 允许root远程登录,并设置远程登录密码

默认情况下,root用户是不运行远程登录的,只允许在MySQL所在的Linux服务器登陆MySQL系统

请注意,允许root远程登录会带来安全风险

# 第一次设置root远程登录,并配置远程密码使用如下SQL命令
create user 'root'@'%' IDENTIFIED WITH mysql_native_password BY '密码!';  -- 密码需要符合:大于8位,有大写字母,有特殊符号,不能是连续的简单语句如123,abc
# 后续修改密码使用如下SQL命令
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '密码';
  1. 退出MySQL控制台页面
# 退出命令
exit
# 或者通过快捷键退出:ctrl + d
  1. 检查端口
    MySQL默认绑定了3306端口,可以通过端口占用检查MySQL的网络状态
netstat -anp | grep 3306

默认情况下,root用户是不运行远程登录的,只允许在MySQL所在的Linux服务器登陆MySQL系统

请注意,允许root远程登录会带来安全风险

# 第一次设置root远程登录,并配置远程密码使用如下SQL命令
create user 'root'@'%' IDENTIFIED WITH mysql_native_password BY '密码!';  -- 密码需要符合:大于8位,有大写字母,有特殊符号,不能是连续的简单语句如123,abc
# 后续修改密码使用如下SQL命令
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '密码';
  1. 退出MySQL控制台页面
# 退出命令
exit
# 或者通过快捷键退出:ctrl + d
  1. 检查端口
    MySQL默认绑定了3306端口,可以通过端口占用检查MySQL的网络状态
netstat -anp | grep 3306


相关实践学习
CentOS 7迁移Anolis OS 7
龙蜥操作系统Anolis OS的体验。Anolis OS 7生态上和依赖管理上保持跟CentOS 7.x兼容,一键式迁移脚本centos2anolis.py。本文为您介绍如何通过AOMS迁移工具实现CentOS 7.x到Anolis OS 7的迁移。
目录
相关文章
|
14天前
|
人工智能 分布式计算 大数据
Linux操作系统:开源力量的崛起与影响###
一场技术革命的火种,如何燎原? 本文将带您深入探索Linux操作系统的诞生背景、核心特性及其对现代科技世界的深远影响。从1991年芬兰学生Linus Torvalds的一个小众项目,到如今成为支撑全球无数服务器、超级计算机及物联网设备的基石,Linux的发展既是一部技术创新史,也是开源文化胜利的见证。通过剖析其设计哲学、安全性、灵活性等关键优势,结合实例展示Linux在云计算、大数据处理等领域的广泛应用,本文旨在揭示Linux为何能在众多操作系统中脱颖而出,以及它如何塑造了我们今天的数字生活。 ###
|
11天前
|
安全 Linux 编译器
探索Linux内核的奥秘:从零构建操作系统####
本文旨在通过深入浅出的方式,带领读者踏上一段从零开始构建简化版Linux操作系统的旅程。我们将避开复杂的技术细节,以通俗易懂的语言,逐步揭开Linux内核的神秘面纱,探讨其工作原理、核心组件及如何通过实践加深理解。这既是一次对操作系统原理的深刻洞察,也是一场激发创新思维与实践能力的冒险。 ####
|
1天前
|
安全 Linux 数据安全/隐私保护
Vanilla OS:下一代安全 Linux 发行版
【10月更文挑战第30天】
6 0
Vanilla OS:下一代安全 Linux 发行版
|
5天前
|
边缘计算 人工智能 运维
Linux操作系统:开源力量的崛起与影响###
一场技术革命的回顾 回溯至1991年,当Linus Torvalds宣布Linux操作系统的诞生时,世界或许并未意识到这一举措将如何深刻地改变技术领域的面貌。本文旨在探讨Linux操作系统的发展历程、核心特性、以及它如何引领了一场开源运动,重塑了软件行业的生态。从最初的个人爱好项目成长为全球最广泛采用的服务器操作系统之一,Linux的故事是技术创新与社区精神共同推动下的辉煌篇章。 ###
|
3天前
|
人工智能 安全 Linux
|
6天前
|
物联网 Linux 5G
Linux操作系统的演变与未来趋势####
本文深入探讨了Linux操作系统的发展历程,从最初的一个学生项目到如今全球最流行的开源操作系统之一。文章将分析Linux的核心优势、关键特性以及它在云计算、物联网和嵌入式系统中的应用前景。通过具体案例展示Linux如何推动技术创新,并预测其在未来技术生态中的角色。本文旨在为读者提供一个全面而深入的理解,帮助他们认识到Linux在现代计算环境中的重要性及其未来的潜力。 ####
|
6天前
|
人工智能 安全 物联网
Linux操作系统的演变与未来:从开源精神到万物互联的基石###
本文是关于Linux操作系统的演变、现状与未来的深度探索。Linux,这一基于Unix的开源操作系统,自1991年由林纳斯·托瓦兹(Linus Torvalds)学生时代创造以来,已经彻底改变了我们的数字世界。文章首先追溯了Linux的起源,解析其作为开源项目的独特之处;随后,详细阐述了Linux如何从一个小众项目成长为全球最广泛采用的操作系统之一,特别是在服务器、云计算及嵌入式系统领域的主导地位。此外,文章还探讨了Linux在推动技术创新、促进协作开发模式以及保障信息安全方面的作用,最后展望了Linux在未来技术趋势中的角色,包括物联网、人工智能和量子计算等前沿领域的潜在影响。 ###
|
10天前
|
运维 物联网 Linux
Linux操作系统的演变与未来趋势####
本文通过探讨Linux操作系统的历史沿革、当前主流版本的特点,以及其在服务器、云计算和物联网等新兴领域的应用,旨在揭示Linux在现代计算环境中的重要性。此外,文章还将分析Linux面临的挑战与机遇,预测其未来的发展趋势。希望通过这篇文章,读者能够更好地理解Linux的价值,并对其未来充满期待。 ####
|
10天前
|
存储 Linux Shell
深入理解Linux操作系统的启动过程
【10月更文挑战第21天】本文将深入浅出地介绍Linux操作系统的启动过程,包括BIOS、引导加载程序、内核初始化和系统服务启动等环节。通过阅读本文,您将了解到Linux启动过程中的关键步骤和相关概念,以及如何优化启动速度。
|
10天前
|
缓存 算法 安全
深入理解Linux操作系统的心脏:内核与系统调用####
【10月更文挑战第20天】 本文将带你探索Linux操作系统的核心——其强大的内核和高效的系统调用机制。通过深入浅出的解释,我们将揭示这些技术是如何协同工作以支撑起整个系统的运行,同时也会触及一些常见的误解和背后的哲学思想。无论你是开发者、系统管理员还是普通用户,了解这些基础知识都将有助于你更好地利用Linux的强大功能。 ####
21 1