linux常用命令

  • Post author:
  • Post category:linux


常见命令

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



版权声明:本文为ywlmsm1224811原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。