https://www.linuxcool.com/find

文件查看

执行ls -l a.txt之后得出的目录如下,其中第一个-表示普通文件,如果是d则表示目录,l表示软连接
后面跟的则是权限,分别表示用户,组,其他用户的权限

  1. -rwxrwxrwx. 1 root root 0 9 15 17:02 a.txt

当前路径

pwd

当前用户

whoami

开关机

reboot   普通重启
shutdown -r now 立刻重启(root用户使用)
shutdown -r 10 过10分钟自动重启(root用户使用)
shutdown -r 20:35 在时间为20:35时候重启(root用户使用)
如果是通过shutdown命令设置重启的话,可以用shutdown -c命令取消重启

poweroff 立刻关机
shutdown -h now 立刻关机(root用户使用)
shutdown -h 10 10分钟后自动关机

shell

/bin/echo //输入后面跟的内容比如这句话的作用就是输入hell world
/bin/bash    //启动一个bash终端与用户交互

文件操作

mkdir libr    //新建一个libr文件夹
vi conf.text    //打开conf.text文件,如果没有就新建,之后按下i进入编辑模式,esc退出,:wq保存退出,:q!不保存
ls 列出当前文件夹下面的文件与文件夹,后面可以跟目录,如 ls /home
rm conf.text    //删除文件
rm -rf test/*    //删除test文件夹下面的所有文件但是不删除test文件夹
rm -rf test/    //删除test文件夹下面的所有文件同时删除test文件夹
mv a ssl    //将a移动到ssl文件夹下面
cat file > file1     //将file的内容输出到file1,相当于复制

端口占用

netstat命令各个参数说明如下:
-t : 指明显示TCP端口
-u : 指明显示UDP端口
-l : 仅显示监听套接字(所谓套接字就是使应用程序能够读写与收发通讯协议(protocol)与资料的程序)
-p : 显示进程标识符和程序名称,每一个套接字/端口都属于一个程序。
-n : 不进行DNS轮询,显示IP(可以加速操作)

netstat -ntlp   //查看当前所有tcp端口·
netstat -ntulp |grep 80   //查看所有80端口使用情况·
netstat -ntulp | grep 3306   //查看所有3306端口使用情况·

服务centos7

systemctl status docker.service    //查看docker服务的状态
systemctl stop 服务名.service    //停止服务
systemctl start 服务名.service    //开启服务
systemctl restart 服务名.service    //重启服务

软件

rpm -e 软件名 -test    //测试卸载软件是否有依赖关系
rpm -e 软件名    //卸载软件

yum命令

yum      install       softwarename        安装
yum      repolist                          列出设定yum源的信息
yum      remove        softwarename        卸载
yum      list          softwarename      查看软件源中是否有此软件
yum      list all                         列出所有软件名称
yum      list installd                    列出已经安装的软件名称
yum      list available               列出可以用yum安装的软件名称
yum      clean all                        清空yum缓存
yum      search         softwarename    根据软件信息搜索软件名字
yum      whatprovides   filename       在yum源中查找包含filename文件的软件包
yum      update                           更新软件
yum      history                          查看系统软件改变历史
yum      reinstall       softwarename     重新安装
yum      info            softwarename     查看软件信息
yum      groups list                      查看软件组信息
yum      groups info     softwaregroup    查看软件组内包含的软件
yum      groups install  softwaregroup    安装组件

tar

解压文件

tar -zxvf 文件
// 解压到指定目录
tar -zxvf 文件 -C 目录

压缩文件

tar -czvf 压缩之后的文件名 需要压缩的文件目录

删除

// 删除文件夹以及文件夹下面的所有文件 进入上级目录
rm -rf webapps/
// 删除文件夹中所有文件但是不包括文件夹本身 进入目录
rm -rf *
// 删除除了dir1和dir2之外的全部,报错使用shopt -s extglob命令
rm -rf !(dir1|dir2)

启动tomcat

ps aux | grep tomcat //查看tomcat进程,第一个数字就是进程号
kill -9 xxx // 停止已经启动的tomcat进程
./startup.sh // 启动tomcat实例,目录为bin目录下面
./tail -f catalina.out // 查看日志,目录在logs下边

查找

find

find命令用于查找文件名

// 查找目录下ins开头的文件
find /home/mysql -name 'ins*'  
// 查找当前目录
find -name 'ins*'
// 查询大于1M的文件
find -type f -size +1M

grep

grep用于搜索文本内容

// 在多个文件中查找match_pattern字符串
grep "match_pattern" file_1 file_2 file_3 ...
grep -C 5 foo file 显示file文件里匹配foo字串那行以及上下5行
grep -B 5 foo file 显示foo及前5行
grep -A 5 foo file 显示foo及后5行

wc

统计行数

docker images |wc -l

which

which命令用于查找并显示给定命令的绝对路径

// 当前执行的cd命令在哪个文件夹中
which cd

ps

// 通过名字查看进程号
ps -aux | grep mysql
// 通过进程号查看端口号
netstat -nlp | grep 进程号

chmod

// 查看权限
ls -l a.txt
// 添加权限
chmod username+x a.txt
// 给所有用户添加权限
chmod +x a.txt
// 数组方式添加权限。读r=4,写w=2,执行x=1
chmod 777 a.txt  // 因为7=4+2+1,因此有读写执行权限
// 执行文件所属用户
chmod -R 用户名 文件名

主机名

hostname  // 查看主机名

快捷方式

ln -s 实际文件名 快捷方式名

查看历史命令

history

远程拷贝

scp 
rsync

system

常用命令

// 查看配置文件路径与状态
systemctl stauts docker

daemon-reload

这个命令只有修改了软件启动脚本会使用,通过修改启动脚本来修改docker仓库地址为例:
进入centos7的脚本配置目录:

cd /usr/lib/systemd/system
ls docker.s*

修改:

vim docker.service

找到Service节点的ExecStart,添加

--registry-mirrors=地址

使配置生效,这时候才需要用到daemon-reload命令:

system daemon-reload

tree

// 安装
yum search tree
yum install tree.x86_64
// 使用
tree /opt/registry/

安装vim

apt-get install vim
// 如果报错执行 Unable to locate package vi
apt-get update

上传文件

安装软件

yum -y install lrzsz

使用

rz

修改密码

passwd 用户
// 强制修改密码
echo '密码'|passwd --stdin 用户

ftp

sftp

sftp -oPort=端口 用户名@ip

ftp

ftp host 端口

vim

替换

https://blog.csdn.net/Wang20122013/article/details/123897210

:s/str1/str2/ 替换当前行第一个 str1 为 str2
:s/str1/str2/g 替换当前行中所有 str1 为 str2
:m,ns/str1/str2/ 替换第 n 行开始到最后一行中每一行的第一个 str1 为 str2
:m,ns/str1/str2/g 替换第 n 行开始到最后一行中所有的 str1 为 str2
(注:m和n 为数字,若m为 .,表示为当前行开始;若n为$,则表示到最后一行结束)

如果使用 # 作为分隔符,则中间出现的 / 不会作为分隔符,比如: :s#str1/#str2/# 替换当前行第一个 str1/ 为 str2/

https://zhidao.baidu.com/question/489959298174657092.html
确认替换,把 abc 替换成 ABC 并在每次替换前寻问。y 就是替换,n 就是跳过, 是不再继续替换,a 是剩下的全替换。还有 q l 啥的不太实用。

%s/abc/ABC/gc