Linux
参考笔记 《Linux就该这么学》在线书籍 Linux命令大全(手册) Linux-Tutorial
VM CentOS
环境
VMWare 16.2
CentOS 8.5
创建虚拟机
安装CentOS
KDUMP-实际服务器中需启用,但自己做测试可以先禁用以节省资源
安装界面显示不全,因为屏幕分辨率未被正确识别,要关闭虚拟机修改显示器设置,选择本机真实屏幕分辨率重启安装(重启后要重新走以上步骤)
进入 Centos8.5
系统后,发现桌面上没有任何图标而且右键没有终端/新建等操作,即使使用终端新建一些文件,也无法在桌面上显示
Centos7
默认为X11
桌面版本,但是Centos8
默认为Wayland
,此时需要更换桌面版本,然后就能正常显示了
添加共享文件夹 Windows D:\vm\share\
Linux /mnt/hgfs/share
设置无密登录
远程登录 Linux 系统
测试 Windows 和 Linux 是否相通:
1 |
|
XShell 连接虚拟机:
注意(Linux 默认开启 SSHD 服务):
Linux 世界里 一切皆文件
文件颜色:
绿色 可执行文件,可执行的程序
红色 压缩文件或者包文件
蓝色 目录
黑底白字/白底黑字 一般性文件,如文本文件,配置文件,源码文件等
浅蓝色 链接文件,主要是使用ln命令建立的文件
红色闪烁 链接的文件有问题
黄色 设备文件
灰色 其他文件
文件属性:
环境变量:
配置全局环境变量,用 root
用户权限写入 sudo vim /etc/profile.d/my_env.sh
,使脚本生效 source /etc/profile
VIM
vi(文本编辑器)–[增强版]–>vim(具有程序编辑能力)
1 |
|
网络配置
网络连接的3种形式
查看 Windows 网络配置
从设置进入(或通过WiFi图标查看):设置-网络和Internet-状态-更改适配器选项
或从控制面板进入:控制面板-网络和Internet-查看网络状态和任务-更改适配器设置(界面同上)
查看 Linux 网络 IP 和网关
Linux 网络环境配置
默认自动获取:每次获取的ip可能不同,不适合服务器(ip是固定的)
通过修改配置文件指定固定ip(root用户):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23#修改网络配置文件 当前局域网在Linux中的设备名是ens160(很多是ens33)
vim /etc/sysconfig/network-scripts/ifcfg-eth160
#修改内容
#IP地址(主机名是hadoop100,最后一个网段改为100好记)
IPADDR=192.168.1.100
#网关
GATEWAY=192.168.1.2
#域名解析器(可添加多个 dns和网关保持一致)
DNS1=192.168.1.2
#子网掩码默认255.255.255.0
#重启网络 若报错reboot重启虚拟机
service network restart
systemctl restart network #centos7以后新增
#修改主机名和主机映射文件 重启生效
hostname #查看当前服务器主机名
vim /etc/hostname #当前服务器主机名
vim /etc/sysconfig/network #HOSTNAME属性修改主机名(我的该文件没有内容)
hostnamectl #显示主机名和一些系统相关的信息(CentOS7及以上版本才增加的命令 ctl指control)
hostnamectl set-hostname 主机名 #永久修改主机名且无需重启系统
vim /etc/hosts #主机映射文件C:\Windows\System32\drivers\etc\HOSTS
–Windows主机映射文件 (拷贝出来修改后再替换原文件) 若在该文件下写入www.sharm.com 百度
,则在浏览器搜索百度时会跳转到写入的这个网站中,这叫域名劫持
修改XShell设置:
修改Xftp设置解决文件名中文乱码问题:
系统管理
服务管理
进程 process:一个正在执行的程序或命令
服务 service:启动后一直存在、常驻内存的进程(运行在后台,监听某个端口,等待其它程序的请求–由守护进程daemon守护系统服务,d结尾表示这是守护进程)
1 |
|
setup
查看服务名:在vm中(而不是xshell)使用该命令选择 系统服务
回车
常用服务:
网络服务 network
(CentOS7默认使用的网络服务是NetworkManager) 报错记录
防火墙 iptables
关闭或启用防火墙后立即生效,可通过telnet在Windows下测试:
telnet ip [端口]
利用telnet指令检查Linux的某个端口是否在运行
service/systemctl
方式只是临时生效,当重启系统后,还是回归以前对服务的设置,设置永久生效要使用 chkconfig
指令
系统运行级别
1 |
|
centos7以前查看默认运行级别在 /etc/inittab
ctrl+shft+f2 f1
配置服务开机启动 关闭防火墙
chkconfig设置服务自启动/关闭需reboot重启机器生效
查看当前系统中使用chkconfig工具的服务:
1 |
|
centos6及更早版本使用的服务管理机制叫SysV,centos7使用的服务管理机制叫systemd
centos6的服务管理进程为init,centos7中的服务管理进程为systemd
network服务脚本的存放位置:
1 |
|
systemd是centos7的服务管理机制,列出systemd中的service:
1 |
|
LOAD
:是否load ACTIVE
:是否active SUB
:是否running DESCRIPTION
:描述信息
不加 –all
则不会列出 inactive(未激活状态)的 service
1 |
|
关机 重启
1 |
|
常用命令
帮助指令
man ls (ls是外部命令->其他独立的程序 和shell同级)
help cd (只能显示shell内置命令的帮助信息)
百度更直接
区分内置命令和外部命令-which / type
- 如果是内置命令 shell内置命令
1 |
|
builtin的英文翻译就是内置命令
- 如果是自己写的shell脚本
1 |
|
自己写的shell脚本是外部命令,它的位置是/ask/test.sh
- 常见的find命令
1 |
|
find是一个外部命令,它的位置是/usr/bin/find
注:
sudo cd root 并没有切换到root目录
sudo 是一种程序,用于提升用户的权限
shell是一个命令解析器,sudo cd是错误的,因为cd是shell内置的,不是系统里面的
sudo可以运行系统带的命令,但无法运行系统一个软件中的命令
所以这里要切换到root目录,只能先切换到root用户
常见shell内置命令
1 |
|
内置命令
外部命令
type [cmd]
… 是 shell
help [shell内置命令]
[外部命令] –help
man [cmd] 最全
man -f [内置命令]
tail -f 文件 #实时追踪该文档的所有更新
> 输出重定向(覆盖) >> 追加
ls -l >文件 (功能描述:列表的内容写入文件a.txt中(覆盖写))
ls -al >>文件 (功能描述:列表的内容追加到文件aa.txt的末尾)
cat 文件1 > 文件2 (功能描述:将文件1的内容覆盖到文件2)
echo “内容” >> 文件
ln -s xiyou/dssz/ ./dssz #创建软连接
cd -P dssz/ #进入软连接实际物理路径
删除软链接: rm -rf 软链接名,而不是rm -rf 软链接名/
date +%Y%m%d #显示当前时间年月日
date “+%Y-%m-%d %H:%M:%S” #显示当前时间年月日时分秒
cal [年份] #日历
用户管理
用户登录->自动(默认)进入家目录(/home/k即~) 一个用户不能进入其它用户目录
su切换用户
1 |
|
注销用户 / 退出远程登录:
注销指令在 图形运行级别(级别5) 无效,在 控制台命令行模式(级别3) 下有效:
sudo用root权限执行操作
添加用户k具有root权限,配置成采用sudo命令时无需输入密码
1 |
|
查询用户信息
用户组
用户和组相关文件
/etc/passwd文件: 用户配置,记录用户的各种信息 口令:用户加密密码,加密后的密码保存在/etc/shadow文件
/etc/shadow文件: 口令配置
/etc/group文件: 组配置,记录Linux包含的组的信息