Linux常用命令运用

重启电脑

service network restart

立即关机

shutdown -h now

1分钟过后关机

shutdown -h 1

立即重启

shutdown -r now

关机

halt

在关机之前保存内容

sync

注销当前用户

logout

查看软件下载的位置

whereis 软件名

查看本机的网卡信息

ifconfig

显示当前目录下的文件夹

ll

横着显示文件夹里的文件

ls

竖着显示文件夹里的文件

ls -l

竖着显示并且带有隐藏文件

ls -al

查看当前本机用户名

whoami

当前目录

./

上一级目录

../

切换目录

cd

查看当前某个进程

ps -ef|grep 软件名

执行退出

exit

查看目录/文件当前路径

pwd

切换用户

su root

清屏

clear

帮助命令

# 方式1:按Q键退出
man ls

# 方式2:查看内部命令
help cd

# 方式3:查看外部命令
ls --help

# 方式4
info

文件操作

1. 创建目录: mkdir 目录
2. 创建多级目录: mkdir -p 目录1/目录2/目录3/....
3. 删除目录: rmdir 目录名
4. 强制删除目录: rm -rf 目录
5. 创建txt格式的文件: touch 文件名.txt .....  --- 一次性可创建多个文件
6. 复制文件: cp -a 文件名 相对路径or绝对路径
7. 把原目录复制到新目录: cp -r 原目录  新目录 --- 如果存在就强制覆盖
8. 删除文件或者目录: rm 文件 / 目录
9. 重命名: mv 原文件名  新文件名
10-0. 移动目录到某个位置: mv 文件名 /路径
10-1. 把当前目录下的所有目录文件移动到指定路径下:mv * /路径
11. 查看文件内容<.txt>: cat 文件
12. 显示行号查看文件内容: cat -n 文件名
13. 分页查看文件内容: cat -n 文件 | more
	-- 按空格键:下一页
	-- 按回车键:查看下一行
	-- 按q:退出分页模式
	-- Ctrl+F:向下滚动一屏
	-- Ctrl+8:返回上一屏
	-- =:输出当前行的行号
	-- :f: 输入文件名和当前行的行号
	-- 全凭的方式打开文件内容: more 文件
14. less 文件名: 与 more 相似,更好的是可以往前翻页
15. tail -n 文件名: 仅查看尾部,还可以指定行数
16. head -n 文件名: 仅查看头部,还可以指定行数
17. 向屏幕输出带空格的字符串: echo hello world
18. 查看文件里指定前多少行的内容: head -n 数字 文件
19. 查看文件里指定后多少行的内容: tail -n 数字 文件
20. 跟踪文件: tail -f 文件<.txt>格式
21. 压缩: gzip 文件
22. 解压: gunzip 文件.gz
23. 对该路径下所有文件压缩成(自己命名).zip: zip -r (自己命名).zip /路径 或者 /*
24. 把该压缩文件解压到指定路径: unzip -d 路径  已有的压缩文件(.zip格式)
25. 压缩文件: tar xzf 文件.gz.tar
26. tar -zcvf xxxx.tar.gz 文件1+空格+文件2..:把文件1和文件2甚至更多文件打包压缩为xxxx.tar.gz
27. tar -zcvf xxxx.tar.gz 路径/*:压缩该路径下的所有文件进行整体打包为 xxxx.tar.gz
28. tar -zxvf 已有的的解压文件.tar.gz:解压当前目录
29. tar -zxvf 已有的的解压文件.tar.gz -C  路径:把打包压缩的文件解压到该路径下
30. 查看文件有多少行:wc -l 文件名
31. 打包:tar cjf xxx.tar.gz 解压后存放的路径

vi和vim

就是一个文本编译器,而vim是vi的增强版

  • 正常模式
  • 命令模式
    • 退出保存:ZZ
    • 代码格式化:gg=G(即连续按2个g,再按=,再按G)
    • 上、下、左、右:方向键或者k、j、h、l
    • 跳到文件头部:gg
    • 跳到文件尾部:G
    • 跳到某行行尾:$
    • 跳转到某行开头:行号+G(比如跳到200行开头->200G)
    • 跳转到某行末尾:行号+$(比如跳到200行末尾->200$)
    • 向下移动n行:行号+回车
    • 撤销:u
    • 反撤销:ctrl+r
    • 删除光标后面的字符:x
    • 删除光标前面的字符:X
    • 删除一个单词:dw(注意保证光标在单词的最前面,不然只能删除光标后面的部分)
    • 删除当前行光标前面部分:d0
    • 删除当前行光标后面部分:D或者d$
    • 删除当前行(整行):dd
    • 删除多行:ndd(如10dd,即从当前位置起,往下删除10行(包括当前行)
    • 删除当前位置后面的所有内容:dG(包括当前行)
    • 删除当前位置前面的所有内容:dgg(包括当前行)
    • 复制当前行:yy
    • 粘贴复制内容:p(当前行下一行);P(当前行上一行)
    • 复制多行:nyy(如3yy,即从当前位置起,往下复制3行(包括当前行)
    • 替换当前字符(单个):输入r,然后在输入要替换的字符
    • 替换当前字符(多个):输入R,然后在输入要替换的字符
    • 显示行数:set nu
  • 进入编辑模式
    • a:从光标后面开始插入
    • A:会跳到行尾并从光标后面开始插入
    • i:从光标前面开始插入
    • I:会跳到行首并从光标前面开始插入
    • o:会在光标下一行新建空白行插入
    • O:会在光标上一行新建空白行插入
    • s:删除光标盖住的字符开始插入
    • S:删除光标所在行后开始插入
    • Esc键:回到命令模式
    • set nu:添加行号
    • set nonu:取消行号
    • 查找内容::/+你要查的内容
    • s/old/new:如:s/exit/quit,将exit替换为quit(只替换当前行第一处)
    • s/old/new/g:文本替换(替换当前行全局)
    • 10-20s/old/new/g:范围行内替换
    • %s/old/new/g:当前文件内进行替换

添加用户

useradd 用户名

查询用户信息

id 用户名

添加用户到指定的位置

useradd 用户名 -d 指定的目录地址

给已添加的用户设置密码

[root@rabbit ~]# passwd test
更改用户 test 的密码 。
新的 密码: 123456(密码不会被看到)
无效的密码: 密码少于 8 个字符
重新输入新的 密码: 123456(密码不会被看到)
passwd:所有的身份验证令牌已经成功更新

删除用户,会保留家目录

userdel 用户名

彻底删除用户

userdel -r 用户名

添加用户组

groupadd 组名

删除用户组

groupdel 组名

创建用户名+指定组

useradd -g 组名 用户名

修改用户组

usermod -g 新用户组  用户名

修改文件所有者

chown 用户名 文件名
通过递归的方式修改文件所有者: chown -R 用户 目录<包括该该目录下的所有子目录所有者>

修改文件所在组

chgrp 所指定的组名  要修改的文件名
通过递归的方式修改文件所有组: chgrp -R 用户 目录<包括该该目录下的所有子目录所有组>

文件类型

1. - : 表示普通文件
2. d : 表示目录
3. l : 表示软连接
4. c : 表示字符设备
5. l : 符号连接
6. f : 命名管道
7. s : 套接字文件
8. b : 块文件
9. rw : 表示文件所有者拥有的权限,有读写的权限
10. r-- : 文件所在组,root组
11. 后面r-- : 表示文件其他组的用户权限
12. rwx: 表示有读写和执行的权限

字符权限表示方法

1.r=读
2.w=写
3.x=执行

数字权限表示方法

1. r=4
2. w=2
3. x=1
4. 比如:chmod 755 文件名

权限参数

1. u: 表示所有者
2. g: 表示所有组
3. o: 表示其他人
4. a: 表示所有用户,是所有组,其他人的结合
5. chmod u=rwx,g=rx,o=x  文件名 : 修改该文件的所有者拥有读写可执行的操作,所有组拥有读写的操作,其他人拥有可执行的权限
6. chmod o+w 文件名: 给其他人添加写的权限
7. chmod a-x 文件名: 给所有者,组,其他人减去可执行的操作

开放端口

firewall-cmd --permanent --zone=public --add-port=端口号/tcp
systemctl restart firewalld

关闭/删除防火墙

systemctl stop firewalld / systemctl disable firewalld

把指定内容写入到文件中

echo 内容 > 文件

替换

echo "替换后新的内容" >> 文件

查看某个端口是否存在

查看某个端口是否存在: lsof –i:端口号

查看服务器的内存大小

free -m

显示日历

cal

显示该年的日历

cal 年份

查看环境变量

echo $path

查看用过的指令

history

查看用过的10个指令

history 10

在history查出指令后,执行历史编号为多少的指令

!数字

显示当前时间信息

date

查看年月日信息

date “+%Y-%m-%d”

查看年月日时分秒信

date “+%Y-%m-%d %H:%M:%S”

修改系统时间

date -s “时间”

查找该路径下的按名字查看文件

find 路径 -name 文件名(.txt)

按路径查找用户

find 路径 -user 用户

把原本的文件去掉注释,并且复制到新的文件中

cat sentinel.conf |grep -v "#" | grep -v "^$" >> redis-sentinel-26379.conf
grep -v "#" filebeat.yml | grep -v "^$"

把该文件的某些内容替换后克隆一份到新的文件中

# 比如
[root@rabbit config]# sed ‘s/6379/6383/g‘ redis-6379.conf > redis-6383.conf

软件包管理器

centos、RedHat使用yum包管理器,软件安装包格式为rpm

Debian、Ubuntu使用apt包管理器,软件安装包格式为deb

rpm安装方式

-i : 安装软件包
-q : 查询软件包
-e : 卸载软件包

阿里云镜像站

https://opsx.alibaba.com/mirror?lang=zh-CN

# 查看yum源
vim /etc/yum.repos.d/CentOS-Base.repo

yum安装方式

# 安装
yum install 软件包
# 卸载
yum remove 软件包
# 查看软件包
yum list 软件包
# 升级软件包
yum update 软件包

源代码编译安装方式

# 例子
wget http://download.redis.io/releases/redis-5.0.6.tar.gz
tar xzf redis-5.0.6.tar.gz
cd redis-5.0.6
./configure
make && make install

内核

查看内核版本

uname -r

kernel

https://www.kernel.org/

# 安装拓展软件包
yum install epel-release -y

# 安装kernel内核版本
yum install kernel

查看当前终端下的进程状态

ps

查看不同的终端

ps -e|more

显示某个线程的信息

ps -ef|grep 线程名

查询进程信息和系统信息

top

杀死进程

kill -9 pid

查看内存使用率

[root@rabbit ~]# free

# 以多少兆的方式显示
[root@rabbit ~]# free -m

# 以多少T的方式显示
[root@rabbit ~]# free -g

查看磁盘

fdish -l

parted -l

df -h

服务器和服务器之间的传递文件

scp /var/lib/rabbitmq/.erlang.cookie root@192.168.182.129:/var/lib/rabbitmq/

精准查看节点

ps aux|grep -i elasticsearch|grep 5200|grep node01

查看所有进程

jps

rsync远程同步工具

主要是备份和镜像。具有速度快、避免复制相同内容等优点

rsync和scp的区别:rsync是做文件复制要比scp的速度快,只对差异文件做更新

rsync -rvl /opt/test.txt node02:`pwd`

系统定时任务

启动

systemctl start crond.service

语法

选项 功能
-e 编辑crontab定时任务
-l 查询crontab任务
-r 删除当前用户所有的crontab任务
-u 设置某个用户的任务
-i 打印提示
crontab [参数]

执行任务

项目 含义 范围
第一个 "*" 一个小时中的第几分钟 0-59
第二个 "*" 一天中的第几个小时 0-23
第三个 "*" 一个月当中的第几天 1-31
第四个 "*" 一年当中的第几月 1-12
第五个 "*" 一周当中的星期几 0-7

特殊符号

特殊符号 含义
* 代表任意时间都会执行一次
, 代表不连续的时间,比如 "0 8,12,16 * * *",代表每天的8:00,12:00,16:00
- 代表连续的时间,比如 "0 5 * *",范围1-6,表示周一到周六的凌晨5:00
*/n 每个多少分钟执行一次

Linux常用命令运用

上一篇:WPF 中的DataTemplate 的嵌套


下一篇:Linux知识心得02