Linux常用命令
1、文件查看
# 获取当前所在位置
pwd
# 查看文件列表
ls
ll
# 查看隐藏文件
ll -a
# 查看文件详细信息
stat
2、查看帮忙
#查看命令使用方式
ls ---help
3、创建文件或文件夹
# 创建空文件
touch a.txt
# 创建文件夹
mkdir test
# 自动创建父文件夹
mkdir -p a/b
4、移动文件
# 重命名文件或者文件夹
mv a.txt b.txt
# 移动文件
mv b.txt test
5、切换目录
# 切换到指定目录
# 可以使用相对路径,也可以使用绝对路径
# .:当前目录,..:上一级目录,/:代表根目录
cd /root
6、切换用户
# 从root用户切换到普通用户,不需要密码
su qx
# 从普通用户切换到root用户,需要面膜
su root
7、删除文件
# 删除文件,需要确认
rm student.txt
# 删除文件夹,需要确认
rm -r a
# 不需要确认,删除所有
rm -rf shujia
8、复制
# 复制文件
cp student.txt student_copy.txt
# 复制文件夹
cp -r test/ /home/qx/
9、查看网络链接
ifconfig
10、编辑文件
# 打开文件
vim student.txt
# 命令行模式
# 主要完成功能有删除、替换、撤销。
# dd 删除所在行 *
# yyp 复制
# ddp 剪切
# 切换到插入模式
# i 在光标左侧输入正文 *
# I 在光标所在行的行首输入正文
# a 在光标右侧输入正文
# A 在光标所在行的行尾输入正文
# o 在光标所在行的下一行增添新行,光标位于新行的行首 *
# O 在光标所在行的上一行增添新行,光标位于新行的行首
#末行模式
#保存、查找。
#:wq 保存文件,退出vi编辑器 *
#:w 保存文件,但不退出vi编辑器
#:q 退出vi编辑器
#:q! 不保存文件,退出vi编辑器 *
#ZZ 保存文件,退出vi编辑器
# 查看,下一个:n
# :/男
11、修改ip地址
#切换到网卡配置目录
cd /etc/sysconfig/network-scripts/
# 修改ip
vim ifcfg-ens33
# 删除UUID,修改IPADDR
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.233.101
PREFIX=24
GATEWAY=192.168.233.2
DNS1=192.168.233.2
# 重启网卡
systemctl restart network
12、远程复制
# 1、将本地的一个文件复制到远程主机
scp student.txt 192.168.233.102:/root
# 复制文件夹
scp -r test/ 192.168.233.102:/root
# 2、将远程主机的文件复制到本地
scp 192.168.233.102:/root/student.txt /root
13、查看文件内容
# 打印所有内容
cat student.txt
# 反过来打印
tac student.txt
# 查看前面部分
head student.txt
# 查看指定行数
head -n 100 student.txt
# 查看文件末尾
tail student.txt
# 实时查看文件新的内容
tail -f student.txt
# 分屏显示
more student.txt
14、压缩和解压
# 1、打包不压缩
tar -cvf shujia.gz shujia/
# 2、打包同时压缩
tar -zcvf shujia.gz shujia/
# 3、解压
tar -zxvf shujia1.gz
# 4、解压zip文件
unzip python-3.7.9-amd64.zip
15、查看文件大小
du -h
# du -a 统计全部目录及其子目录下的每个档案所占的磁盘空间
# du -h 统计全部目录及其子目录所占的磁盘空间
# du -ch <dir> 统计对应目录及子目录所占空间并添加total
# du -sh <dir> 直接统计总大小
16、查看硬盘使用情况
df -h
fdisk -l
17、修改主机名
# 修改主机名
hostnamectl set-hostname master
hostnamectl set-hostname node1
hostnamectl set-hostname node2
# 修改hosts文件,所有节点都需要修改
vim /etc/hosts
192.168.233.101 master
192.168.233.102 node1
192.168.233.103 node2
# 修改windows系统的hosts文件
# C:\Windows\System32\drivers\etc\hosts
192.168.233.101 master
192.168.233.102 node1
192.168.233.103 node2
18、配置yum源
# 下载源文件,替换linux自动源文件
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
# 清除缓存
yum clean all
# 生成缓存
yum makecache
19、安装python3环境
# 安装依赖
yum install epel-release
# 安装python
yum install python3
# 安装第三方python以来
pip3 install requests -i https://pypi.mirrors.ustc.edu.cn/simple/
20、关闭防火墙
# 查看状态
systemctl status firewalld
# 禁用开机自启动
systemctl disable firewalld
# 关闭防火墙
systemctl stop firewalld
21、sudo
# 使用管理员执行命令
sudo rm -rf a.txt
22、查看进程
# 查看所有进程
ps -aux
# 查看指定名称的进程
ps -aux | grep python
23、grep
# 过滤数据
grep 男 student.txt
# | :管道,将前面命令的结果传递给后面的命令
cat student.txt | grep 男
24、用户管理
# 1、创建用户,在home目录下会为用户创建一个家目录
useradd shujia
# 2、设置密码
passwd shujia
# 3、使用新用户链接服务器
# sshL:远程连接命令
ssh shujia@master
# 4、删除用户
userdel shujia
25、权限管理
# r:读,w:写,x:执行
# 1、增加权限
chmod o+w a.txt
# 2、删除权限
chmod o-w a.txt
# 3、二进制方式关联权限
# rw- rw- r--
# 二进制表示方式
# 110 110 100
# 十进制表示方式
# 6 6 4
# rwx rwx rwx ---> 777
chmod 777 a.txt
26、修改文件所属用户
chown qx:qx a.txt
27、kill进程
# 强制杀死进程
kill -9 9143
28、分割数据
# -d:指定分隔符
# -f 指定获取第一个字段
cut -d"," -f1 student.txt
# 使用awk分割数据
cat student.txt | awk -F"," '{print $1}'
29、输出重定向
# 覆盖
echo "shujia" > a.txt
# 追加
echo "shujia" >> a.txt
30、获取指定路径中的文件名
basename /root/shell
31、获取日期
date '+%Y%m%d'
32、免密
# 1、在master中生成密钥文件
ssh-keygen
# 2、将密钥文件复制到远程服务器
ssh-copy-id master
ssh-copy-id node1
ssh-copy-id node2
# 3、测试
ssh root@node1
33、定时执行
# 查看当前用户的定时任务
crontab -l
# 新疆定时任务
crontab -e
# 删除定时任务
crontab -r
时间格式如下:
f1 f2 f3 f4 f5 program
其中 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...个小时要执行,其馀类推
* * * * *
- - - - -
| | | | |
| | | | +----- 星期中星期几 (0 - 6) (星期天 为0)
| | | +---------- 月份 (1 - 12)
| | +--------------- 一个月中的第几天 (1 - 31)
| +-------------------- 小时 (0 - 23)
+------------------------- 分钟 (0 - 59)
1 * * * *
# 使用crontab时所有需要指定路径的位置都需要使用绝对路径
# 1、每小时第58分钟执行一次
58 * * * * bash /root/bak_zip.sh /root/shell
# 2、每天执行一次
1 0 * * * bash /root/bak_zip.sh /root/shell