sed
在修改前将原始文件保存为一个带有
.bak
后缀的备份文件使用
-e
选项的主要原因是为了在单次运行中执行多个独立的编辑指令。这在处理需要多步骤修改的文件时非常有用,因为它允许你在不重复读写文件的情况下连续应用多个修改
sed -i.bak 's/#\?\(AllowZoneDrifting*\).*$/\1=no/' /etc/firewalld/firewalld.conf
sed -i.bak -e 's/#IgnoreRhosts/IgnoreRhosts/' -e 's/IgnoreRhosts[[:space:]]no/IgnoreRhosts yes/' /etc/ssh/sshd_config
tee
从标准输入读取数据并重定向到标准输出和文件
#输出到标准输出
echo "hahah" | tee
#输出到文件中,并且输出到标准输出
echo "example" | tee output.txt
cat largefile.log | grep "ERROR" | tee error_output.txt | less
-(代表从管道读取数据)
cat http.yaml | kubectl apply -f -
exec
命令用于执行另一个命令,但不会创建新的进程
exec "$@"
过滤#和空行
grep -Pv "^\s*(#|$)" < 1.tt
随机字符
strings /dev/urandom
禁止登录
The administrator's other duties | Linux.org
/etc/hosts.allow
/etc/hosts.deny
我也不知道这是属于什么
exec 9<> /dev/tcp/www.baidu.com/80
echo -e "GET / HTTP/1.0\n" >& 9
cat >& 9
查看你的linux支持文件系统有哪些,查看下面这个目录
ls -l /lib/modules/$(uname -r)/kernel/fs/
系统目前已加载到内存中支持的文件系统有:
cat /proc/filesystems
fsck(文件系统检测)
当你linux服务器不正常关机导致磁盘损坏的情况下,可以在单用户模式下 修复fsck /dev/sda,或者把硬盘拔下来插到另一个机器上fsck修复
NFS
启动NFS需要启动rpcbind服务,因为NFS 的端口是随机的,每次启动都需要向RPC注册端口号
{}
linux中{}用法非常广泛,批量重命名、创建、文件,参数扩展,管道符号组合,来提高工作效率
touch file{1..10}.txt
echo file{a..c}.txt 输出多个文件
ls | xargs rm -rf {} 删除当前目录下的所有文件
eog
是linux的内部内置的图片查看器
eog 路径/图片名
pkill -9 -t pts/2
tty服务器
pts远程登陆
命令
od
以二进制的方式读取文件内容!
du
du -h / -d 2 | sort -rh 人性化方式查询统计/下深度为2的占用空间的大小 最后以人性化的方式排序(就是方便人看的)
非交互时创建密钥ssh-keygen -f ~/.ssh/id_rsa -N '' -q
sudo -s 命令启动一个新的 shell,但继承了当前用户的环境变量
sudo -i 命令会启动一个新的登录shell,将当前工作目录更改为 root 用户的主目录,并使用 root 用户的环境变量
curl
curl -H"Host: nsd.tedu.cn" http://192.168.1.51
-H 指定一个域名 给ip穿了一个外套让地址栏以为是域名解析的
要传递给服务器的标题行自定义标题
at(执行一次)
但是crontab 主要用来提交不断循环执行的job, 而at 用来提交一段时间后执行的job(执行完就自动删除整个job)
at 16:20
ctrl+d结束输入
echo "#!/bin/bash
shutdown -r now" > shut.sh
chmod +x shut.sh
at -f /root/test/shut.sh 09:05
at -l您可以列出“at”队列中的命令
at -r (序列号)取消执行
\cp
强制覆盖
chcon
修改对象(文件)的安全上下文
rename
用字符串替换的方式批量修改文件名
rename 源字符串 目标字符串 文件列表
rename .txt .txt.bak *
PS1
PS1是Linux终端用户的一个环境变量,用来定义命令行提示符的参数
将上次命令执行是否成功的返回值放到提示符里面去
export PS1="[\$?]${PS1}"
startx
启动x windows
runlevel
runlevel打印系统的上一个和当前运行级别
N”表示自系统启动后运行级别尚未更改
who -r
systemctl get-default
zcat
显示压缩包中的内容
uptime
开机时间 几个用户 平均负载 5 10 15分钟 15分钟不应该大于CPU总核心数
lscpu
查看CPU详细信息
物理核心数
线程数
逻辑核心数量.......
df -h
显示硬盘的相关的信息
last
last代表登录成功的记录
lastb登录失败的记录
ps -C mysql
用来指定所执行的命令名称,这里也就是让ps仅仅显示mysqld命令所产生的进程的信息
echo
-e 启用反斜杠转义的解释
-n 不要输出结尾换行符
echo -e "\033[32mxxx\033[0m"
echo -e “\033[字背景颜色;文字颜色m字符串\033[0m”
0m将颜色重置
echo -e "\033[31;5;35myhl\033[0m" #闪动
0关闭所有属性 1高亮显示加粗 4下划线 5闪烁 7反显 8消隐
tput setaf 1
>设置颜色终端
xargs
给其他命令传递参数的一个过滤器
cat xxx|xargs 单行显示
watch
可以将命令的输出结果输出到标准输出设备,多用于周期性命令 /定时命令
帮你检测一个命令运行结果
watch -n 3 -d uptime #就是每隔3 秒 高亮显示变化的区域
nl
为文件添加行号 nl /etc/passwds
这些文件都是干什么的
/etc/motd
登录shell后显示的内容
/etc/issue
系统开机时候显示的内容 ,用一些参数 来显示 例如 -r ==uname -r
/etc/rc.d/rc.local
这个配置文件会在用户登陆之前读取,这个文件中写入了什么命令,在每次系统启动时都会执行一次
/etc/sudoers
sudo命令对应的用户权限授权配置文件为/etc/sudoers
主机名=(提权的用户)NOPASSWD: 命令
授权什么人,在什么主机,以什么人的身份,执行什么命令
/etc/systemd/system/default.target
默认运行级别
其他
文件内容读取到变量中
a=$(<a.sh) 利用了标准输入和$()
echo $a
编译解释型区别
编译型语言 编译一次之后就可以直接运行 效率高
解释性语言 每次执行都需要翻译效率低
passwd --stdin xxx <<< 密码
我们平常写的: echo 123 | passwd --stdin xxx
开机顺序
开机自检
cpu 内存 显卡没问题交给系统控制-------- 检测能够引导出系统的设备
MBR引导
从本机硬盘启动系统的时候 从第一个扇区中的分区调用GRUB-------将控制权交给GRUB
GRUB菜单
多系统引导程序供用户选择来加载内核文件将控制权交给内核------通过取/etc/grub2/grub.cfg获取内核镜像文件系统路径
加载内核
介于硬件与系统程序之间 负责资源的分配调度 完全控制OS运行过程 -----把内核与镜像文件系统加载到内存中
init进程初始化
为了进一步系统引导 linux 内核首先将系统中的/sbin/init程序加载到内存中运行 init负责进一步完成一系列初始化过程最后等待加载硬件驱动把init进程加载到内存中运行 用户登录--------加载硬件驱动程序,内核把init进程加载到内存中运行
三剑客
sed -n '/^port/Ip' /etc/ssh/sshd_config 忽略大小写 I (大写i)
sed 's%xiao(.*)$%#&%g' 过滤出xiaoXXXX结尾的 &代表前面匹配到的字符 -------给配置文件加注释
sed -ri '/^root/!d' /etc/passwd 过滤处非以root开头的行
egrep "bash|nologin$" /etc/passwd | sed 's/:.*//' 过滤处以bash或者nologin结尾的行并且把从:开始到行尾 删除
sed -r '/bash|nologin$/s/.*//p' /etc/passwd | grep -v "^$" 找出符合条件的名字
VIM中那些快捷健
看文件名
:set ls=2 可以看到文件名(在配置文件中加一行)
ctrl +g
:f
:!pwd
快捷使用方式
![](https://i-blog.csdnimg.cn/blog_migrate/d16267423672d38112b04dbb67cd32e7.png)
!!执行上一条命令 g是全局的意思 s替换
![](https://i-blog.csdnimg.cn/blog_migrate/052afc834746c6c8e89d246d0b3f36ad.png)
^^重复执行上一次操作,只做一次替换