Linux常用命令
ls -la 查看当前文件夹的文件
mrdir 目录名称 [创建目录,创建 文件夹]
关机,重启
shutdown -h now 关机
shutdown -h 1 [1分钟后关机]
shutdown -r now 重启系统
halt 关机
reboot 重启系统
sync 将内存的数据保存到硬盘
查看端口是否被占用
netstat -tunlp
用户切换,注销
su root 切换成系统管理员
exit 退回原先的用户
logout 注销
用户管理
useradd 用户名 创建用户名和用户组,与用户名一样的组名
useradd -g 用户组 用户名 | 创建用户名并指定组
uid=0(root) gid=0(root) groups=0(root)
usermod -g 用户组 用户名 |修改用户的组名
usermod -g sl cjh uid=0(root) gid=0(root) groups=0(root)
passwd 用户名 为用户创建密码
userdel 用户名 删除用户,但保存用户目录[一般使用这个]
userdel -r 用户名 删除用户,用户目录也一起删除
id 用户名 查看用户信息. uid=0(root) gid=0(root) groups=0(root)
uid=0(root) gid=0(root) groups=0(root)
whoami 查看当前用户名
用户目录文件
vim /etc/passwd 用户配置文件,记录用户的各种信息
vim /etc/shadow 用户密码文件,口令的配置文件
vim /etc/group 组配置文件
用户组管理
groupadd 组名 创建用户组
groupdel 组名 删除用户组
ls -ahl
|
查看文件所有者
|
chown 用户名 文件名
|
修改文件所有者
|
chgrp 组名 文件名
|
修改文件目录所在组
|
usermod -g 组名 用户名
|
修改用户所在组
用root 的管理权限可以改变某个用户的所在组
|
帮助命令
man ls 查看LS命令的使用帮助
help ls
文件目录
命令
|
说明
|
pwd XXX
|
显示当前目录
|
ls -la
|
显示当前目录文件 -a显示所有文件,-l 以列表的方式显示
|
cd 目录名
|
切换目录 ..上一层的目录,~和cd直接回到家目录。/ 回到根目录
|
mkdir [选项] 目录名
mkdir -p /use/local/src
|
创建目录
-p 递归创建目录
|
rmdir 目录名
|
删除空目录
|
rm -rf 目录名
rm 文件名
rm -rf 文件名()
|
删除文件和目录
删除一个非空目录
-rf 不会提示是否删除
|
touch 文件名
touch 文件名 文件名1 文件名2
|
创建文件,可以创建多个文件
|
cp 文件名 目录
cp a.txt bbb/
cp -r aaa/ bbb/
\cp -r aaa/ bbb/
scp -r kvm 10.10.10.20:/home/
|
复制文件
-r 递归复制文件
复制整个目录
\ 发现目标目录下有相同的文件不提示强制覆盖
网络复制,从本机复制到目标机器
|
mv a.txt bbb/
|
移动文件
a.txt 要移动的文件
bbb/ 目标目录
|
less 文件名
|
查看大文件快。空格键 向下看一页, enter 看一下行。
按键操作
/字符串:向下搜索“字符串”的功能
?字符串:向上搜索“字符串”的功能
n:重复前一个搜索(与 / 或 ? 有关)
N:反向重复前一个搜索(与 / 或 ? 有关)
b 向后翻一页
d 向后翻半页
h 显示帮助界面
Q 退出less 命令
u 向前滚动半页
y 向前滚动一行
空格键 滚动一行
回车键 滚动一页
[pagedown]: 向下翻动一页
[pageup]: 向上翻动一页
|
more 文件名
|
查看文件
|
>
>>
ls -l > 文件名
cat 文件名 >> 文件名
echo "内容" > 文件名
|
> 覆盖写
>>追加写
可以将一个文件追加到另一个文件中
如果文件不存在会自动创建文件并写入
echo "内容" > 文件名 ,将内容里的文件覆盖写入文件名
|
echo APATH
|
输出内容到控制台
输出环境变量的路径
|
head -n 5 文件名
|
用于显示文件的开头部分
-n 5 显示前5行,默认显示前10行
|
tail -n 5文件名
tail -f mydate.txt
|
显示文件的尾部
默认显示尾部 10
案例:实时监控日志文件是否有写入
tail -f mydate.txt
|
ln -s 连接目录 名称
|
软连接,快捷方式
|
rm -rf 软连接名
|
删除软连接时 软连接名不要带 /
|
history
history 10
|
查看已执行过的历史指令
|
! 178
|
执行编号178的指令
|
mv file1 file2
|
把当前目录下的file1文件名改成file2,如果该目录下有file2,则覆盖以前的file2文件。
|
时间日期指令
date
date "+%Y-%m-%d"
date "+%Y-%m-%d %H: %M: %S"
date -s "2022-08-22 18:35:58"
|
显示当前时间信息
年月日
年月日时分秒
设置日期
|
cal
cal 2020
|
查看日历
查看全年的日历
|
搜索查找指令
find [搜索范围] [选项]
find /home hello.txt
find /home -user cjh
find / -size +20M
find / *.txt
选项说明
*
name : 按名字来查
-user : 按用户来查
-size :按文件大小查
|
搜索
按文件名查
按用户查
按文件大小查
+20M:大于20M,
-20M:小于20M,
20M:等于20M
k要小写
|
locate 文件名
|
可以快速定位文件路径,有数据库的,不去扫描磁盘,所以快。
使用前先使用updatedb命令更新数据库,再用locate 文件名查询
|
which ls
|
查看某个指令在哪个目录下
|
grep [选项] 查找内容 源文件
grep -n "yes" /home/hello.txt
|
指令和管道符号|
过滤查找
选项
-n 显示匹配行和行号
-i 忽略字母大小写
|
压缩和解压
gzip 文件名
|
压缩文件
|
gunzip 文件名
|
解压文件
|
zip [选项] 文件名或目录名
zip -r myhome.zip /home/
|
压缩 在项目打包发布中很有用
选项
-r 递归压缩,即压缩目录
|
unzip [选项] 目标目录 解压文件
unzip -d /opt/tmp /home/myhome.zip
|
解压
选项
-d 目录 :指定解压后文件的存放目录
|
tar [选项]
tar -zcvf test.tar.gz a1.txt a2.txt
|
打包指令
选项
-c 创建个tar文件
-v 显示详细信息
-f 指令压缩后的
-z 打包并压缩
-x 解压
tar -zcvf test.tar.gz a1.txt a2.txt 压缩多个文件
tar -zcvf test.tar.gz /home/ 压缩目录
tar -zxvf test.tar.gz 解压到当前目录
tar -zxvf test.tar.gz /home/ 解压指定目录,目录要存在
.tar -xvf
|
目录权限
ls -l
-rw-r--r-- 1 root root 650 Aug 20 21:45 cjh.txt
|
从左到右看
- 文件类型: -普通文件,d目录,l 软连接,c 字符设备
[键盘,鼠标], b 块文件,硬盘
rw- 表示文件所有者有读r 写w 权限(rwx)
r-- 表示文件所在组用户有读的权限(rwx)
r- 表示文件的其他组用户的权限 (rw)
1 如果是文件,表示 硬连接,如果是目录表子目录的
数量
root 文件所有者用户
root 文件所在组
650 文件大小
Aug 20 21:45 最后修改时间
cjh.txt 文件名
|
rwx权限详解
|
作用到文件
r 可读
w 可写,但不一定可以删除,删除一个文件的前提条件是对该文件所在目录有写权限,才能删除该文件
x 表示可执行
作用到目录
r 可读
w 可写,可以修改,目录内创建+删除+重命名目录
x 表示可执行,可以进入目录
|
chmod
chmod u=rwx,g=rx,0=x 文件名
给文件名 所有者读写执行权限,给组户读写权限,给他组用户执行权限
chmod u-x,g+w 文件名
给文件名 所有者减去执行权限,组用户增加写权限
chmod a=r 文件名
给文件名 所有人的权限
|
修改权限, 修改文件和目录 的权限
第一种: + , - ,= 变更权限
u : 所有者
g : 所有组的用户
0 : 其他组的用户
a : 所有人(u+g+o)
|
第二种方式
规则
|
Crond任务调度(定时任务调度)
用于备份数据库,重复的操作等
crontab
|
基本语法
|
-e
|
编辑定时任务
|
-l
|
查询务
|
-r
|
删除当前用户所有的
|
时间规则
|
快速入门
设置任务调度文件: /etc/crontab
设置个人任务调度,执行 crontab -e 命令
接着输入任务到调度文件
如: */1 * * * * ls -l /etc/ > /tmp/to.txt
说明:每一分钟执行一次指令 ls -l /etc/ > /tmp/to.txt
参数细节明
项目
|
含义
|
范围
|
第一个 *
|
一小时中的第几分钟
|
0-59
|
第二个 *
|
一天当中的第几个小时
|
0-23
|
第三个 *
|
一个月当中的第几天
|
1-31
|
第四个 *
|
一年当中的第几个月
|
1-12
|
第五个 *
|
一周当中的星期几
|
0-7(0和7都表示星期日)
|
特殊符号的说明
特殊符号
|
含义
|
*
|
代表任何时间.比如第一个* 就代表一小时中每分钟都执行一次的意思
|
,
|
代表不连续时间,比如 "0,8,12,16 * * * 命令"就表示在每天的8点0分,12点0分,16点0分都会执行一渔翁命令
|
-
|
代表连续的时间范围.比如 "0 5 * * 1-6 命令" , 代表在周一到周六的凌晨5点0分执行命令
|
*/n
|
代表每隔多久执行一次.比如 : " */10 * * * * 命令",代表每隔10分钟就执行一次命令
|
特定时间执行案例
时间
|
含义
|
45 22 * * * 命令
|
在22点45分执行命令
|
0 17 * * 1 命令
|
每周1的17点0分执行命令
|
0 5 1,15 * * 命令
|
每月1号和15号的凌晨5点0执行命令
|
*/10 4 * * * 命令
|
每天的凌晨4点,每隔10分钟执行命令
|
0 0 1,15 * 1 命令
|
每月1号和15号,每周1的0点0分都会执行命令,
注意星期几和几号最好不要同时出现,因为他们定义的都是天,非常容易让管理员混乱.
|
案例
步骤
(1) vim /home/my/sh 写入内容 date >> /home/mycal 和 cal >> /home/mycal
(2)给my.sh 增加执行权限 , chmode u+x /home/my.sh
(3)crontab -e 增加 */1 * * * * /home/my.sh
at定时任务,一次性定时任务
|
每60秒检测一次
|
ps -ef | grep atd
|
检查atd是否在运行
|
at [选项] [时间 ]
|
at 命令格式
|
Ctrl+D 结束at命令的输入
|
要输入两次
|
编辑虚拟机网络
ifconfig
|
|
ping
|
|
vi /etc/sysconfig/network-scripts/ifcfg-ens33
|
修改配置文件来指定IP
|
ifcfg-ens33文件 说明
|
|
DEVICE=eth0 #接口名(设备,网卡)
HWADDR=00:0C:2X:6X:OX:XX #MAC地址
TYPE="Ethernet" #网络类型(通常是Ethernet)
UUID="ddd28ba5-5aaf-484d-8063-a4501771169d" #随机ID
ONBOOT="yes" #系统启动的时候网络接口是否有效 (yen / no)
BOOTPROTO="dhcp" #IP的配置方法 【none | static | bootp | dbcp】引导时不使用协议|静态分配IP|BOOTP协议|DHCP协议(动态分配IP)
#IP地址
IPADDR=192.168.1.130
#网关
GATEWAY=192.168.1.2
#域名解析器
DNS1=192.168.1.2
|
编辑-》【虚拟机网络编辑器】也要同步修改
|
hostname
|
查看当前主机名
|
vim /etc/hostname
|
修改主机名,指定主机名
修改后重启生效
|
硬盘分区