linux 下 “一切皆文件”
进入单用户模式
1、找到Linux 16的那一行,将ro改为rw init=/sysroot/bin/sh
2、Control+x ,使用单用户模式启动
3、使用下面的命令访问系统chroot /sysroot
4、重置密码 passwd root
5、更新系统信息touch /.autorelabel
6、退出exit,重启reboot
界面切换
Ctrl + Alt + F1 ~ F7
CLI 命令行界面(Command Line Interface for batch scripting)
GUI 图形用户界面(Graphical User Interface)
LSB(全称:Linux Standards Base)
更改yum源
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
#curl -o等同于 wget -O
安装epel扩展源:
yum -y install epel-release
更改epel源
mv /etc/yum.repos.d/epel.repo /etc/yum.repos.d/epel.repo.backup
mv /etc/yum.repos.d/epel-testing.repo /etc/yum.repos.d/epel-testing.repo.backup
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
禁用root账号远程登录
/et/ssh/sshd_config
PermitRootLogin no
查看版本
cat /etc/os-release
配置静态ip
vim /etc/sysconfig/network-scripts/ifcfg-[网卡号]
IPADDR=
NETMASK=
GATEWAY=
DNS1=
BOOTPROTO="dhcp" ##dhcp static
ONBOOT="yes" #是否开机启动
远程执行命令
ssh [user]@[host] [command]
使用本地可用密钥来授权远程计算机上的登录
ssh-cpoy-id
ldconfig
ldconfig是一个动态链接库管理命令,为了让动态链接库为系统所共享,还需运行动态链接库的管理命令.
source
在当前bash环境下读取并执行FileName中的命令。
磁盘分区
fdisk -l 查看磁盘列表
fdisk /dev/disk_name 对指定磁盘进行分区
n 创建新分区
p 主分区
1-4 选择创建主分区数量
wq 保存并退出
创建文件系统
mkfs.ext4 /dev/disk_name
挂载磁盘
mount /dev/disk_name /mount_point
压缩/解压命令
tar -zvxf/-zvcf
-z 用"gzip"来压缩/解压缩文件(.tar.gz)
-j 代表使用"bzip2"程序进行文件的压缩(.tar.bz2)
-v 详细报告tar处理的文件信息
-x 从档案文件中释放文件。(解压)
-c 创建一个新文件(压缩)
-f 使用档案文件或设备
tar -C [directory DIR] 指定解压路径/压缩路径
指定用户运行程序,不指定用户默认为root权限
sudo -u [user_name]
su 切换用户
ln -s 源文件 目标文件
文件查找 find
find path -mtime -n -type f
-mtime -n 预估时间n天内
-mtime +n 预估时间n天前
-type f 查找类型 f表示文件
-maxdepth 1 查找深度 1级目录
反撇号
`commant` 反撇号里面的命令先执行
kill -9 `ps -ef | grep zabbix |awk ' { print $2 } ' `
du -sh 查看目录/文件大小
bit和Byte
b : bit 位或比特 ,一个字节等于8位
B :Byte 字节 ,一个汉字占2个字节
Mbps=Mbit/s 即兆比特每秒
wc (word count)
wc -l 只显示行数
文件查看
tail -n +10 从第10行开始显示
head -n 1 只显示一行
tail -n +10 | head -n 1 只显示第10行
grep命令
grep -v "#" 不显示包含“#”的行
grep -v ^$ 不显示空行
grep -E "|" 正则表达式扩展,双引号内以管道命令分隔多个条件。
grep -C 5 foo file 显示file文件里匹配foo字串那行以及上下5行
grep -B 5 foo file 显示foo及前5行
grep -A 5 foo file 显示foo及后5行
sed 文件流处理
sed -i '$a111' /etc/profile ##在文件末尾新增($a)内容111 --a在下一行插入,---i在上一行插入
sed -i 2d /file_name ##删除文件第2行
sed -i '2,5s/word1/word2/g' /file_name ##将第2-5行中word1改成word2
##替换标志 g表示全局global替换(即替换目标的所有出现)
i表示大小写不敏感查找,I表示大小写敏感
c表示需要确认
sed -i "1,\$s/123.*/$PATH/g" ""双引号允许转义,\$表示$(即末行),正则匹配,环境变量$PATH
大小写转换
tr '[a-zA-Z]' '[a-zA-Z]'
Shell文件分界符<<EOF
分界符后面的内容被当成标准输入传递给<<前面的命令,直到再次遇到这个文件分界符
command <<EOF
....
....
EOF
SNMP协议
snmpwalk -c [community] -v 2c [ip] [OID]
环境变量
1、显示环境变量
echo ${PAT}
2、设置一个环境变量
export 【只对当前shell(BASH)有效(临时的)】
/etc/profile 【对所有用户生效(永久的)】
.bash_profile 【对单一用户生效(永久的)】
3、设置所有环境变量
env--env -u
4、显示所有本地定义的Shell变量
set--unset
5、设置只读变量
readonly
curl命令
curl -k 忽略证书
curl -L 抓取重定向页面
curl -s 不显示统计信息
exit code
$? 上个命令的退出状态,或函数的返回值。
shell脚本生成限定范围的随机数
echo $(($RANDOM%50+1)) 这串代码实现了随机生成从1~50之间是数这串代码特别简单,就是利用RANDOM这个随机数生成器进行取余就能够实现,至于为什么取余时需要+1是因为在取余时如果被整除那么余数会是0,这样就不在限定范围内了。
生成随机密码
openssl rand -base64 12