【CentOS7】
=========Linux运行级别===========
六种运行级别:
0、关机
1、单用户(可用来找回密码)
2、多用户无网络
3、多用户有网络(多用于工作环境)
4、预留
5、图形界面(多用于学习环境)
6、重启
相关命令:
a、切换当前运行级别:【init 3】(仅当前环境下生效,重启后失效)
b、得到当前运行级别:【systemctl get-default】
c、设置默认运行级别:【systemctl set-default graphical.target/multi-user.target】{永久生效}
【注】可以在/etc/inittab中查看相关信息
=========vim命令说明===========
vim三种模式
1.1 正常模式:按【ESC】键进入该模式,可以对文档进行复制、粘贴、删除等操作。
1.1.1 复制当前行:yy (y-yank)
1.1.2 复制当前n行:nyy (如5yy,从光标所在行开始数5行进行复制,包括当前行)
1.1.3 粘贴到指定行或具体位置:p (如果复制的是整行则粘贴到光标所在行的下一行,若复制的是某段内容则粘贴到光标所在位置的后面)
1.1.4 删除/剪切当前行:dd
1.1.5 删除/剪切当前n行:ndd
1.1.6 可视化块操作:v (移动左右方向键选中相应内容,按y复制选中内容,移动光标到指定位置按p粘贴)
1.1.7 取消上次动作:u (u-undo)
1.1.8 将光标移动到第一行:gg
1.1.9 将光标移动到最后一行:G
1.2 插入模式:按【i】键进入该模式。
1.3 命令模式:按【:】键进入该模式。可以对文档进行存盘、查找、退出、显示行号等操作。
1.3.1 保存并退出:【:wq】 (w-write,q-quit)
1.3.2 退出不保存:【:q!] (q-quit)
1.3.3 查找指定条件:【/要查找内容】 (n-查找下一个,N-查找上一个)
1.3.4 替换【:[替换范围]s/被替换内容/新内容/flags】
替换范围:无->当前行;m->第m行;m,n->第m到n行;%->整个文件
flags:g(global)->替换一行中出现的所有匹配,否则只替换一行中的第一次配置内容;c(confirm)->替换前需要确认;i->忽略大小写
s:s是substitute的缩写
1.3.5 显示行号:【:set nu】 (nu-number)
1.3.6 取消行号:【:set nonu】 (nu-number)
1.3.7 取消高亮显示:【:set noh】
1.3.8 将光标移动到指定行:【:行号】
1.4 个性化配置
配置文件:/etc/vimrc
内容:增加如下内容
set nu " 设置显示行号
set tabstop=4 " 设置制表符的宽度为4个空格
set shiftwidth=4 " 设置缩进时使用4个空格
set autoindent " 启用自动缩进
set smartindent " 启用智能缩进
=========Linux命令说明===========
一、开关机
1.1 关机:
1.1.1 shutdown -h now 参数:h->halt,now->马上,now可以改为具体数字表示n分钟后关机。
1.1.2 halt 关机,但不关闭电源,尽量不用该命令
1.2 重启:
1.2.1 shutdown -r now 参数:r->reboot,now->马上,now可以改为具体数字表示n分钟后重启。
1.2.2 reboot
二、用户
2.1 切换用户:su - 用户名 (su-switch user,- 前后有空格的啊)
2.2 注销用户:logout/exit
2.3 新建用户:useradd 用户 (默认将该用户放入与该用户名相同的组中)
useradd -g 用户 (将该用户放入到指定组中)
2.4 设置密码:passwd 用户
2.5 删除用户:userdel 用户 (仅删除用户,不删除该用户的家目录及邮件目录等信息)
userdel -r 用户 (r-remove,将该用户的所有信息都删除)
2.6 修改用户所在组:usermod -g 组 用户
2.7 显示用户信息:id 用户
2.8 查看当前用户:whoami (该用户可能是后切换的)
2.9 查看首次登录用户:who am i
2.10 用户所在文件:/etc/passwd (每行含义->用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell)
2.11 密码所在文件:/etc/shadow
2.12 sudo命令:模拟root来执行某些系统命令(/sbin),比如关机、重启、添加用户等
root把某些系统命令赋给普通用户或组:visudo(实际上是修改/etc/sudoers)
格式如下:
root/#组 ALL=(ALL) ALL
用户名 IP地址【用户可在该IP的机器上执行命令】=(可使用身份) 具体命令
如:lag ALL= /sbin/shutdown -h now =>lag用户可以执行关闭linux命令
sudo -l 可以查看root都赋予它哪些权限
三、组
3.1 新建组:groupadd 组
3.2 删除组:groupdel 组
3.3 组所在文件:/etc/group (每行含义->组名:口令:组标识号:组内用户列表)
四、文件/目录
4.1 显示当前目录:pwd (pwd->print working directory)
4.2 显示目录内容:ls -al (a->all,l->list,可省略写ll)
4.3 切换目录:cd (cd ~ ->切换到当前用户的家目录,cd .. ->切换到上级目录)
4.4 新建目录:mkdir -p 目录 (p->parents,有参数p可以新建多级目录,无参数p则只能建1级目录)
4.5 删除空目录:rmdir 目录 (仅删除1级空目录,不实用)
4.6 删除目录/文件:rm -rf 目录/文件 (rm->remove,r->recursion递归,f->force直接删除不显示是否删除等提示信息,连目录带里面的文件一起删除,慎用啊)
4.7 创建空文件:touch 文件
4.8 拷贝目录/文件:cp -r 源目录/文件 目标目录 (r->recursion递归)
覆盖拷贝不提示:\cp -rf 源目录/文件 目标目录 (r->recursion递归,f-force强制覆盖不提示,因为cp默认使用的是别名【cp -i】,覆盖是要提示的,用\cp则不使用别名)
4.9 移动或重命名目录/文件:mv 源目录/文件 新目录/文件
4.10 查看文件内容:cat 文件 (参数n->带行号显示,|more 多屏显示,空格与ctrl+b翻屏)
4.11 查看文件内容:less 文件 (PgUp/PgDn翻页,/查找内容,q退出,适合显示较大文件)
4.12 查看文件内容:head -n 5 文件 (显示头5行文件内容,默认10行)
4.13 查看文件内容:tail -n 5 文件 (显示尾5行文件内容,默认10行,多用于查看日志)
tail -f 文件 (监控文件变化,ctrl+c退出)
4.14 输出内容到控制台:echo "内容" (echo $PATH/HOSTNAME)
4.15 输出重定向:> (用新内容替换旧内容)
>> (用新内容追加旧内容,如echo "hello" >> /root/111.txt)
4.16 软链接:ln -s 源目录/文件 链接名 (ln->link,类似windows中快捷键方式,存放链接文件的路径)
4.17 硬链接:ln 源文件 链接名 (类似C语言中指向某内存地址的2个指针,源文件与链接名的内容是一样的,任何一个修改另一个也跟着变化)
4.18 删除软链接:rm 链接名 (千万不要加参数-r来删除软链接,因为该参数会删除软链接对应的目录/文件内容而不是删除软链接)
4.19 删除硬链接:rm 链接名 (删除硬链接并不会影响另一个文件)
4.20 查看历史命令:history 10 (查看最近执行的10个命令)
4.21 执行历史命令:!10 (执行编号为10的历史命令)
4.22 字符相关命令:
4.22.1 cut [选项] 文件名 (d 分隔符->按指定分隔符来分割列delimiter;f 列号->提取第几列field。若2列之间用不固定的空格分隔的话该命令就不能用了)
如:cat /etc/passwd|grep /bin/bash|grep -v root|cut -d ':' -f 1 => lag zs 查询所有普通用户
4.22.2 printf '输出类型输出格式' 输出内容
输出类型:
%ns (输出字符串,n-输出几个字符)
%ni (输出正数,n-输出几个数字)
%m.nf (输出浮点数,如%8.2f,输出8位数,其中6位整数2位小数)
输出格式:
\n (换行)
\r (回车)
\t (TAB键)
4.22.3 awk '条件1{动作1} 条件2{动作2} ...' 文件名
如:df -h | awk '{printf $1 "\t" $5 "\t" $6 "\n"}'
df -h|grep sda2|awk '{printf $5}'|cut -d '%' -f 1
df -h|awk 'BEGIN{FS=" "}{printf $1 "\t" $2 "\n"}' (FS="分割符",前面的BEGIN是在读取内容时先做点什么)
五、日期
5.1 显示当前时间:date "+%Y-%m-%d %H:%M:%S" 简写 date "+%F %T"
5.2 设置当前时间:date -s "2024-03-20 20:23:18" (重启失效)
5.3 显示日历:cal 2024 (显示2024年的日历)
六、搜索查找
6.1 查找文件:find 搜索范围 -name 文件名 (从指定目录递归查找指定名称的文件,如:find /root -name hello*)
6.2 快速定位:locate 文件名 (该命令自己建立数据库并在其中查找而不是遍历目录查找,因此要先执行updatedb建立/更新数据库。文件不能匹配通配符)
如: updatedb
locate hello.c
6.3 过滤查找:grep [选项] 要查找内容 源文件 (n->显示行号,i->忽略大小写,v->反向匹配。在某文件或管道中查找内容)
如: grep -n "prin" /root/test/hello.c
cat /root/test/hello.c | grep -n "prin"
6.4 查找命令所在位置:which 命令
七、压缩解压
7.1 内部命令
7.1.1 压缩:gzip 文件 (该命令只能压缩文件,不能压缩目录,要想压缩目录必须与tar联合使用,该命令默认不保留源文件)
7.1.2 解压:gunzip 文件
7.1.3 打包:tar [选项] xxx.tar.gz 打包内容 (tar将某目录下所有内容归档成一个.tar文件,然后用gzip将该文件压缩成.tar.gz文件来实现压缩目录)
如:tar -zcvf home.tar.gz /home (z-用gzip压缩,c-建立新.tar文件,v-显示详细信息,f-指定压缩后文件名该参数一定要放到最后一个)
7.1.4 拆包:tar [选项] xxx.tar.gz -C 拆包后存放路径
如:tar -zxvf home.tar.gz -C /root (x-释放,C-指定释放路径,无则默认当前目录)
7.2 外部命令
7.2.1 压缩:zip [-r] xxx.zip file1 file2... (该压缩格式与windows通用,若要压缩目录则加参数r。但该命令不是linux内部命令,需要安装)
7.2.2 解压:unzip [-d] 解压后存放路径 xxx.zip (默认解压到当前目录,该命令需安装)
八、权限管理(重点)
8.1 修改文件所有者:chown 用户 文件1 文件2... (仅修改文件的所有者而不会修改文件的所在组,目录可以加参数-R来递归把目录下所有文件一起修改)
8.2 修改文件所在组:chgrp 组 文件1 文件2... (仅修改文件所在组)
8.3 权限符号:drwxr-xr-x (共10位)
第0位:文件类型(-文件,d目录,l软链接,c字符设备文件如鼠标键盘,b块设备如硬盘)
第1~3位:文件所有者的权限 (r可读,w可写,x可执行)
第4~6位:文件所在组的权限
第7~9位:文件其他组的权限
针对目录的权限符号含义:
r-可以读取查看目录内容,如ls
w-可以修改目录,如重命名目录,在目录内创建或删除文件
x-可以进入目录,如cd (这个非常重要,若无该权限则目录就进不去,进不去目录就无法对目录内的文件做任何操作)
针对文件的权限符号含义: (该文件所在目录必须拥有x权限,否则无意义。连目录都进不去又如何能操作文件呢)
r-可以读取查看文件,如cat less head tail
w-可以修改文件,但但但不代表可以删除文件,想删除文件的前提是对该文件所在目录有w权限
x-可以执行文件
修改权限:chmod
第一种方式:用[+][-][=]来变更文件/目录权限 (u-所有者,g-所在组,o-其他组,a-所有人{包括ugo})
1)chmod u=rwx,g=rx,o=r 文件/目录 (-rwxr-xr--)
2)chmod o+w 文件/目录 (其他组增加w权限)
3)chmod a-x 文件/目录 (所有人都取消执行权限)
第二种方式:用数字来变更文件/目录权限 (r=4,w=2,x=1;{数字1=x,2=w,3=wx,4=r,5=rx,6=rw,7=rwx}【记住:二进制000,2^2,2^1,2^0】)
chmod 751 文件/目录 (-rwxr-x--x)
8.4 文件系统属性权限:chattr (change file arrtibutes)
语法:chattr [+-=] [选项]
+ 增加权限; - 删除权限 = 等于某权限
i -> 文件:锁定该文件,只能看,其他什么也做不了。(针对root也生效)
目录:只能修改该目录下的文件数据,不能建立或删除文件。
举例:chattr +i /root/test/aaa.txt (锁定该文件,root也改不了)
lsattr /root/test/aaa.txt (查看该文件的系统属性)
chattr -i /root/test/aaa.txt (恢复正常)
a -> 文件:可增加文件内容,但不能删除或修改。
目录:可以在该目录下新建或修改文件,但不能删除。
九、任务调度(计划任务)
9.1 语法: crontab [选项] (e->编辑定时任务{edit},l-查询定时任务{list},r-删除定时任务{remove})
9.2 说明:*/1 * * * * date "+\%F \%T" >> /tmp/mydate.txt (五星上将,由于命令中有%,因此要用\转义,用#注释)
第1颗星:分钟 取值范围0-59
第2颗星:小时