Linux常用命令

1、后台运行linux命令

​ 1. command & : 后台运行,你关掉终端会停止运行
​ 2. nohup command & : 后台运行,你关掉终端也会继续运行
​ 3、ctrl +z 將前台任务丟到后台中暂停
​ 4、jobs 查看后台的工作状态
​ 5、fg %jobnumber 将后台的任务拿到前台来处理
​ 6、bg %jobnumber 将任务放到后台中去处理
​ 7、kill 管理后台的任务

2、输出重定向

​ cmdline [1-n] > file或文件操作符或设备
​ 将一条命令执行结果(标准输出,或者错误输出,本来都要打印到屏幕上面的)重定向其它输出设备(文件,打开文件操作符,或打印机等等)
​ 1,2分别是标准输出,错误输出。
​ 例:sh test1.sh 1>suc.txt 2>err.txt
​ 注意:
​ 1)、shell遇到”>”操作符,会判断右边文件是否存在,如果存在就先删除,并且创建新文件。不存在直接创建。 无论左边命令执行是否成功。右边文件都会变为空。
​ 2)、“>>”操作符,判断右边文件,如果不存在,先创建。以添加方式打开文件,会分配一个文件描述符[不特别指定,默认为1,2]然后,与左边的标准输出(1)或错误输出(2) 绑定。

3、删除操作

​ d+$ 删除光标后的内容

4、创建用户(root下操作)

​ adduser new_user
​ passwd new_user

5、关闭防火墙、SELinux

​ 查看版本
​ lsb_release -a
​ 防火墙
​ CentOS 6:
​ service iptables stop
​ chkconfig iptables off
​ CentOS 7:
​ systemctl stop firewalld
​ systemctl disable firewalld
​ SUSE:
​ service SuSEfirewall2_setup stop
​ service SuSEfirewall2_init stop
​ chkconfig SuSEfirewall2_init off
​ chkconfig SuSEfirewall2_setup off
​ SELinux:
​ CentOS:
​ sed -i “s/SELINUX=enforcing/SELINUX=disabled/g” /etc/selinux/config
​ setenforce 0
​ sestatus
​ 重启
​ reboot

6、查询fs存储

​ df -hT 查看磁盘大小
​ free -h 查看物理内存

7、统计文件、文件夹,查看文件大小

​ 查看当前目录下的文件数量(不包含子目录中的文件)

       ls -l|grep "^-"| wc -l

​ 查看当前目录下的文件数量(包含子目录中的文件) 注意:R,代表子目录

       ls -lR|grep "^-"| wc -l

​ 查看当前目录下的文件夹目录个数(不包含子目录中的目录),同上述理,如果需要查看子目录的,加上R

       ls -l|grep "^d"| wc -l
   	   ls -lht      查看当前目录下所有文件的大小,以及总和
       du -sh *     查看指定文件\文件夹大小
       du -h -d 不展开子目录
8、sed
#删除特定字符串
sed -i '/字符串/d' file

#特定字符串的行后插入新行
sed -i '/特定字符串/a 新行字符串' file

#特定字符串的行前插入新行
sed -i '/特定字符串/i 新行字符串' file

#替换掉每行的第一个字符串
sed -i 's/原字符串/新字符串/' file

#去掉 “行首” 带“@”的首字母@
sed -i 's/^@//' file
9、grep

​ grep [-acinv] [–color=auto] ‘搜寻字符串’ filename
​ 选项与参数:

-a 或 --text : 不要忽略二进制的数据。
-A<显示行数> 或 --after-context=<显示行数> : 除了显示符合范本样式的那一列之外,并显示该行之后的内容。
-b 或 --byte-offset : 在显示符合样式的那一行之前,标示出该行第一个字符的编号。
-B<显示行数> 或 --before-context=<显示行数> : 除了显示符合样式的那一行之外,并显示该行之前的内容。
-c 或 --count : 计算符合样式的列数。
-C<显示行数> 或 --context=<显示行数>或-<显示行数> : 除了显示符合样式的那一行之外,并显示该行之前后的内容。
-d <动作> 或 --directories=<动作> : 当指定要查找的是目录而非文件时,必须使用这项参数,否则grep指令将回报信息并停止动作。
-e<范本样式> 或 --regexp=<范本样式> : 指定字符串做为查找文件内容的样式。
-E 或 --extended-regexp : 将样式为延伸的正则表达式来使用。
-f<规则文件> 或 --file=<规则文件> : 指定规则文件,其内容含有一个或多个规则样式,让grep查找符合规则条件的文件内容,格式为每行一个规则样式。
-F 或 --fixed-regexp : 将样式视为固定字符串的列表。
-G 或 --basic-regexp : 将样式视为普通的表示法来使用。
-h 或 --no-filename : 在显示符合样式的那一行之前,不标示该行所属的文件名称。
-H 或 --with-filename : 在显示符合样式的那一行之前,表示该行所属的文件名称。
-i 或 --ignore-case : 忽略字符大小写的差别。
-l 或 --file-with-matches : 列出文件内容符合指定的样式的文件名称。
-L 或 --files-without-match : 列出文件内容不符合指定的样式的文件名称。
-n 或 --line-number : 在显示符合样式的那一行之前,标示出该行的列数编号。
-o 或 --only-matching : 只显示匹配PATTERN 部分。
-q 或 --quiet或--silent : 不显示任何信息。
-r 或 --recursive : 此参数的效果和指定"-d recurse"参数相同。
-s 或 --no-messages : 不显示错误信息。
-v 或 --invert-match : 显示不包含匹配文本的所有行。    !!!!!取反
-V 或 --version : 显示版本信息。
-w 或 --word-regexp : 只显示全字符合的列。
-x --line-regexp : 只显示全列符合的列。
-y : 此参数的效果和指定"-i"参数相同。
10、awk

awk [options] ‘pattern{action}’ file
pattern包括两种特殊模式,分别是BEGIN和END
(1)BEGIN模式,是指命令在处理文本之前执行
(2)END模式,是指命令在处理文本之后执行
(3)BEGIN模式和END模式同时存在时,其中,BEGIN与END之间的{}相当于一个循环体,对文件中的每一行进行处理
options参数
(1)-F,用于指定输入分隔符
(2)-v,用于设置变量的值
从文件中输入变量
使用实例:
1)显示文件前5行内容

	awk '{print}' file | head -n 5

​ 2)将文件以冒号分隔,并取出第1、3、6位的数据

	awk -F":" '{print $1 $3 $6}' file |head -n 5

​ 3)将文件以冒号分隔,并取出第1、3、6位的数据,并用tab键作为分隔符

  	awk -F":" '{print $1 "\t" $3 "\t" $6}' file |head -n 5

​ 4)以冒号为分隔符,显示一行中有多少字段

  	awk -F: '{print NF}' file |head -n 5

​ 5)显示每一行的最后一个字段

 	awk -F: '{print $NF}' file | head -n 5

​ 6)在每一行前面输出行号

  	awk '{print NR,$0}' file |head -n 5

​ 7)显示文件中第五行数据

 	awk -F: 'NR==5{print}' file
11、快捷键

​ Ctrl + l 快速清屏
​ Ctrl + r 搜索历史命令
​ Ctrl + p 查看上一条历史命令
​ Ctrl + n 查看下一条历史命令
​ EXC + . 使用上一条命令的参数
​ !! 执行上一条命令
​ Ctrl + c 快速删除已输入命令(不执行)
​ vi编辑器下
​ shift + 4 或END 快速切换到行尾
​ shift + 6 或HOME 快速切换到行首

12、查看linux内核版本、系统版本

​ cat /proc/version or uname -a 查看内核版本
​ cat /etc/redhat-release or

13、curl命令
	1)、定义
   		利用url规整在命令行下进行文件传输的工具,(http命令行工具)------上传and下载
	2)、语法and常见参数

​ curl 【options】【url】
​ options:
​ -A/–user-agent string 设置用户代理发送给服务器
​ -b/–cookie name=string/file cookie字符串或文件读取位置
​ -c/–cookie-jar file 操作结束后把cookie写入到这个文件中
​ -C/–continue-at offset 断点续转
​ -r/–range range 检索来自HTTP/1.1或FTP服务器字节范围
​ -s/–silent 静音模式。不输出任何东西
​ -T/–upload-file file 上传文件
​ -u/–user user[:password] 设置服务器的用户和密码
​ -w/–write-out [format] 什么输出完成后d@filename
​ -x/–proxy host[:port] 在给定的端口上使用HTTP代理
​ -#/–progress-bar 进度条显示当前的传送状态

​ 3)、附带文件

​ -d@filename

14、查看jar包版本

​ jar -xf ***.jar META-INF/BUILD.txt

15、mkdir

​ mkdir -p /home/aiops/aiops/var/com/{captain,waterdrop,atlas} #创建多个目录

16、tar
必要参数有如下:
-A 新增压缩文件到已存在的压缩
-c 建立新的压缩文件
-d 记录文件的差别
-r 添加文件到已经压缩的文件
-u 添加改变了和现有的文件到已经存在的压缩文件
-x 从压缩的文件中提取文件
-t 显示压缩文件的内容
-z 支持gzip解压文件
-j 支持bzip2解压文件
-Z 支持compress解压文件
-v 显示操作过程
-l 文件系统边界设置
-k 保留原有文件不覆盖
-m 保留文件不被覆盖
-W 确认压缩文件的正确性

tar -xzf *****.tar.gz  #解压
tar -czf ***.tar.gz /file  #压缩
17、unzip
18、iptables
防火墙策略介绍
https://blog.youkuaiyun.com/qq_41816540/article/details/83819243
hadoop防火墙配置
https://blog.youkuaiyun.com/xjping0794/article/details/77750147
iptables安装
https://www.cnblogs.com/faunjoe88/p/7003815.html


#设置iptable要先打开防火墙
systemctl status fireward
systemctl start fireward 


#编辑/etc/sysconfig/iptables,加入如下命令
 -A INPUT -p tcp --dport 0:60000 -j ACCEPT   #INPUT后面是本地端口
 -A OUTPUT -p tcp --sport 3180 -j ACCEPT     #OUTPUT后面是对端要访问端口
 
 
service iptables restart  #生效策略
service iptables save     #保存策略
19、批量kill hadoop任务
for i in `yarn application -list -appStates ACCEPT|awk '{print $1}' ` ; do yarn application -kill $i ; done
20、split+cat 文件拆分
#切割
$ split -b 100m aso_platmonitor.sql aso_split
#合并
$ cat aso_splita* > aso_platmonitor.sql

split命令的语法如下:
split [--help] [--version] [-a ] [-b] [-C] [-l] [要分割的文件] [输出文件名前缀]
对应的参数描述如下:
  -a:--suffix-length=N    使用的后缀长度(默认是2)
  -b:--bytes=SIZE     每个输出文件的字节大小
  -C:--line-bytes=SIZE   每个输出文件每行的最大字节大小
  -d:--numeric-suffixes   使用数字后缀代替字母后缀
  -l:--line=NUMBER     设定每个输出文件的行数
  --help:显示帮助信息
  --version:显示版本信息
下面将举例进行说明:
1.将文件demo.txt分割成多个文件,分割后每个文件大小为20M,命令如下:
$ split -b 20m demo.txt

2.将demo.txt文件分割成多个文件,分割后每个文件大小为20M,指定分割后的文件前缀为demo,命令如下:
$ split -b 20m demo.txt demo

3.将文件demo.txt分割成多个文件,每个文件为50万行,命令如下:
$ split -l 500000 demo.txt demo

4.将文件demo.txt分割成多个文件,每个文件50万行,指定分割后的文件后缀为数字,数字位数为3位,命令如下:
$ split -l 500000 -d -a 3 demo.txt  demo

5.文件合并可以使用cat命令将切分后的文件合并成新的文件,命令如下:
$ cat demo0*  > newdemo.txt
21、crontab
#查看crontab
crontab -l
#编辑crontab
crontab -e

格式如下
f1 f2 f3 f4 f5 cmd

其中 f1 是表示分钟,f2 表示小时,f3 表示一个月份中的第几日,f4 表示月份,f5 表示一个星期中的第几天。program 表示要执行的程序。
当 f1 为 * 时表示每分钟都要执行 program,f2 为 * 时表示每小时都要执行程序,其馀类推
当 f1 为 a-b 时表示从第 a 分钟到第 b 分钟这段时间内要执行,f2 为 a-b 时表示从第 a 到第 b 小时都要执行,其馀类推
当 f1 为 */n 时表示每 n 分钟个时间间隔执行一次,f2 为 */n 表示每 n 小时个时间间隔执行一次,其馀类推
当 f1 为 a, b, c,... 时表示第 a, b, c,... 分钟要执行,f2 为 a, b, c,... 时表示第 a, b, c...个小时要执行,其馀类推

例:
	
22 、scp/ssh免输入密码
需要先安装expect:sudo yum install -y expect

#!/bin/bash
des_pass=testtest
expect -c "
spawn  scp  target /aaa-0 .0.1.war root@192.168.1.30: /home/GameUser/MagicvesselUserWeb/aaa-release .war
expect \"password:\"
send \"${des_pass}\r\"
expect eof
"
23、if判断
#判断字符串相等
if [ "$ip" == "1.1.1.1" ];then
		ip=${ip}-${devicename}
fi

#其他
24、开机自启动
#https://blog.youkuaiyun.com/hualinger/article/details/125321966
#方法1
/etc/rc.local中添加自启动命令

#方法2
/etc/init.d 目录下添加自启动脚本
#例如自启动hadoop

#!/bin/bash
#chkconfig:35 95 1
#description:script to start/stop hadoop
su - bizseer <<!
case $1 in
start)
sh /bs/aiops/opt/hadoop/sbin/start-all.sh
;;
stop)
sh /bs/aiops/opt/hadoop/sbin/stop-all.sh
;;
*)
echo "Usage:$0(start|stop)"
;;
esac
exit
!



25、alias设置别名
alias ll="ls -lht"
26、查看CPU核数
top  1
27、vi、vim编辑
#替换字符穿

%s/{需要替换的字符串}/{替换后的字符串}/g
28、替换挂载磁盘
lsblk #查询未挂载的磁盘

pvs #查询已创建的PV
  PV         VG     Fmt  Attr PSize    PFree   
  /dev/vdb   gitlab lvm2 a--  <300.00g 1020.00m
  /dev/vdc   aiops  lvm2 a--  <300.00g 1020.00m
  /dev/vdd   data   lvm2 a--   279.39g  404.00m
pvcreate /dev/vde #创建PV
vgcreate test /dev/vde   #创建VG,与前面查询的不要重复

lvcreate -n test -L 279G test #分配磁盘空间

mkfs.xfs /dev/test/test #格式化

mkdir /t #创建临时目录

mount -t xfs /dev/test/test /t  #挂载到临时目录

rsync -azvr /data/ /t  #将/data/目录下的文件同步到 /t下

sed -i 's#/dev/data/data#/dev/test/test##' /etc/systemd/system/data.mount #替换挂载磁盘

systemctl daemon-reload
reboot #重启加载磁盘

29、ssh 免密配置
https://www.cnblogs.com/maotou/p/15941618.html

1、编辑sshd服务配置文件,开启免密验证, vi /etc/ssh/sshd_config
   打开文件后,去掉以下3行的"#"注释  
   RSAAuthentication yes
   PubkeyAuthentication yes
   AuthorizedKeysFile   .ssh/authorized_keys
   重启 sshd 服务,使用命令:/sbin/service sshd restart
   
2、创建免密登录账号

   使用如下命令创建:
   useradd  xxxuser  //创建用户
   passwd   xxxpwd   //设置登录密码
   
3、生成密钥 

   切换到新建账号xxxuser, sudo xxxuser
   执行命令:ssh-keygen -t rsa 回车后生成如下两个文件(注意待生成文件路径~/.ssh/)
   id_rsa  //私钥
   id_rsa.pub  //公钥
   
4、复制公钥文件id_rsa.pub到要访问该公钥机器的所有目标机器
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值