Linux基础
Linux概要
- 操作系统:管理计算机软硬件的程序
- Linux特点
- 基本思想
- 一切都是文件
- 每个软件都有确定的用途
- 支持多平台
- 开源免费
- 基本思想
用户操作
账号管理
- 账号管理需要root权限
- 登陆用户:
su 用户名
- 推出登陆:
Ctrl + D
- 上下键能出现之前的命令
-
创建用户:
useradd (选项) 用户名
-
设置密码:
passed (选项) 用户名
- 密码不显示
- 密码要求
- 数字/字母
- 大于8位
- 不能设置回文
-
修改用户:
usermod ...
- 修改用户名:
usermod -l rex wmh
- 修改用户名:
-
删除用户:
userdel (选项) 用户名
- 强制删除:
userdel -r -f 用户名
- 强制删除:
显示用户信息
- 显示登录账号的信息
- 语法:
logname [--help][--version]
- 选项:
- --help:帮助
- --version:版本信息
切换用户
- 语法:
su 用户名
- 选项
su -c 命令 用户名
:用此账户执行条命令
用户组
- 创建用户组:
groupadd [选项] 用户组名
- 修改用户组:
groupmod [选项] 用户组名
- 查询用户所属组:
groups 用户组名
- 删除用户组:
groupdel 用户组名
用户管理
-
语法:
gpasswd(选项)组名
-
选项
- -a:添加用户到组
- -d:从组删除用户
- -A:指定管理员
- -M:指定组成员和-A的用途差不多
- -r:删除密码
- -R:限制用户登入组,只有组中的成员才可以用newgrp加入该组。
-
查看组内成员:
grep 'kafazu' /etc/group
系统管理
日期管理
- 查询日期:
date [参数]
- 选项
- -d<字符串>:显示字符串所指的日期与时间,字符串加双引号
- 字符串格式:"yyyy-mm-dd hh:mm:ss"
- -s<字符串>:根据字符串来设置日期与时间,字符串加双引号
- 需要root权限
- -u:显示GMT
- CST:北京时间
- --help:帮助
- --version :显示版本信息
- -d<字符串>:显示字符串所指的日期与时间,字符串加双引号
id命令
- 查询登录账户的信息:
id
sudo命令
- 提高普通账号的权限:
sudo 命令
top命令
- 实时显示process动态:
top [参数]
- PID:每个进程的id
- USER:进程所属的用户
- PR/NI:优先级
- VIRT:虚拟内存量
- S:运行状态
- R:run
- S:sleep
- 结束监控快捷键:
q
- 参数
- -c:显示完整command命令
- -p pid:监控指定进程
ps命令
- 静态查看正在运行的进程信息:
ps [参数]
- 参数
- -A:查看全部的进程信息
- -ef:查看全部的进程信息(完整)
- -u 用户名:查看属于指定用户的进程信息
kill命令
- 中断进程:
kill pid
kill -参数 pid
- 参数
- -9:强制结束(酒杀)
- 中断用户的使用进程
kill -9 $(ps -ef | grep 用户名)
killall -u 用户名
关机命令
-
关机:
shutdown
- CentOS7默认延迟一分钟关机
- 立即关机:
shutdown -h now
-
延迟关机:
shutdown +n "xxx"
- n:指n分钟之后关机
- "xxx":关机的警告信息
-
重启:
shutdown -r +n "xxx"
-
取消关机:
shutdown -c
重启命令
- 立即重启:
reboot
who命令
- 显示当前登录系统的用户:
who [参数]
- 参数
- -H:带标题显示
timedatectl命令
- ntp时间服务器:用于同步计算机时间
- 相关命令
- 查看服务器时间与时区:
timedatectl
- 设置时区:
timedatectl set-timezone "Asia/Shanghai"
- ntp关闭:
timedatectl set-ntp false
- ntp开启:
timedatectl set-ntp true
- 查看服务器时间与时区:
clear命令
- 清屏幕:
clear
目录管理
目录概要
-
根目录:/
-
系统配置文件:etc
-
系统预设执行文件:bin、sbin、usr
-
运行日志文件:/var/log
-
切换目录
- 切换目录:
cd 目录名
- 相对路径:以当前目录
- 绝对路径:从根目录/开始
- 目录回退:
cd ..
展示目录
- 展示目录:
ls [参数] 目录名称
- 参数:
- -l:详细信息
- -a:显示隐藏文件
- -al:所有文件的详细信息
- 权限:
- d:目录
- -:文件
- 属主
- 属组
- 大小
- 最后一次访问时间
- 文件名
- 权限:
当前目录
- 查看当前目录:
pwd [-P]
创建目录
- 创建目录:
mkdir 文件夹名称
- 创建多级目录:
mkdir -p 文件夹名称1/文件夹名称2
删除空目录
- 删除空文件夹:
rmdir 文件夹名称
- 删除多级空文件夹:
rmdir -p 文件夹名称1/文件夹名称2
删除文件
- 删除单个目录/文件:
rm 文件路径
- 删除多层目录与其文件:
rm -r 文件路径
- 忽略提醒:
rm -p 目录
复制文件
- 复制单个文件:
cp aaa/a.txt bbb
- 复制整个文件夹:
cp -r aaa/* bbb
移动文件/重命名
- 移动文件:
mv 文件 目录
- 文件重命名:
mv 文件 文件
- 文件夹移动/重命名:
mv 目录 目录
目录权限属性
-
符号权限:
-
权限分类
- -:没有权限
- r:读
- w:写
- x:执行
-
位数含义:
-
第1位:格式
-
-:文件
-
d:目录
-
l:链接文件
-
-
2-4位:属主权限:u
-
5-7位:属组权限:g
-
8-10位:其他用户权限:o
-
全部身份:a
-
-
符号
- +:加权限
- -:减权限
- =:设定权限
-
-
数字权限
权限 缩写 数字符号 读 r 4 写 w 2 执行 x 1 无权限 - 0 数字权限 = 数字和
目录权限修改
chgrp命令
- 更改目录的属组:
chgrp -v 属组名 目录
chown命令
- 更改目录的属主:
chown 属主名 目录
- 更改目录的属主和属组:
chown [参数] 属主名:属组名 目录
- -R:处理目录及其子目录
chmod命令
- 更改目录的访问权限:
- 数字权限:
chmod -R 符号权限 目录
- 符号权限:
chmod u=rwx,g=rw,o=r 目录
chmod -R a=rwx 目录
chamod -R g+x,o+r 目录
- 数字权限:
文件管理
touch命令
-
创建一个文件/修改时间属性:
touch a.txt
-
创建多个空文件:
touch a{1..5}.txt
-
查看文件详细属性:
stat 文件名
vim编辑器
vi/vim简介
- vi
- 只能编辑文本,不能排版
- 不支持鼠标
- 没有菜单
- 只有命令
- vim
- vi的升级版
- 代码补全,编译...
vim的三种模式
- 三种模式
- 阅读:命令模式
- 编辑:编辑模式
- 保存:末行模式
- 模式的切换:
- 命令 --> 编辑:
i
- 编辑 --> 命令:
Esc
- 命令 --> 末行:
:
- 末行 --> 命令:
Esc Esc
- 命令 --> 编辑:
打开文件
- 打开文件:
vim 文件名
- 如果文件存在:打开文件
- 如果文件不存在:打开临时文件,保存退出后会新建文件
进入编辑模式
i
:当前字符前插入I
:行首插入a
:当前字符后插入A
:行末插入o
:行后添加一行O
:行前添加一行
保存文件
:q
:无操作退出:q!
:不保存退出:wq
:正常保存退出:wq!
:强行保存退出
vim定位行
- 查看文件并定位到指定行数:
vim 文件名 +行号
异常处理
- 若vim异常退出,磁盘中会存有交换文件(.swp)
- 删除交换文件即可
文件查看
cat命令
- 查看小型文件内容:
cat 文件
- 查看小型文件内容(显示行号):
cat -n 文件
less命令
-
查看大型文件内容:
less 文件
-
查看大型文件内容(显示行号):
less -N 文件
-
退出阅读:
q
tail命令
- 查看文件的最后十行:
tail 文件
- 查看文件的最后...行:
tail -... 文件
- 动态显示最后十行:
tail -[...]f 文件
- 指定最后...行,默认10
- 退出:
Ctrl + C
- 显示文件最后...个字符:
tail -c ... 文件
grep命令
- 查找文本:
grep [参数] 关键字 文件
-n
:带行号查找-a
:忽略大小写-v
:不展示
- 查找进程:
ps -ef | grep sshd
- 求进程个数:
ps -ef | grep -c sshd
- 求进程个数:
重定向输出
- 重定向:将需要输出打印的文本保存到文件
- 语法:
- 覆盖:
cat a.txt > b.txt
- 追加:
cat a.txt > b.txt
- 覆盖:
管道
- 管道:将一个命令的输出作为另一个命令的输入
- 语法:
ps -ef | grep java
ls --help | more
echo命令
-
展示文本:
echo 字符串
-
覆盖写入到文件:
echo 字符串 > 文件
-
追加写入到文件:
echo 字符串 >> 文件
-
追加保存错误信息:
错误语法 &>> 文件
软连接
- 软连接:快捷方式
- 原理:软连接 --> 文件名的地址 --> 文件名 --> 文件数据
- 生成软连接:
ln -s 原目录 新目录
find命令
- 查找文件/目录
- 本目录下按名称查找:
find . -name "*.txt"
- 根目录下按时间(...天内)查找:
find / -cname -...
- 本目录下按名称查找:
压缩
gzip命令
- 压缩文件:
gzip 文件
- 解压文件:
gzip -dv 文件
gunzip命令
- 解压文件:
gunzip 文件
tar命令
- 打包文件:
tar -cvf 打包文件名 文件名
- xxx.tar
- 压缩文件:
tar -zcvf 压缩包名 文件夹/文件名
- xxx.gz
- 查看压缩包:
tar -ztvf 压缩包名
- 解压:
tar -zxvf 压缩包名
zip压缩
-
压缩文件:
zip -q -r 压缩包名 文件/文件夹
- xxx.zip
-
查看压缩包:
unzip -l 压缩包名
-
解压文件:
unzip -d 解压目录 压缩包名
网络
hostname命令
- 查看主机名:
hostname
- 更改主机名(临时):
hostname xxx
- 改配置文件:
/etc/sysconfig/network
ifconfig命令
- 显示网卡信息:
ifconfig
- 关闭网卡:
ifconfig 网卡名 down
- 启用网卡:
ifconfig 网卡名 up
- 配置ip地址:
ifconfig 网卡名 ip地址
- 配置ip地址和子网掩码:
ifconfig 网卡名 ip地址 netmask 子网掩码
ping命令
- 检测是否联通:
ping ip/域名
- 指定接收包...次:
ping -c ... ip/域名
netstat命令
-
详细连接情况:
netstat -a
-
网卡列表:
netstat -i
域名映射
- 域名映射:主机名作为ip地址解析
- 修改
/etc/hosts
文件
yum命令
- yum:用于查找安装下载卸载软件
- 安装tree:
yum -y install tree
- 卸载tree:
yum remove tree
- 查找tom开头的软件:
yum list tom*
更改yum源文件
-
安装下载工具:
wgetyum install -y wget
-
下载阿里云的Centos-7.repo文件:
wget-OCentOS-Base.repohttp://mirrors.aliyun.com/repo/Centos-7.repo
-
清理之前的缓存,并重新加载yum:
yum clean all
-
建立一个缓存文件:
yum makecache
-
查找软件,验证阿里云的yum源是否可以正常使用:
yum search tomcat
rpm与yum
- rpm:只能本地安装程序
- yum:在线下载并安装
JDK
- 步骤:
- 卸载(centos自带精简版jdk)
- 下载并安装
- 配置path