linux笔记
基本
~ 表示当前用户的主文件夹
etc:配置文件
dev:设备
opt: 约定俗成的第三方软件文件夹
mmt : 与media 差不多 挂载U盘等移动设备
proc:进程目录
run : 运行目录
srv :系统服务目录
var : 经常改变的东西
VIM
模式转换

一般模式

gg/H:回到文档开头
b: (before) , 回到词的开头
e: (end) 回到词的结尾
G:跳到整个文档的最后一行
L:跳到当前页的最后一行
编辑模式
进入编辑模式的方法

指令模式

网络配置
三种模式
桥接模式:虚拟机直接连接外部物理网络的模式,主机起到了网桥的作用。这种模式下,虚拟机可以直接访问外部网络,并且对外部网络是可见的。
NAT模式:虚拟机和主机构建一个专用网络,并通过虚拟网络地址转换(NAT)设备对IP进行转换。虚拟机通过共享主机IP可以访问外部网络,但外部网络无法访问虚拟机。
仅主机模式:虚拟机只与主机共享一个专用网络,与外部网络无法通信。
系统管理
服务
基本语法
systemctl start | stop | restart | status 服务名
经验技巧
查看服务的方法 : /user/lib/systemd/system
运行级别
查看默认级别 vi /etc/inittab

CentOS7 的运行级别简化为:
multi-user.target 等价于级别3
graphical.target 等于级别5
查看当前运行级别: systemctl get-default

常用命令
帮助命令
man
help
--help
文件目录类
pwd:绝对路径
cd - : 返回上一个目录
cd ../ :从上一级目录找
cd ./ : 当前目录
以 . 开头的文件/文件夹 : 都是隐藏文件/文件夹
ls
-a : 列出全部的文件
-l : 把当前数据的所有权限也列出
创建目录
mkdir + 文件名 : 可以跟多个文件名,创建多个文件 ; 不能直接创建多级目录
mkdir -p : 创建带路径的目录;
删除目录: rmdir
文件
touch +文件名: 创建空文件;可以直接带上路径的创建
复制: cp 【选项】 source dest; -r :递归复制整个文件夹;
覆盖不提示: 在cp前加上 【\】 即 \cp
rm + 文件名 : 删除 ; -f 强制删除 ; -r 递归删除文件夹;
mv :
mv oldname newname : 重命名
mv movefile target : 移动
cat:查看文件内容
-n : 显示所有的行号
more : 文件内容分屏查看器
空格 : 下翻一页
回车:下一行
Ctrl+F:向下滚动一屏
Ctrl+B : 返回上一屏
q : 离开more
= : 输出当前行的行号
:f : 输出文件名和当前的行号
less:

echo:
echo [选项] [输出内容]
-e : 支持反斜线控制的字符转换
输出重定向 > :
例: ls -l > 文件 (功能描述:列表的内容写入文件a.txt中 、覆盖写)
cat 文件1 > 文件2
追加 >> :
ls -al >> 文件 (列表的内容追加到 文件的末尾)
echo "内容" >> 文件
显示文件头部内容 :
head
-n 行数;
显示文件尾部内容:
tail
-n;
-f 文件 (实时追踪该文档的所有更新) , Ctrl + s :暂停,Ctrl+q : 继续;
软链接: ln
ln -s [源文件或目录] [软链接名]
删除的时候不能多斜杠
rm 软链接名
硬链接:链接到文件对应的inode
时间日期类
date

-s 给系统设置时间
cal 查看日历;
用户管理命令
useradd 添加新用户
su + 用户名 : 切换目录
who am i : 看最原始的用户
whoami: 看当前的用户
sudo
可以修改配置文件,不用输入密码:
修改 /etc/sudoers
文件权限


改变权限
chmod:

-R 将目录的所有文件都修改为相应的权限
chown : 改变所属主
chgrp : 改变所属组
搜索查找
find
find [搜索范围] [选项]

locate
快速定位文件路径
更新 : updatedb
grep
grep 选项 查找内容 源文件
-n : 显示匹配行 行号
tar

磁盘管理类
du 查看文件和目录占用的磁盘空间
du + 目录/文件

df 查看磁盘空间使用情况
df -h
lsblk 查看设备挂载情况
-f : 查看详细的设备挂载情况,显示文件系统信息
mount / umount 挂载/卸载
mount [-t vfstpye] [-o options] device dir ; 挂载设备
umount 设备文件名或挂载点 ; 卸载设备

fdisk 分区


进程管理类
ps

如果想查看进程的 CPU 占用率和内存占用率,可以使用 aux;
如果想查看进程的父进程 ID 可以使用 ef;
kill 终止进程
kill [选项] 进程号
killall 进程名称
-9 :强制停止
pstree 查看进程树

top
实时监控系统进程状态

netstat
显示网络状态和端口占用信息
crontab
系统定时任务
软件包管理
RPM
查询
rpm -qa | grep rpm软件包
卸载
安装
yum
Shell
执行方式
脚本以 #!/bin/bash 开头
用bash 或 sh+ 脚本
输入脚本的绝对路径或相对路径;注意如果在当前文件夹下,需要 ./+ 脚本名称。同时,必须具有可执行权限。
. 或是source
前两种是嵌套shell。
变量
显示当前Shell中所有变量:set
定义变量: 变量名=变量值;撤销:unset
声明静态变量:readonly
提升为全局变量:export
特殊变量
$n
n为数字,1-9 代表参数
0 代表脚本名称
10以上的参数需要用大括号;例 ${10}
$#
获取所有输入参数个数。
$*、$@
$* : 代表命令行中所有的参数,看成一个整体
$@ : 把每个参数区分对待;
$?
最后一次命令的返回状态。如果这个变量的值为0,则证明上一个命令正确执行
运算符
$[运算式]
如果是把 运算结果要赋值到变量上,也要用运算符的格式。
条件判断
基本语法
test condition
[ condition ] (注意前后要有空格)
条件非空即为true
常用判断条件
两个整数之间比较
-eq 等于(equal) -ne 不等于(not equal)
-lt 小于(less than) -le 小于等于(less equal)
-gt 大于(greater than) -ge 大于等于(greater equal)
注:如果是字符串之间的比较 ,用等号“=”判断相等;用“
!=”判断不等。
按照文件权限进行判断
-r 有读的权限(read)
-w 有写的权限(write)
-x 有执行的权限(execute)
按照文件类型进行判断
-e 文件存在(existence)
-f 文件存在并且是一个常规的文件(file)
-d 文件存在并且是一个目录(directory)
流程控制
if

case

for


while

read

函数
系统函数
basename

dirname

文本处理工具
cut

awk
