linux命令大全

linux查询帮助
1.http://man.linuxde.net
2.linux内置命令  help cd(简介的cd命令帮助)
                man cd 要慢慢查找
find 查询文件位置
#find 查看当前路径下的所有文件
#find / -name php.ini
find 路径 -type 文件类型 -name "文件名" -maxdepth 深度 -mtime 时间
文件类型: f 是文件  d 是文件夹
#find -maxdepth 1 -type d ! -name "." 找出当前路径第一层所有文件夹 并且名字不为'.' 

#find / -type f -name '*.sh' |xargs sed -i 's#oldboy#oldgirl#g' 

七天之前是第七天之前,第七天就是第七天,最近七天是第七天后的六天
#find -type f -name '*.log' -mtime +7|xargs ls -l  七天之前
                                    7  第七天
                                   -7  最近七天
kill 命令用于终止进程
kill -9 [PID]
fuser 杀死8000端口号的进程
fuser -k 8000/tcp
mysql授权
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'youpassword' WITH GRANT OPTION;
查看日志
vi /var/log/zabbix/zabbix-server
vi/vim
在命令模式:
G跳转到最后一行,
gg跳转到行首。
dd删除一行
D删除光标这一行后面的内容 包括光标所在的位置
o在光标的下一行插入空行并进入编辑模式
ndd 删除n行
100gg:快速到达文件的第100行
0 光标到行首
$ 移动光标到行尾

在末行模式:
/后面写你要查询的地方
wq 保存并退出
wq! 强制保存退出
ctrl+z 退出编辑模式 不保存
set nu 显示行号  不会改文件内容
set nonu 不显示行号
20,22copy24   将20到22行内容复制 到24行后面
10,20s/^/#/   将十行到二十行注释
netstat 查看运行的服务
netstat -nptl 
setup 配置设置
setup
grep(过滤)
#cat test.txt
1
233
3

#grep "2" test.txt     找到内容含2的行
233

#grep -v "2" test.txt  找到内容不含2的行
1
3

#grep -A10 '20' 1.txt   找到你要找的内容并且显示改行的下面十行


#grep -n 'stu' 1.txt   显示行号找到你要查询的内容

#grep -E "3306|1502" /etc/services    找出3306和1502的行

#grep -r oldboy /etc/    查找etc下所有的oldboy
[root@localhost ~]# grep -r '1' /root/t
/root/t/1.txt:1
/root/t/1.txt:10
/root/t/2.txt:stu1 stu2 stu3 stu4 stu5 stu6 stu7 stu8 stu9 stu10
选项参数
rm -r 是递归删除 比如要删除一个文件夹 文件夹里有很多文件

	  -f 删除时不需要逐个确定是否删除

grep -v 表示排除
mkdir -p /1/2  创建多层目录 

cp 文件夹 文件夹里有多个文件的时候 需要加参数-r
systemctl 服务
systemctl restart 服务名 重启服务
systemctl start 服务名 启动服务
systemctl status 服务名 查看服务运行状态
systemctl enable 服务名 设置开机自启
systemctl disable 服务名 关闭开机自启
who
who [选项] … [FILE | ARG1 ARG2]

打印有关当前登录用户的信息。
wc
wc 1.txt  打印出1.txt里的行数 字数 字节数
who|wc -l  打印出有几个用户 
wc -l 1.txt  统计行号
head
默认查看前十条
#head 1.txt 

查看前两条
#head -n2 1.txt
tail
默认查看后十条
#tail 1.txt 

查看后两条
#tail -n2 1.txt

显示文件的实时更新
tail -f /var/log/文件日志
which
查看cp命令在哪
#which cp
**alias **
查看所有命令的别名
#alias

查看rm cp mv别名
#alias rm cp mv

修改别名
#alias rm='aaa'
之后在用rm就会报错,但是是暂时的
source
使文件生效
#source 文件名
seq 生成序列
#seq 100 > 1.txt 
sed
#sed -n '10,20p' 1.txt 显示1.txt第十行到第二十行的内容
-n取消默认输出

#sed -n 's#正则内容#修改内容#gp' 1.txt

#sed -i 's#找谁#替换成什么#g' 1.txt
不加-i修改了不保存
修改后的内容不写相当于把这个内容删除

#sed '=' 1.txt |xargs -n2  显示行号展示内容

#sed -n '/bb/p' 2.txt   找出含有bb的行

#sed -n '2,$p' 2.txt  过滤出第二行到最后一行

#sed 's#www.etiantian.org#www.oldboydu.com#g' $(find /oldboy -type f -name "*.txt")
#find /oldboy -type f -name "*.txt"|xargs sed 's#www.etiantian.org#www.oldboydu.com#g'
head和tail结合
head -n30 1.txt | tail -n10
awk
#awk '找谁{干啥}'
#awk -F "[: ]+" 'NR==2{print $2}'

#awk 'NR==20' 1.txt
20
NR表示行号
==表示等于
#awk 'NR==20,NR==30' 1.txt  找出第二十行到第三十行
#awk '/2/' 1.txt  找出含有2的行
#awk '!/2/' 1.txt  找出不含2的行
表示第几列 用$  第一列:$1

#awk '{print NR,$0}' 1.txt    0和1都代表第一列,显示第一列的内容并展示行号

#cat oldboy.txt
i am a,oldboy ha

awk的$第几列,以空格划分列,  i是第一列,am是第二列,a,oldboy是第三列

#awk '{print $2,$3}' oldboy.txt  默认是以空格为分界
am a,oldboy

#awk -F "[, ]" '{print $2,$3}' oldboy.txt   -F "[, ]"是将规则改为逗号和空格为分界
am a

#awk -F "[, ]" '{print "第二列是:"$2,"第三列是:"$3}' oldboy.txt  里面必须是双引号,外面是单引号

#awk -F "[, ]+" '{print $2,$3}' oldboy.txt  可以将空格和,连续出现的当成一吧刀

xargs
#find / -type f -name '*.sh' |xargs sed -i 's#oldboy#oldgirl#g'  
将所有后缀为.sh的文件里的内容为oldboy改为oldgirl

xargs命令是给其他命令传递参数的一个过滤器,也是组合多个命令的一个工具。它擅长将标准输入数据转换成命令行参数,xargs能够处理管道或者stdin并将其转换成特定命令的命令参数。xargs也可以将单行或多行文本输入转换为其他格式,例如多行变单行,单行变多行。xargs的默认命令是echo,空格是默认定界符。这意味着通过管道传递给xargs的输入将会包含换行和空白,不过通过xargs的处理,换行和空白将被空格取代。xargs是构建单行命令的重要组件之一。

xargs命令用法
xargs用作替换工具,读取输入数据重新格式化后输出。

定义一个测试文件,内有多行文本数据:

cat test.txt

a b c d e f g
h i j k l m n
o p q
r s t
u v w x y z
多行输入单行输出:

cat test.txt | xargs

a b c d e f g h i j k l m n o p q r s t u v w x y z
-n选项多行输出:

cat test.txt | xargs -n3

a b c
d e f
g h i
j k l
m n o
p q r
s t u
v w x
y z
-d选项可以自定义一个定界符:

echo "nameXnameXnameXname" | xargs -dX

name name name name
结合-n选项使用:

echo "nameXnameXnameXname" | xargs -dX -n2

name name
name name
读取stdin,将格式化后的参数传递给命令

假设一个命令为 sk.sh 和一个保存参数的文件arg.txt:

#!/bin/bash
#sk.sh命令内容,打印出所有参数。

echo $*
arg.txt文件内容:

cat arg.txt

aaa
bbb
ccc
xargs的一个选项-I,使用-I指定一个替换字符串{},这个字符串在xargs扩展时会被替换掉,当-I与xargs结合使用,每一个参数命令都会被执行一次:

cat arg.txt | xargs -I {} ./sk.sh -p {} -l

-p aaa -l
-p bbb -l
-p ccc -l
复制所有图片文件到 /data/images 目录下:

ls *.jpg | xargs -n1 -I cp {} /data/images
xargs结合find使用

用rm 删除太多的文件时候,可能得到一个错误信息:/bin/rm Argument list too long. 用xargs去避免这个问题:

find . -type f -name "*.log" -print0 | xargs -0 rm -f
xargs -0将\0作为定界符。

统计一个源代码目录中所有php文件的行数:

find . -type f -name "*.php" -print0 | xargs -0 wc -l
查找所有的jpg 文件,并且压缩它们:

find . -type f -name "*.jpg" -print | xargs tar -czvf images.tar.gz
xargs其他应用

假如你有一个文件包含了很多你希望下载的URL,你能够使用xargs下载所有链接:

cat url-list.txt | xargs wget -c
子Shell(Subshells)
运行一个shell脚本时会启动另一个命令解释器.,就好像你的命令是在命令行提示下被解释的一样,类似于批处理文件里的一系列命令。每个shell脚本有效地运行在父shell(parent shell)的一个子进程里。这个父shell是指在一个控制终端或在一个xterm窗口中给你命令指示符的进程。

cmd1 | ( cmd2; cmd3; cmd4 ) | cmd5
如果cmd2 是cd /,那么就会改变子Shell的工作目录,这种改变只是局限于子shell内部,cmd5则完全不知道工作目录发生的变化。子shell是嵌在圆括号()内部的命令序列,子Shell内部定义的变量为局部变量。

子shell可用于为一组命令设定临时的环境变量:

COMMAND1
COMMAND2
COMMAND3
(
  IFS=:
  PATH=/bin
  unset TERMINFO
  set -C
  shift 5
  COMMAND4
  COMMAND5
  exit 3 # 只是从子shell退出。
)
# 父shell不受影响,变量值没有更改。
COMMAND6
COMMAND7
查看linux系统版本
#cat /etc/redhat-release  显示linux版本
#uname -r  显示内核版本
#uname -m  显示系统32位还是64位
用户命令
#useradd 用户名   新增用户
#id 用户名   查看是否存在该用户
#passwd 用户名  修改该用户的密码
#su - 用户名  切换用户
#whoami   查看用户
ctrl+d  退出当前用户进入root用户
selinux
#getenforce  #查看selinux运行状态
enforcing  正在运行
permissive 临时关闭
disabled   彻底关闭

#setenforce 0  临时关闭selinux

#vim /etc/selinux/config
将selinux=enforcing改为selinux=disabled
#setenforce 0
防火墙
#systemctl status firewalld.service  查看防火墙状态
#systemctl stop firewalld.service  关闭防火墙
字符集
#echo $LANG  查看字符集

#export LANG=zh_CN.UTF-8  临时修改字符集

#echo stu{01...10}
stu01 stu02 stu03 stu04 stu05 stu06 stu07 stu08 stu09 stu10

#echo {1,10}
1 2 3 4 5 6 7 8 9 10

#echo {1..5} | xargs -n1 > 1.txt
#cat 1.txt
1
2
3
4
5
asgiref==3.4.1
astroid==2.6.2
baidu-aip==2.2.18.0
certifi==2021.5.30
chardet==4.0.0
colorama==0.4.4
DateTime==4.3
distro==1.5.0
Django==3.2.5
django-cors-headers==3.7.0
django-filter==2.4.0
djangorestframework==3.12.4
docxtpl==0.11.5
et-xmlfile==1.1.0
idna==2.10
isort==5.9.1
Jinja2==3.0.1
lazy-object-proxy==1.6.0
lxml==4.6.3
Markdown==3.3.4
MarkupSafe==2.0.1
mccabe==0.6.1
numpy==1.21.0
openpyxl==3.0.7
pandas==1.2.5
pdfminer.six==20200517
pdfplumber==0.5.28
Pillow==8.3.0
pip==21.1.3
pyasn1==0.4.8
pycryptodome==3.10.1
pylint==2.9.3
PyMuPDF==1.18.14
pypiwin32==223
python-dateutil==2.8.1
python-docx==0.8.11
pytz==2021.1
pywin32==301
requests==2.25.1
rsa==4.7.2
selenium==3.141.0
setuptools==56.0.0
six==1.16.0
some-package==0.1
sortedcontainers==2.4.0
sqlparse==0.4.1
tabula-py==2.2.0
toml==0.10.2
urllib3==1.26.6
Wand==0.6.6
wrapt==1.12.1
xlrd==2.0.1
xlwt==1.3.0
zope.interface==5.4.0
df -h 查看磁盘情况
mount挂载:
把光盘挂载到系统里面 
#mount /dev/cdrom /mnt/
#cd /mnt
然后你看到的就是光盘的内容了
yum 软件包管理工具–软件管家
yum install 软件包名字
	-y 默认选中y
rpm(缺啥少啥自己解决)
查看是否安装好了tree
#rpm -qa | grep tree   
hostname主机名
查看主机名
#hostname
暂时修改主机名
#hostname 新主机名
永久修改主机名
#vim /etc/sysconfig/network
修改里面的hostname
runlevel运行级别
查看当前运行级别
#runlevel
临时切换运行级别
#init 5
cpu
#lscpu  查看cpu信息
#w 		查看cpu核心数
内存
#free -h 查看内存信息
tree查看目录
查看当前路径结构
#tree
查看当前路径的文件夹结构(只显示文件夹)
#tree -d
查看当前路径的文件夹 只显示一层结构(只显示文件夹)
#tree -dL 1
ls
给所有文件夹的名字最后加一个/
#ls -F | grep '/'   为了查找文件夹
#ls -lrt			将文件展示按修改时间升序排序
					不加-r 按降序
                    -h 可读性更高 
[root@localhost ~]# ls -lhi /etc/hosts
16861810 -rw-r--r--. 1 root root 158 Jun  7  2013 /etc/hosts

inode号码 计算机认为这个文件就是这个数字
-        文件类型
rw-r--r-- 文件权限
.        与selinux有关
1		 文件硬链接数量
root     主人
root     家人
158		 文件大小
文件修改时间
文件名
文件名不是文件的属性
cat
#cat -n 1.txt  显示行号
#cat -A 1.txt  显示结尾符号
tar
#tar zcvf 压缩包名
z------通过gzip    工具进行压缩
c------表示create  创建压缩包
v------表示verbose 显示执行过程
f------表示file    接上压缩包的名字
t------表示list 	 显示压缩包的内容
x------解压压缩包
h------把源文件进行压缩

创建:
	zcf
查看:
	tf
解压:
	xf

解压到指定位置
#tar xf 压缩包名 -C 压缩到的位置
tr
#tr "," " " <oldboy.txt   将oldboy文件里的‘,’替换为空格   
tr命令可以对来自标准输入的字符进行替换、压缩和删除。它可以将一组字符变成另一组字符,经常用来编写优美的单行命令,作用很强大。

语法
tr(选项)(参数)
选项
-c或——complerment:取代所有不属于第一字符集的字符;
-d或——delete:删除所有属于第一字符集的字符;
-s或--squeeze-repeats:把连续重复的字符以单独一个字符表示;
-t或--truncate-set1:先删除第一字符集较第二字符集多出的字符。
参数
字符集1:指定要转换或删除的原字符集。当执行转换操作时,必须使用参数“字符集2”指定转换的目标字符集。但执行删除操作时,不需要参数“字符集2”;
字符集2:指定要转换成的目标字符集。
实例
将输入字符由大写转换为小写:

echo "HELLO WORLD" | tr 'A-Z' 'a-z'
hello world
'A-Z' 和 'a-z'都是集合,集合是可以自己制定的,例如:'ABD-}'、'bB.,'、'a-de-h'、'a-c0-9'都属于集合,集合里可以使用'\n'、'\t',可以可以使用其他ASCII字符。

使用tr删除字符:

echo "hello 123 world 456" | tr -d '0-9'
hello  world 
将制表符转换为空格:

cat text | tr '\t' ' '
字符集补集,从输入文本中将不在补集中的所有字符删除:

echo aa.,a 1 b#$bb 2 c*/cc 3 ddd 4 | tr -d -c '0-9 \n'
 1  2  3  4
此例中,补集中包含了数字0~9、空格和换行符\n,所以没有被删除,其他字符全部被删除了。

用tr压缩字符,可以压缩输入中重复的字符:

echo "thissss is      a text linnnnnnne." | tr -s ' sn'
this is a text line.
巧妙使用tr做数字相加操作:

echo 1 2 3 4 5 6 7 8 9 | xargs -n1 | echo $[ $(tr '\n' '+') 0 ]
删除Windows文件“造成”的'^M'字符:

cat file | tr -s "\r" "\n" > new_file
或
cat file | tr -d "\r" > new_file
tr可以使用的字符类:

[:alnum:]:字母和数字
[:alpha:]:字母
[:cntrl:]:控制(非打印)字符
[:digit:]:数字
[:graph:]:图形字符
[:lower:]:小写字母
[:print:]:可打印字符
[:punct:]:标点符号
[:space:]:空白字符
[:upper:]:大写字母
[:xdigit:]:十六进制字符
使用方式:

tr '[:lower:]' '[:upper:]'
ps
#ps -ef 显示正在运行中的进程
#ps -ef | grep 'sshd'
egrep
egrep 相当于 grep -E 支持高级正则
egrep "3306|1502" /etc/services    找出3306和1502的行
echo
echo "`pwd` `hostname`"  会打印出当前路径和主机名  
echo '`pwd` `hostname`'  原样输出
echo -n '文本'  取消换行
echo -e 'a\nb'  让echo支持换行符
du用于排查哪些文件占用磁盘空间大
du -sh /* 查看所有文件占用的空间大小
du -sh /var/*
file查看文件类型
file 文件名
id查看用户信息
id root
lsof(查看所有运行中的软件)
lsof | grep delete 找出硬链接为0但是进程不为0的软件 然后重启
第一列就是软件名
systemctl restart 软件名
lsof -i:22  查看端口号为22的进程
查看磁盘、inode使用情况
ls -i(看某些文件的inode号码)
df -i(系统里面inode用了多少剩余多少)
df -h (磁盘block使用情况)
ls -lh

修改、访问、改变时间
mtime 
modified time 文件的修改时间 文件内容的变化时间
atime 
access time   文件的访问时间
ctime 
change time  文件属性的改变时间 
**stat **
stat 文件名 
查看文件信息
date
#date +%F  以2019-9-2的形式展现
#date +%Y-%m-%d  年月日  %w 显示周几 %T 时分秒===%H:%M:%S

#data -d "+1day" +%F  显示一天后的日期  '-' 显示一天前的日期
#ntpdate pool.ntp.org 自动修改时间

#date -s "20190101"   将时间设置为20190101
last
#last | grep 'still logged in '
查看当前还在远程连接的用户
重启
shutdown -r 1 1分钟后重启
shutdown -r now 立即重启
reboot  立即重启
init 6 立即重启
关机
init 0
poweroff
halt    需要手动关闭电源
shutdown -h 1   一分钟后关机
shutdown -h now
shutdown -c 取消命令
w
显示系统负载信息,系统中谁登陆了,他们在干啥
scp
[root@nfs01 ~]scp -rp /etc/hosts 192.168.233.130:/backup
-r  递归
-p  保持文件属性
chown
chown rsync.rsync /backup/  将backup的属主和属组改为rsync
chgrp
修改属组信息
chgrp
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值