常见命令
whereis 查看命令的可执行文件所在位置
type cd 命令类型,内部和外部命令
echo $PATH 输出内容
man ifconfig 帮助文档,查看外部命令帮助文档
help cd 查看内部命令帮助文档
a=1 echo $a
arr=(1 2 3)echo ${arr[0]}
echo $$ 输出当前进程号
echo “123” >> file:123写入file文件
hash 存储命令,提高查询命令效率
df -h :磁盘内存使用情况
du -h dir :查看文件目录内存使用情况
mkdir -p a/b/c:级联创建文件夹
mkdir a/{1,2,3}dir
mv dir/ dir2 :重命名目录
mv file file1 :重命名文件
mv file /a :移动文件
cp -r a b/ :移动a文件夹下所有东西到b目录
cp /a/b.txt . : a目录下的b.txt 文件拷贝到当前目录
ln file file1 :创建文件硬链接(两个文件木有影响)
ls file file1 :创建文件软链接(file会影响file1)
stat file:查看文件详细信息
touch file:创建文件、同步文件的所有时间
more + 空格:按页查看,不能往前看
less + 空格:往后按页查看
less + b :往前按页查看
head -5 file:查看前5行数据
tail -5 file:查看最后5行数据
cat file | head -5
echo “/” |xargs ls -l :/ 作为变量传入 ls -l 命令中执行
head -5 file |tail -5 :输出第五行数据
vi 相关命令
vi +10 file : 编辑文件直接定位到10行,如果只有 +,直接定位到末尾
编辑模式:
方向 —> h:向左 l:向右 j:向下 k:向上
单词 —> w:下一个单词的词首 b:调至当前或者上一个单词的词首 e :调至当前或者上一个单词的词尾
行内 —> 0:绝对行首 ^:行首的第一个非空字符 $:绝对行尾
行间 —> G:文件末尾 3G:第三行 gg:文件开头
翻屏—> ctrl + f :向下翻页 ctrl + b :向上翻页
删除和替换单词–> x:删除光标位置字符 3x:删除光标位置开始3个字符 r
:替换光标位置字符 dd:删除光标所在行 3 dd:删除光标所在行后的3行 dG:删除光标所在行后的所有内容 dw:删除单词
复制黏贴–> yy:复制行 yw:复制单词 p:当前位置后黏贴 P:当前位置之上黏贴行 :.,$-1y:复制光标到倒数第二行的所有内容
撤销–> u :撤销 ctrl + r:恢复 .:重复上一步操作
输入模式:
i:在当前光标所在字符的前面输入 a:在当前光标所在字符的后面输入
o:在当前光标所在行的下方创建一行 O:在当前光标所在行的上方创建一行
A:移动到当前光标所在行的行尾
末行模式: esc -> :
set nu (set number):显示行号 set nonu (set nonumber):隐藏行号
set readonly:文件只读模式
/a(?a):查找 a ,/(向下查找),? (向上查找), n 向下查找下一个, N 向上查找上一个
! ls -l /a/b :查看 /a/b 目录
s/a/b : 光标所在行中的 a(第一个匹配的) 修改为 b
s/a/b/g : 光标所在行中的所有 a(区分大小写) 修改为 b
s/a/b/gi : 光标所在行中的所有 a(忽略大小写) 修改为 b
.,+2s/a/b/gi : 光标所在行的接下来3行中的所有 a(忽略大小写) 修改为 b, . 表示当前光标所在行
%s/a/b/gi(0,$s/a/b/gi) : 文件中的所有 :a(忽略大小写) 修改为 b, % 表示全文,$ 表示末尾行
删除内容:
0,$d:删除全文
.,+2d(光标必须在第一行):删除前三行 1,3d:删除前三行
3,5d:删除3-5行 $-1d:删除倒数第二行 1,$-1d:删除除最后一行的所有内容
复制:
1,3y:复制1-3行 0,,$y:复制所有内容
grep 管道相关命令
grep “[0-9]” file :查找数字的行
grep “[ac]” file : 查找包含 a 或者 c 的行
grep “[0-9]\{3\}” (-E “[0-9]{3}” ) file :查找包含三位数的行
grep “\<hello\>” file :包含 hello 单词的行
grep -E “([^0-9][0-9]|^[0-9])[0-9]([0-9][^0-9]|[0-9]$)” file :查找三位数的行
grep “^\<hello\>” file :包含以 hello 单词为首的行
grep -E “a{2,3}” file:包含 a 2次或者 3次 的行
grep -E “(a.*)(b.*).*1.*2” file:包含 a b a b ….的行
cut: d(自定义分隔符)、s(不显示没有分隔符的行)、f(选择显示的列)
cut -d ‘ ’ -f1(-f1,2 -f1-3) file :以空格分隔行,然后显示指定列数据(包含没有分隔符的行)
cut -d ‘ ’ -f1(-f1,2 -f1-3) -s file :以空格分隔行,然后显示指定列数据(不包含没有分隔符的行)
sort: t(自定义分隔符)、k(选择排序的列)、f(忽略大小写)、n(按数值排序)、r(倒叙)、u(合并相同行)
sort -t ‘ ’ -k1 -u -f :按照第一列排序(合并忽略大小写重复列)
sort -t ‘ ’ -k2 -n -r :按照第二列数值倒叙排列
wc: l(行数)、w(单词数)、c(字符数)
wc file : file 文件统计信息
wc -c file: file 字符数 cat file | wc -l : file 总行数
sed 行编辑器
i:对原文件修改 n :屏蔽静默显示 p:显示行数据
a:每行下面显示行内容 i:每行上面显示行内容 c:替换每行内容
sed -n “2p” file:显示第二行数据
sed “3d” file:显示除了第三行之外的所有数据
sed -i “3d” file:删除第三行数据,并保存到原文件中
sed “atest” file:在每行下面显示test行数据
sed “itest” file:在每行上面显示test行数据
sed “ctest” file:每行数据都替换为 test
sed -i “s/a/b/” file:a 都替换为 b 并更新到 file 文件中
\() : 反向符,用于解决重复内容替换 ,实例如下:
sed -i "s/id:[0-9]:init/id:6:init/" file <=> sed -i "s/\(id:\)[0-9]\(:init\)/\16\2/" file
使用变量动态替换文件内容:
var=5 -> echo $var -> sed -i "s/\(id:\)[0-9]\(:init\)/\1$var\2/" file
修改配置文件中的ip地址:
sed "s/\(IPADDR=\([0-9]\?[0-9][0-9]\?\.\)\{3\}\).*/\188/" file
awk 文本分析工具,默认使用 空格 和 tab 分隔
NR:记录数,即行号 NF:域(列)的个数 ORS:输出记录分隔符 OFS:输出域分隔符
FS:设置输入域分隔符,等价于命令行 -F 选项
支持函数:print 、split 、substr、sub、gsub
awk -F ‘{pattern + action}’ {filenames}
awk -F ‘:’ ‘{print $1}’ file : 以 : 为分隔符,输出第一列的值
awk -F ‘:’ ‘BEGIN {print “name,age”} {print $1 “,” $2} END {
{print “end”}’ file : 第一行前面加上 name,age,输出 name 和 age 的值并使用 , 分隔开,最后输出 end 作为结束
awk ‘/root/’ ‘{print $0}’ file : 输出所有包含root的行
awk -f file file1: 执行 file 脚本文件
用户与权限
#:管理员 $:普通用户
useradd a: 创建用户 a passwd a:用户 a 设置密码
userdel a :删除用户 a
彻底删除用户 a : 1、 rm -rf a/ 2、 cd /var/spool/mail rm -rf a
mkdir b :创建 b 目录
groupadd b : 创建用户组 b
usermod -G b a: a 用户加入 用户组 b
id a : 查看用户 a 组织信息
chown root:b b/ :将 b 文件夹属主修改为 组b(原来是root创建的)
chmod g+w b/:给组 b 添加写权限
chmod o-r o-x : 给其他人删除读和执行的权限
yum 安装
yum list installed |grep java : 查看当前系统是否已安装JDK
yum -y list java* : 列出yum库中JDK所有版本
yum -y install java-1.8.0-openjdk* : 安装具体JDK某个版本
jdk /etc/profile 环境变量配置:
JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.275.b01-1.el8_3.x86_64
JRE_HOME=$JAVA_HOME/jre
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
export JAVA_HOME JRE_HOME PATH CLASSPATH
jps 命令安装:
yum list | grep jdk-devel
yum -y install java-1.8.0-openjdk-devel.x86_64
解压文件
tar -zxf apache-zookeeper-3.6.2.tar.gz -C /home
时钟同步
yum install -y chrony
systemctl start chronyd
systemctl enable chronyd
/etc/chrony.conf 文件中增加 pool ntp.ntsc.ac.cn iburst 同步器配置
clock -w