虚拟机操作
切换鼠标 Ctrl+Alt
放大字体 Ctrl+shift+"+"
缩小字体 Ctrl+"+"
查询ip地址 ifconfig
【最小化安装中】查询ip地址 ip a 或ip addr show
----------------------------------------------------------------------------
Xshell
远程连接虚拟机 shh 用户名+@ip地址
也可以直接新建一个永久会话
显示ip地址 ifconfig
关闭防火墙【临时关闭(重启就失效)】 systemctl stop firewalld
关闭防火墙【临时关闭(重启就失效)】 systemctl disable firewalld
查看selinux状态 getenforce
【临时】减弱selinux(内核防火墙) setenforce 0
更改主机名hostnamectl set-hostname 主机名
复制 Ctrl+insert
粘贴 Shift+insert
清屏【页面下滑】Ctrl+L
重启 reboot
关机 shutdown now
快照(相当于S&L) “虚拟机”选项-->快照-->拍摄快照
shell提示符
[root@localhost ~]#
其中"root"为当前登录的用户名
@后的“localhost”为主机名称
"~"为当前工作目录
[当前登录的用户名 @主机名称 当前工作目录]#/$
"工作目录"类似windows文件位置
"/"表示根目录
"~"表示每一个用户的家目录
查询绝对路径 pwd
切换用户 su 用户名(可不输) [回车] 密码
ps:从超级管理员切换至普通用户时可以不用输入密码
命令的格式(其中"[]"表示可为空)
命令字 [-选项] 【参数】
选项分为长选项【--】与短选项【-】
长选项无法叠加使用,短选项可复合使用
"help"为典型的长选项
切换工作目录 cd 切换位置
切换为上次工作目录 cd -
切换为上一级目录 cd ..
切换到家目录(当前用户) cd ~
浏览文件夹内容 ls
ps:ls可有多个操作对象
重置密码(启动界面按E)
rd.break
switch -o remount.rw /sysroot
chroot /sysroot
把命令中断(防刷屏) Ctrl+C
--------------------------------------------------------------------------
命令格式
命令本身 [-选项] [参数]
命令分类
内置命令[能找到执行文件]:shell自带;运行效率高,不会浪费时间;
外部命令:有独立的执行文件夹,文件夹名即命令名
查看命令的执行文件所在位置 which [命令]
查看命令所属种类 type [命令]
查看命令执行时间 time [命令]
中断正在执行的命令 Ctrl C
-------------------------------------------------------------------------------------
帮助文档
查看帮助文档[1] [命令] --help
[查询bash内部]查看帮助文档[2] help [命令]
man手册
[man手册中(可查找)]查看帮助文档[3] man [-选项] [参数]
查询关键词(从上往下) /[英文]
查询关键词(从下往上) /?[英文]
定位到下一个关键字 n
定位到上一个关键字 N
退出 q
info page
[info page中]查看帮助文档info [命令]
时间命令
获取时间 date [选项] [+格式]
ps:格式可叠加,但是如果格式中出现空格时,须将整个格式用“”标注
设置时间 date -s [时间]
ps:设置日期时间时,中间用空格隔开后,须加“”
调整日期(加2天) date -d "+2 day"
打开ntp(自动校对时间) timedatectl set-ntp yes ps:打开后无法更改时间
关闭ntp timedatectl set-ntp no
设置日期[须严格按照格式] timedatectl set-time xxx-xxx-xxx
设置时间日期 timedatectl set-time "xxx-xxx-xxx yyy:yyy:yyy"
设置时区 timedatectl set-timezone [时区]
日历 cal [参数(月份 年份)]
----------------------------------------------------------------------------------------------------------------------------------
浏览文件夹内容 ls
ps:ls可有多个操作对象
浏览文件内容[包括隐藏文件] ls -a
使用较长格式列出信息 [可查看文件详细信息] ls -l
简写 ll
显示当前文件夹[可加路径] ls -d [路径]
打开所有文件夹并显示其中的文件 ls -R [路径]
更人性化得显示文件大小 ls -h [路径]
树状图显示 tree [路径]
drwxr-xr-x. 2 root root 6 10月 12 19:23 公共
d 当前文件的文件类型
ps:"-"指普通文件;"d"指目录文件;"l"指软链接文件(相当于快捷方式);"c"为字符设备文件[顺序读写];"b"为块设备文件[随机读写];"p"管道文件[进程间通信];
rwxr-xr-x. 权限
前root指创建者
后root指所属组[可加入其他用户]
6 10月 12 19:23 指文件修改时间
ls颜色显示
白:普通文件
蓝:目录文件
红:压缩包文件
黄:设备文件
绿:可执行文件
根目录"/"为Linux唯一的顶级目录
boot中存放系统启动时需要的文件
etc中存放配置文件
lib中存放系统的库文件
mnt默认为空,后期用来挂载
var中存放日志文件
home中存放普通用户家目录
bin中存放普通用户可执行的命令和程序
usr中存放一般用户安装的程序
创建文件 touch [文件名]
ps:可一次创建多个
如 touch [文件名] [文件名]
创建1-6 touch [文件名]{1..6}
创建1,6 touch [文件名]{1,6}
删除文件 rm [文件名]
删除文件[不询问] rm -f [文件名]
------------------------------------------------------------------------
文件=真实数据+元数据(创建时间、创作者、修改时间)
目录文件=自身目录名+元数据
往文件中输入 echo"文字">>[文件]
硬链接【相当于备份】
硬链接不能跨越文件系统
硬链接就是指向原始文件inode的指针
创建硬链接 ln [/目标文件] [新文件]
软链接【类似windows快捷方式】
创建软链接 ln -s [目标文件] [新文件]
查看文件内容 cat [文件名]
查看文件节点号 stat [文件名]
查看文件编号ls -i
创建目录(文件夹) mkdir [相对路径或绝对路径]
创建目录[多个] mkdir {1..3}
创建目录[嵌套](一起创建) mkdir -p /aaa/bbb
删除目录 rm -r [目录路径]
ps:"-r"一般用于递归,此处用于删除目录内文件,再删除目录
计算此文件/目录占用磁盘大小[会递归显示目录内所有文件] du [文件/目录名]
计算此文件/目录占用磁盘大小[不显示所有文件] du -s [文件/目录名]
数据流和重定向[改变信息流向(转到某个文件)]
【0】标准输入流:键盘
【1】标准输出流:终端
【2】标准错误输出流
操作符
ps:重定向后,如没有目标文件,会自动创建
输出重定向
覆盖[命令]>[路径]
追加>>
将错误输出流重定向 [命令] 2> [路径]
多重 重定向 [命令1] [命令2] >>[路径1] >>[路径2]
用于销毁数据的路径 /dev/null
输入重定向
用于指定结束符<<
例:cat >test.txt <<AAA
>awsd
>wwww
>ccccc
>AAA
cat test.txt
awsd
wwww
ccccc
---------------------------------------
输出[不执行命令] echo "输出值"
输出[执行命令] echo `命令`
定义一个变量 [变量名]="值"
输出变量 echo $[变量名]
【|】管道符[左边命令的输出作为右边命令的输入]
例:ls / | grep "test"
tee【类似于分流】将结果输出到终端的同时,存入指定文件
--------------------------------------------------------------------------------------------------
编辑普通文件[进入阅读模式]vim
当目标文件不存在时,会自动创建;
阅读模式[命令模式]中,按a/I/s/o进入编辑模式
保存编辑须进入末行模式,按esc返回阅读模式,再按:(或/)进入末行模式,最后输入wq退出_
命令模式中功能键
光标按单词向后跳转 w
光标按单词向前跳转 b
光标跳到行首 ^
光标跳到行尾 $
撤销 u
删除光标所在行 dd
删除从光表开始的n行 ndd
删除光标前字符[本行] d^
删除光标后字符[本行] d$
复制光标所在行 yy
复制从光标开始的n行 nyy
将缓冲区的内容粘贴到光标所在的下一行 p(小写)
将缓冲区的内容粘贴到光标所在的上一行 P(大写)
末行模式
查找关键字 /[关键字]
到下一个检索单词的位置 n
到上一个检索单词的位置 N
替换[仅在当前行中检索] s /[目标]/[替换字]
替换[全局(光标所在行)检索] s /[目标]/[替换字]/g
替换[从n1行到n2行] n1,n2 s/[目标]/[替换字]/g
替换[全局(真)检索] % s /[目标]/[替换字]/g
保存并退出 wq
不保存退出 q
不保存退出 [强制] q!
将文字内容另存为 w /[新文件路径]
当前文件中读取其他文件内容 r /[文件路径]
查找含有关键词的行并删除 g/[关键词]/d
显示行号 set nu
隐藏行号 set nonu
删除n1-n2行内容 n1,n2 d
复制n1-n2行到n行后 n1,n2 co n
浏览文件内容
查看普通文件内容 cat [文件路径]
显示行号 -n
查看多个文件 cat [文件1] [文件2]
查看内容[从后往前] tac [文件路径]
查看内容 more [文件路径]
查看内容[按q退出] less [文件路径]
查看文件前n行[默认为10行] head -n [文件路径]
查看文件后n行[默认为10行] tail -n [文件路径]
查看文件信息 stat [文件路径]
查看文件包含关键词的行 grep -参数 查找条件 [文件路径]
显示行号 -n
显示不带关键词的行 -v
忽略大小写 -I
查找目标目录下所有满足条件的文件 grep -r [关键词] [目录路径]
查找以n开头的[条件] ^[n]
查找以abcd开头的[条件] ^abcd
查找以a-z开头的[条件] ^[a-z]
查找以n或m开头的[条件] ^[nm]
查找除了以n开头的[条件] ^[^n]
查找以n结尾的[条件] n$
查找以n或m结尾的[条件] [nm]$
过滤空白行 -n ^$
切割[以":"切割,将第一列显示出来] cut -d ":" -f1 /[文件路径]
x86与x86-64都是cpu架构
排序 soft [文件路径]
排序[去重] soft -u [文件路径]
去除重复行 uniq [文件路径]
替换[字数需相同] tr [目标字段] [替换字段]
ps:单个找,单个换
统计 wc [文件路径]
统计[行数] wc -l [文件路径]
统计[单词数] wc -w [文件路径]
统计[字节数] wc -c [文件路径]
文件复制 cp [源文件] [目标文件]
文件复制[保留属性] cp -a [源文件] [目标文件]
ps:文件复制必须要目标,但目标可以只写"."(当前文件夹),源文件会复制过来且名字不变
目录复制 cp -r [目录] [目标位置]
文件移动[剪切] mv [文件路径] [目标路径]
目录移动 mv [目录路径] [目标路径]
ps:文件移动时重命名需给目标路径加一个文件
【执行文件】
查找文件路径[返回执行文件位置] which [执行文件]
查找文件路径[返回各种路径] whereis [执行文件]
【所有文件】
查找文件位置[按名字] find /[开始查找的目录] -name "文件名"
ps:可在文件名后加"?"代表一位不确定的字符,加"*"代表不确定位数的不确定字符。
不区分大小写 -i
查找文件位置[按大小] find /[开始查找的目录] -size +/-[大小(k/M/G)]
例:
在etc中找比5k小的文件 find /etc -size -5k
在/中找比100M大的文件 find / -size +100M
查找文件位置[按时间]
修改时间 find /[目录] -mtime -[天数] 例:find / -mtime -3 三天以内修改过的文件 find / -mtime +2 三天前修改的文件 find / -mtime 2 第三天
查找文件位置[权限] find /[目录] -perm [权限]
查找文件位置[创建者] find /[目录] -user [用户名]
find /[目录] -uid [用户编号]
查找文件位置[组别] find /[目录] -group [组名]
find /[目录] -gid [组编号]
查找文件位置[按类型] find /[目录] -type [类型]
【逻辑运算符】
与 -a
或 -o
非 -not
【find专用】管道符 -exec
例 find /otp -name "n*" -exec cp {} /otc/1.txt \;
ps:"\"用来转译";" "-exec"前的输出的内容会被放到 {}中
---------------------------------------------------------------------------------------
压缩和解压缩
压缩作用:
减少磁盘占用、加快传输速度
linux中常见压缩格式:
gzip【速度最快,最常用,但原始文件会被删除】 bzip2 xz
用gzip进行压缩 gzip [文件名]
用gzip进行压缩[目录] gzip -r [目录名]
用gzip进行解压 gunzip [文件名]
zip压缩会保留源文件
用zip进行压缩 zip [压缩后文件名] [目标文件]
用zip进行压缩[目录] zip -r[压缩后文件名] [目标文件]
用zip进行压缩[分级] zip -[1~9][压缩后文件名] [目标文件]
用zip进行解压 unzip [压缩包文件] [目标目录](可不输)
tar归档命令
tar -参数 []
tar命令使用时,须包含[-c(创建),-x(释放),-t(查看)]三选一,不能复合使用
必选参数
-f 指定压缩文件名
可选参数
-v 显示详细信息
-z gz格式
-j bz2格式
-J xz格式
tar -czf [创建后文件名] [目标文件/目录路径] -C [创建路径]
释放tar -xzf [文件名]
指定位置释放 -C [目录]
文件上传与下载
工具:
sftp
退出 exit
连接到另一台主机 sftp root@[ip地址]
查看连接主机的目录 ls [目录路径]
查看本机目录 lls [目录路径]
上传文件 put [文件/目录路径]
下载 get
scp
上传文件 scp [文件路径] root@[ip地址]:[目标路径]
下载文件scp root@[ip地址]: [文件路径]
命令解释器-shell
可执行文件的路径存储在环境变量path中,使shell知道文件位置
查看总别名 alias
设置别名[临时] alias [自定义别名]="[命令]"
设置别名[永久] vim /etc/bashrc (进入配置文件修改)
设置别名[永久·个人] vim .bashrc
移除别名 unalias [自定义别名]
刷新bash shell bash
-----------------------------------------------------------------------------------
账户和组的管理
用户:1、超级管理员(root)
2、系统[无法登录]
3、普通用户
组(用户组)
1、基本组(私有组)
2、扩展组(公有组)
在同组的成员有相同权限
查看用户信息 id [用户名(小写)]
或 tail -5 /etc/passwd
组文件
vim /etc/group
账户管理
用户的添加
添加指定用户 useradd [用户名]
修改用户密码[root专用] passwd [用户名]
取消交互 --stdin
设置用户uid,gid useradd [用户名] -u [uid] -g [gid]
新账户的用户 ID -u, --uid UID
创建与用户同名的组 -U, --user-group
修改已创建的账户信息 usermod
更改账户名称 usermod [用户名] -l [新用户名]
锁定用户 usermod [用户名] -L
删除用户 userdel [用户名]
删除用户[同时删除家目录] userdel -r [用户名]
切换用户[root] su [用户名]
ps:无需密码且工作目录不变
切换用户 su - [用户名]
ps:工作目录会变动
普通用户提权 sudo [命令]
前置条件[修改配置文件]
vim /etc/sudoers
[用户名] ALL=(root) ALL
组操作[需要root]
新建扩展组 groupadd [组名]
查看组[新] tail -5 /etc/group
或 groups [用户名]
设置组id groupadd [组名] -g [gid]
向组中添加用户 gpasswd -a [用户名] [组名]
添加用户[多个] gpasswd -M [用户名1,用户名2] [组名] 【注:会覆盖先前组的用户】
向组中删除用户 gpasswd -d [用户名] [组名]
用户能加入多个扩展组,扩展组能包含多个用户
设置管理员 gpasswd -A [用户] [组名]
删除组[管理员专用] groupdel [组名]
ps:不能删除用户的主组
查看系统当前登录的用户
主机当前登录用户 users
last
每个用户最近登陆时间 lastlog
主机当前登录用户信息 who
w
who -a
最后启动时间 who -b
who -T
【注:输出结果中的+表示所有用户都能查看和更改】
查看运行级别 runlevel
运行级别 0-7 0:关机 6:重启 5:界面(正常运行)
更改运行级别 init [0-7]
返回当前登录用户 whoami