Linux下常用命令
man中文网站可以查询命令:https://man.linuxde.net/
1、diff -Naur 1.txt 2.txt > patch.txt 两个文件的比对,生成一个补丁文件可以查看两者的区别。
2、dgg 命令行模式下,删除光标之前的所有内容。
dG 删除光标之后的所有内容。
3.1、全部复制:按esc后,然后ggyG;p 粘贴。
复制命令参考:
y 在使用v模式选定了某一块的时候,复制选定块到缓冲区用; yy 复制整行(nyy或者yny ,复制n行,n为数字); y^ 复制当前到行头的内容; y$ 复制当前到行尾的内容; yw 复制一个word (nyw或者ynw,复制n个word,n为数字); ggyG 行首复制至档尾(nyG或者ynG,复制到第n行,例如1yG或者y1G,复制到档尾)
剪切命令参考:
d 剪切选定块到缓冲区; dd 剪切整行 d^ 剪切至行首 d$ 剪切至行尾 dw 剪切一个word dG 剪切至档尾
粘贴命令参考:
p 小写p代表贴至游标后(下),因为游标是在具体字符的位置上,所以实际是在该字符的后面
P 大写P代表贴至游标前(上)
整行的复制粘贴在游标的上(下)一行,非整行的复制则是粘贴在游标的前(后)
3.2、选定文本块进行复制某部分:使用v进入可视模式,移动左右上下光标键选定内容,然后yy复制整行,p粘贴。
撤销操作:u(撤销操作),U(撤销某一行最近所有修改),Ctrl+R(重做)。
4、whoami 查看当前的登录用户名。
5、locale 查看当前用户的编码。
6、单(双)小括号、单(双)中小括号语法上稍微有点差别,都差不多,具体细节可以百度查看:
小例子:
(a>b || c>b)
((a>b || c>b))
[空格a\>b空格] -o [空格c\>b空格]
[[a>b || c>b]]
7、普通用户可以修改所有者是自己的文件的权限
普通用户不能修改文件的所有者(哪怕文件是属于这个普通用户的),只有超级用户才能修改所有者。
8、/etc/profile 环境变量配置文件
9、ls -lrt 按顺序进行显示
10、vi进入后:回到行首(gg) 到行尾(G) 撤销(u) 反撤销(ctrl+r)windows下:撤销(ctrl+z)反撤销(ctrl+y)
11、正则表达式是匹配字符串的,通配符是匹配文件名的。主要区别:是正则表达式是包含匹配。
12、查找文件:find -r -name 文件名、locate 文件名
13、find 文件夹 -type f 查找某个文件夹写的所有文件
14、查找包含某个内容的文件:find . -type f|xargs grep "包含的内容" -l、grep -ri "包含的内容" 目录路径
15、查找linux下所有普通用户:grep -v "root" /etc/passwd |grep "/bin/bash"
16、cut -d "分隔符" -f 列数 只能截取以tab键间隔的
17、awk 'BEGIN {FS=":"} {print $列数}' 可以截取以空格或制表符间隔的
18、netstat -tulnp、netstat -antp|grep udp 查看监听的网络状态
19、光标放在函数名首字母上,shift+* 向下查找谁调用的,shift+#向上查找谁调用的。
20、vi下0 或^行首,$行尾。
21、df -h 检查文件系统的磁盘空间占用情况
du -sh *或文件文件夹名 查看文件文件夹大小
22、$( )中放的是命令,相当于` `,例如todaydate=$(date +%Y%m%d)意思是执行date命令,返回执行结果给变量todaydate,也可以写为todaydate=`date +%Y%m%d`;
$与此类似,${ }中放的是变量,例如echo ${PATH}取PATH变量的值并打印,也可以不加括号比如$PATH
23、服务间拷贝: scp -r 本地文件路径 用户名@ip地址:目标路径
24、查看进程: ps -ep|grep java
25、查看80端口被那些服务占用:netstat -lnp|grep 80
26、全局替换::%s/旧的/新的/g
27、新建用户ump:useradd -d /app/ump/(指定默认的家目录) -m ump(指定用户名)
密码设置:passwd ump(指定用户名)
把/app组分配给ump用户:chown -R ump(指定用户名) /app(指定的文件夹目录)
chgrp -R ump /app
一次性修改所有人和所属组:sudo chown -R [新所有者]:[新所属组] 文件夹名
28、最新化安装虚拟机:
修改主机名:hostnamectl set-hostname node01
对于最小化安装CentOs7的没有安装ifconfig,我们安装ifconfig输入:yum install net-tools
设置网卡信息:cd /etc/sysconfig/network-scripts/
yum install -y vim
安装sz上传,rz下载命令功能:yum
install
-y lrzsz
vi ifcfg-ens33 删除UUID那列,保存退出
systemctl restart network
对于centos6关闭防火墙:
service iptables stop 临时关闭
chkconfig iptables off 永久关闭
对于centos7关系防火墙:
sudo systemctl stop firewalld 临时关闭防火墙,重启后会自动开启防火墙
sudo systemctl start firewalld 启动防火墙
sudo systemctl status firewalld 查看防火墙的状态
重启后不开启防火墙:
sudo systemctl disable firewalld
sudo systemctl stop firewalld
29、查看shell脚本的格式并修改为unix格式:
vi filename-->执行‘:’进入命令模式-->set ff-->set ff=unix or set ff=dos进行调整
shell基础(bash) 1、ctrl+a 把光标移动到命令行开头 ctrl+e 把光标移动到命令行末尾 ctrl+c 强制终止当前的命令 ctrl+l 清屏,相当于clear命令 ctrl+u 删除或剪切光标之前的内容 ctrl+k 删除或剪切光标之后的内容 ctrl+y 粘贴ctrl+u或ctrl+k剪切的内容 ctrl+r 在历史命令中搜索 ctrl+d退出当前终端 ctrl+z 暂停,并放入后台 ctrl+s 暂停屏幕输出 ctrl+q恢复屏幕输出 2、键盘 0 标准输入 显示器 1 标准输出 显示器 2 标准错误输出 3、标准输出重定向 命令 > 文件(以覆盖的方式,把命令的正确输出输出到指定的文件或设备中。) 命令 >> 文件(以追加的方式,把命令的正确输出输出到指定的文件或设备中。) 标准错误输出重定向 错误命令 2>文件 (以覆盖的方式,把命令的错误输出输出到指定的文件或设备中。) 错误命令 2>>文件 (以追加的方式,把命令的错误输出输出到指定的文件或设备中。) 正确输出和错误输出同时保存 命令 > 文件 2>&1(以覆盖的方式,把正确输出或错误 输出都保存到同一个文件中。) 命令 >> 文件 2>&1(以追加的方式,把正确输出或错误输出都保存到同一个文件中。) 命令 &>文件(以覆盖的方式,把正确输出或错误 输出都保存到同一个文件中。) 命令 &>>文件(以覆盖的方式,把正确输出或错误 输出都保存到同一个文件中。) 命令>>文件1 2>>文件2(把正确的输出追加到文件1,把错误的输出追加到文件2中。) 4、 输入重定向 (正常是鼠标>命令,而现在是文件>命令) wc -c(统计字节数)-w(统计单词数)-l(统计行数) 5、多命令执行符 命令1;命令2(多个命令顺序执行,命令之间没有任何逻辑关系) 命令1&&命令2(当命令1正确执行,命令2才执行;命令1执行不正确,命令2不会执行。) 命令1||命令2(当命令1执行不正确,命令2才执行;命令1执行正确,命令2不执行。) 6、 单引号''(在单引号中所有特殊符号都没意义) 双引号""(在双引号中所有特殊符号都没意义)注意:“$”(调用变量的值)“`”(引用命令)“\”(转义符) 反引号``和$()(括起来的内容是系统命令和$()作用一样,用来引用系统命令) $ (用于调用变量的值) () (执行一串命令时,需要重新开一个shell进行执行) {} (执行一串命令时,是在当前shell进行执行) [] (用于变量测试) # (注释) \ (转义符) 7. set (会查询系统中所有的变量,包含用户自定义变量和环境变量) env (只能查看环境变量) set -u (当设置了-u选项后,如果调用没有设定的变量会有报错。默认是没有任何输出的。) unset 变量名(变量删除)注意:用户自定义变量只在当前shell中生效,子shell中不生效
8、位置参数变量(不适合普通用户的使用) $n (n为数字,$0代表命令本身,$1-$9代表第一到第九个参数,十以上的参数需要用大括号包含,如${10}) $*(这个变量代表命令行中所有的参数,$*把所有的参数看成一个整体) $@(这个变量也代表命令行中所有的参数,不过$@把每个参数区分对待) $#(这个变量代表命令行中所有参数的个数)
9、预定义变量 $?(最后一次执行的命令的返回状态。如果这个变量的值为0,证明上一个命令正确执行;如果这个变量的值为非0,具体是哪个参数由命令自己来决定,则证明上一个命令执行不正确了。) $$(当前进程的进程号PID) $!(后台运行的最后一个进程的进程号PID)
10、基础正则表达式 *(前一个字符匹配0次或任意多次) .(匹配除了换行符外任意一个字符) ^(匹配行首。) $(匹配行尾) [](匹配中括号中指定的任意一个字符,只匹配一个字符) [^](匹配除中括号的字符以外的任意一个字符) \(转移字符)
35、创建软连接:ln -s [源文件或目录] [目标文件或目录]
例如,在当前路径下创建软链接文件test引向/var/log/message
ln -s /var/log/message test
删除软连接:rm -rf test
在删除软连接目录时要注意,后面加不加“/”是有区别的:
(1)、没有“/”,即rm -rf /tmp/log
是直接删除软连接目录
(2)、加了“/”,即rm -rf /tmp/log/
是删除源目录下的所有文件,而软连接本身没有被删除
36、查找某个服务部署路径
ps -ef|grep java 先进行筛选出某个服务进程号
ls -l /proc/某个服务进程号 即可查看出某个服务具体部署路径
37、
999、待续......