linux基础
基础概念
Linux系统内核指的是硬件抽象层、硬盘及文件系统控制及多任务功能的系统核心程序。 Linux操作系统是由Linux内核与各种常用软件的集合产品
shell:shell是系统的用户界面,他起到命令解释器的作用,能够把用户输入翻译成内核能够理解的内容
文件目录
bin -> usr/bin:普通用户使用的命令
sbin -> usr/sbin:管理员使用的命令
dev:设备文件(usb等连接到系统的任何设备)和特殊文件(块设备和字符设备等)
boot:引导加载程序文件
etc:配置文件
home:家目录,存放普通用户的个人档案
lib -> usr/lib:系统库,共享库文件以及内核模块文件
lib64 -> usr/lib64:专用于x86_64的辅助共享文件库
media:便携移动设备挂载点
mnt:临时文件系统挂载点
opt:第三方应用安装的地方
proc:输出内核与进程信息相关的虚拟文件系统
root:系统管理员的主目录
run:运行中进程相关的数据,存储进程的pid文件
srv:系统上运行的服务用到的数据,包含服务器特定服务相关的数据
tmp:临时文件存放位置,重启时清空
usr:二进制文件、库文件、文档、二级程序的源代码
var:存放着经常发生变化是数据文件
绝对位置、相对位置
常用命令
ip a 查看ip
ssh 用户名@ip
yum install 包名 安装软件包
hostnamectl set-hostname 主机名 修改主机名
systemctl disable firewalld 关闭防火墙开机自启
poweroff关机
pwd:查看当前所在目录
关闭selinux
setenforce 0
sed -i "s/=enforcing/=disabled/g" /etc/sysconfig/selinux
配置防火墙
firewall-cmd --permanent --add-service=ftp
firewall-cmd --reload 12
初始化
yum install -y bash-completion //自动补全
yum install -y vim
hoatnamectl set-hostname server1 //修改主机名
systemctl disable firewalld //关闭防火墙开机自启
//做完后记得拍快照
基础指令
echo 字符串:输出字符串
whoami:输出当前用户名
date:查看当前时间
ls:查看当前目录的文件:
-a:查看所有文件
-d:目录
-l:将文件的详细信息以长格式的形式展开,可以直接输入ll
-h:将文件的大小以人看得懂的单位显示
-t:按时间逆序排序
-r:文件名逆序,默认是顺序
-i:打印inode号
命令后面的参数有两种-短参数和--长参数,短参数可以多条合并
history:查看命令历史
-a:追加记录到.bash_history
-d id:删除历史中指定的命令
-c:清空历史命令
!id:执行对于命令
!$:执行上一个命令的最后一个参数,如果没有参数,就执行命令本身
!string:查找以string开头的命令
^R:搜索历史命令
.bash_history文件记录了所有的命令历史,但是不是同步更新
alias str='cmd':别名,临时生效
想要永久别名需要修改/etc/bashrc,alias str='cmd'
cd des:切换目录
pwd:显示当前目录
文件管理
mkdir [-] name:创建目录
-m:配置文件权限
-p:递归创建
-v:显示创建过程
mkdir -pv /home/file{a..d}#一次性创建多个文件
touch name:创建新文件,当文件/目录已存在时,会更改其时间属性
cp [] src des:拷贝文件和目录
-f:强制,如果目标文件依旧存在且无法开启,则删除后再来一次
-i:如果目标已存在,覆盖前先询问,默认cp=ci -i
-l:复制为硬链接
-s:复制为软连接
-d:如果目标是链接,想要复制连接而非复制原文件,则使用这个,只复制连接属性
-p:连同属性一起复制过去
-r:递归
-a:-pdr
-u:如果des比src旧才升级
-v:显示过程
src为单个文件:
des不存在,则把src写入到des中
des存在,覆盖
src存在,des是目录:创建并写入
src是多个文件
des必须是目录,src为目录:-r
des为目录:
des不存在:创建
des存在:写入,如果文件已存在则覆盖
des为文件:报错
mv src des:移动,可以改名
rm [] file:删除
-r:递归
-f:强制
-v:详细过程
建议移动到对应文件夹使用!以防从入门到删库跑路!
cat:一次性加载所有内容,顺序
tac:同cat,但是逆序
less:不会一次性加载所有内容,空格翻页,回车加载一行,可以回看
more:和less类似,但是不可回看
head:查看文件开头部分
-n:指定行数
tail:从文件尾部读取,并且会监控文件的更新
-n:指定行数,``-n +10``表示从第十行到结尾
-f:循环读取,监视更新
grep 'str' file:对内容进行过滤
vi/vim
光标跳转
上下左右
上下左右
#command:跳转#个字符
单词跳转
w:下个单词的词首
e:下个单词的词尾
b:上个单词的词首
#command:跳转#个单词
行首行尾跳转
^:行首非空白字符
0:行首
$:行尾
行间移动
#G:跳到第#行
G:跳到尾巴
gg:跳到开头
文本编辑
删除
d:配合光标跳转删除
d^
d$
d#command
d0
dw
de
db
dd:删除光标所在行
#dd:删除多行
ggdG:删除全部
x删除光标所在字符
#x
复制剪切粘贴撤销
y,复制,用法类d
yy 以行为单位
#yy #行
ygg
yG
p粘贴
u撤销
模式转换
插入模式
a:选中字母后
i:选中字母
o:选中一行下面新建一行
A:行尾
esc:退出
末行模式
:
#:进入第几行
w:保存
w filename:另存为
q:退出
command!:强制
x 、ZZ:保存并退出
X:加密文档
r filename:读入文件到当前行后
# r filename:读入文件到5行后
查找替换
s/old/new/选项(g全文,c交互确认) 替换
50,100 s/man/MAN/gc 把50到100的man换成MAN并确认每一个替换
,$ s/.*// 从光标所在行开始一直到最后替换为空
如果出现替换文本里面有/,担心会造成歧义,可以使用#或者@来替代/
环境配置
在vim里面输入的都是临时的配置,如需永久环境,个人修改自己目录下的.vimrc,全局修改/etc/vimrc
set nu:行号
set nonu:取消行号
set ai:自动缩进
set noai:取消自动缩进
set ic:忽略字符的大小写
set noic:不忽略
set hlsearch:高亮搜索
set nohlsearch:不高亮
set sm:括号匹配
set nosm:不匹配
help:帮助