xshell可以远程登录linux,输入linux的ip地址和用户信息 进行连接
可以通过和linux一样的指令访问linux的各种文件和系统信息

在我理解来 就是装在windows上的 登录特定linux系统的工具并对linux进行操作
shell:想当于一个解释器,编译器

系统重启、关机、注销等指令:

reboot:现在重启linux系统(在运行状态时才可以重启)
halt:1分钟后关机系统
sync:把内存的数据同步到磁盘(不管是重启还是关机,都要先运行sync的命令,先把内存中的数据写到磁盘中)
shutdown -h now:立刻关机
shutdown -h 1:一分钟后关机
shutdown -r now:现在重启系统
su - root :切换到管理员身份
logout:注销现在的用户,返回到前一个身份,直到关闭系统(在xshell中)
logout:切换到前一个身份中,直到退出终端(在虚拟机的linux系统中)

添加用户

useradd 新的用户名:添加用户,默认该用户的家目录在/home/新的用户名
1.当创建成功后,会自动的创建和用户同名的家目录milan
2.也可以通过useradd -d 目录名 新的用户名 :给指定的目录添加用户的家目录

设置/修改密码:

pwd:显示当前用户在哪个目录下【绝对路径】
passwd+ 用户名:为该用户设置密码(只有根用户root才能设置)

删除用户(只用root才能删,切换 su - root): :::success 语法:userdel 用户名
应用案例:1.删除用户milan,但保留她的家目录(保留她的工作资料): userdel 用户名
2.删除用户及它的家目录(她的工作资料): userdel -r 用户名 :::

查询用户信息: :::danger 1.id 用户名
2.切换用户:su - 用户名 【从权限低用户切换到权限高用户】
3.logout/exit:【从权限高用户切换到权限低用户,直至退出】
4.who am i:显示第一次登录时的用户信息 :::

运行级别: :::danger 0:关机(shutdown)
1:单用户
2:多用户没有网络服务
3:多用户有网络服务(mutil-user.target)
4:
5:图形化界面(graphical.target)
6:重启(reroot) :::

查看用户级别:systemctl get-default
设置用户级别:systemctl set-default TARGET.target

文件目录类:
cd指令:
cd .. :返回上一级目录
cd ~或者 cd:回到自己的家目录 比如回到 /root

mkdir创建目录指令:
创建一级目录:
如在home文件中创建一个dog目录 :mkdir /home/dog
创建多级目录 加-p:
如在home文件中创建一个多级目录:mkdir -p /home/animal/cat

rmdir删除目录:
删除一个空目录:rmdir /home/dog(不是空目录的话无法删除)
删除一个有内容的目录: rm -rf /home/animal rf(recursive递归 force强制删除)

rm :可以删除一个文件
rm -rf /home/hello.txt :强制删除,不提示你
rm /home/dog :不允许你删,因为该不目录不是一个空目录
rm -r /home/dog :会提示你确定要删除该目录吗
-f :强制删除不提示

touch指令:
touch 文件名称:创建一个空文件
如 touch /home/hello.txt

cp指令:拷贝文件到指定目录
cp [选项] source[源文件] dest[目标文件]
例如:把hello.txt文件拷贝到home的dog文件中
cp /home/hello.txt /home/dog
拷贝整个目录到目标目录中:
语法: cp -r source[源目录] dest[目标目录]
注意:如果有相同名称的文件时,需要考虑覆盖的问题
强制覆盖不提示的方法: \cp -r source[源目录] dest[目标目录]

对文件进行移位:
语法:
1.mv oldNameFile newNameFile :在一个文件中进行操作相当于重命名
2.mv /temp/moveFile /targetFolder :不同的文件下操作是移动文件

查看文件内容:
语法: cat +需要查看的的文件
1.cat -n 需要查看的文件:查看文件并显示行号
2.cat -n /etc/profile |more :进行交互
注意:cat命令只能查看,不能修改文件,为了浏览方便,一般都会带上【管道命令】|more

指令和 >>指令
>:标识重定向,覆盖原先的内容
>>:标识追加,把内容追加到目标文件的尾部
ls -l > 文件 :列表的内容写到文件中(覆盖写)
ls -al >> 文件:列表内容追加到文件末尾
cat 文件1 > 文件2:将文件1中的内容覆盖写道文件2中
echo “内容” >> 文件:追加内容到文件中
把当前的日历追加到文件中: cal >> /root/Hello.java
cal:查看当前的日历

more指令:
more指令是一个基于VI编译器的文本过滤器,它以全屏幕的方式按页显示文本文件的内容。more指令
内置了若干快捷键【交互的指令】
语法: more 要查看的文件
交互键:
空白键:代表向下翻一页
Enter键:代表向下翻一行
q:代表立即离开,不再显示该文件的内容
ctrl+F:向下滚动一屏
ctrl+B:返回上一屏
=:显示当前的行号
:f 输入当前的文件名和当前行号

less指令:
功能和more相似,使用来查看文件内容,但是功能比more强大,对大型文件的查看具有较高的效率
语法:less 要查看的文件
空白键:向下翻动一页
q:退出

echo指令:输入内容到控制台
1.如输出环境变量:echo $PATH $HOSTNAME
2.在控制台输出hello,word :echo “hello,word”

head指令:显示开头部分内容
基本语法: head 文件名 :显示文件前十行的内容
head -n 5 文件名:显示文件前5行的内容

tail指令:显示文件尾部的内容
基本语法: tail 文件名 :显示文件后十行的内容
tail -n 5 文件名:显示文件后5行的内容
实时监控文件内容的变化和更新:tail -f 文件名

文件间建立连接:ln
建立连接:ln -s [源文件或者目录] [软连接名] :给源文件建立一个软连接
ln -s /root /home/myroot
删除连接:rm /home/myroot :最好不要在myroot后加一个斜杠

查看历史命令:history
最近10个命令:history 10
执行曾经执行的第五条指令:!5

时间日期类:data指令
一、查看日期

  1. date(功能描述:显示当前时间)
  2. date +%Y(功能描述:显示当前年份)
  3. date +%m (功能描述:显示当前月份)
  4. date +%d(功能描述:显示当前是哪一天)
  5. date “+%Y-%m-%d %H:%M:%S”(功能描述:显示年月日时分秒)

二、设置日期
语法:date -s 字符串时间
如 date -s “2020-10-1 20:20:20”
三、显示日历
cal:显示本月的日历
cal 2020:显示2020年一整年的日历

搜索查找类:
find (扫描范围尽量越精确搜索效率越高)
语法:find [搜索范围] [选项]
注意:find语句是从硬盘找的
应用案例:
1.按文件名:根据名称查找/home目录下的hello.txt文件

find /home -name hello.txt

2.按拥有者:查找/opt目录下,用户名为tne的文件

find /opt -user tne

3.查找整个linux系统下大于200M的文件 (+n 大于 )(-n 小于)(n 等于)

find / -size + 200M
小知识:ls lh 表示以更直观的方式展示数据

locate指令: :::success 知识小卡片:locate指令可以快速定位文件路径,locate指令利用事先建立的系统中所有文件名称以及路径的locate数据库实现快速定位给定的文件。locate指令无需遍历整个文件系统,查询速度快。为了保证查询结果的精确度,管理员必须定期更新locate时刻(updatedb)。 ::: 快速定位hello.txt所在目录 :::success 1.先执行 updatedb指令创建数据库
2.locate hello.txt :::

which指令:可以检索某个指令在哪个文件目录下 :::success 如查看ls指令在哪个目录下:which ls :::

grep指令和 管道符号 |
grep是过滤查找,管道符|,表示将前一个命令的处理结果输出传递给后面的命令处理。
语法:grep [选项] 查找内容 源文件

选项: -n :显示匹配行及行号 -i :忽略字母大小写 应用实例: 请在Hello.java文件中查找 “yes”所在行,并显示行号 写法一:cat /root/Hello.java |grep -n “yes” 写法二:grep -n “yes” /root/Hello.java

解压和压缩类:
1.gzip(压缩)和gunzip(解压)指令

基本语法: 1.gzip 文件名 作用:压缩文件 2.gunzip 压缩文件名 作用:解压

2.zip和unzip
语法:
1.zip [选项] 将要压缩的内容
2.unzip [选项] xxx.zip(将要解压的内容)

选项: -r:递归压缩,即压缩目录 -d<目录> :指定解压后文件的存放目录 应用实例: 1.将/home下的所有文件夹压缩成 myhome.zip 指令:zip -r myhome.zip /home/ 【将home目录及其包含文件和子文件进行压缩】 2.把myhome.zip压缩文件 解压到 /opt/tmp 目录下 指令:unzip -d /opt/tmp /home/myhome.zip

3.tar指令
tar:打包指令,最后打包后的文件为tar.gz
基本语法:tar [选项] xxx.tar.gz 要打包的文件

选项: -c :产生.tar打包文件 -v:显示详细信息 -f:指定压缩后的文件名 -z:打包同时压缩 -x:解包.tar文件

.tar.gz 是一个压缩包
.tar:只是打包没有压缩

使用vim编辑器(linux内置的文本编译器,相当于windows的txt)
指令:
新建一个编辑:vim Hello.java 按回车进入编辑页面(一般模式)
编辑:按i或a字母 ,进入插入模式,此时可以在编写文件了(插入模式)
退出(命令模式):esc键后按下 (命令行模式)
1):wq(write并quit:写入并退出)
2):q(退出)
3):q!(强制退出,并且不保存)
显示:ls
查看文件:vim Hello.java

一般模式下快捷键:
复制:yy
粘贴:p
多行复制:比如粘贴5行 则在键盘中输入5yy 等下一次输入p时就粘贴了5行
多行粘贴:比如复制了一行输入yy,在粘贴时输入5p,则就粘贴了5行
删除某行:输入dd
查找关键字:在命令行中输入 /(你要搜索的关键字)
找到的关键字可能有多个 按n(next)键:正向查找 N键:反向查找

设置行号:使用冒号:进入命令行模式 :set nu
不设置行号 :set nonu

vim /ect/profile
在编辑/etc/profile文件中 在一般模式下 ,使用快捷键到该文档的最末行G 和最首行gg

撤销:在一个文件中输入了hello,如果想要撤销,可以在一般模式下(按下esc键),按下u键,就能撤销
快速定位某一行:编辑/etc/profile文件中 在一般模式下,先使用 :set nu显示行号,再输入行号(此时你看不到)
,再按下shift+g键 ,就能定位到你想要定位的行号

帮助指令:
man指令:
man+ 命令或者配置文件:可以获得帮助信息
比如man ls :查看ls的帮助信息
ls -a:可以该系统的所有文件包括隐藏的
ls -l:获得文件的详细信息
ls -la:获得单例的详细信息
ls -al /home:获得home目录下所有的内容

help指令:
help + 命令:获得shell内置命令的帮助信息

绝对路径:从根目录开始定位
相对路径:从当前目录开始定位

清空当前命令行页面:clear

权限的基本介绍: :::danger 如果想要对目录中的文件进行操作,首先要先对该目录有相应权限。
对目录有执行权限才能进去 :::

查看文件的所有者:ls -alh a:表示所有文件 l表示 h表示人性化显示容量 l表示竖着显示详细信息
r-xr-x—-. 17 root root 4.0K 5月 3 15:38 .
dr-xr-xr-x. 18 root root 4.0K 4月 27 23:55 ..
rw-r—r—. 1 tne root 0 5月 3 15:36 tne.txt
修改文件的所有者:
1.chown newowner 文件/目录
2.chown -R newowner 文件/目录 【把目录和子目录的所有者修改位newown】

例如:chown tne Hello.java

3.chown newowner:newgroupowner 文件/目录 【改变所有者和所在组】

修改文件/目录所在组——chgrp
基本语法:chgrp newgroup 文件/目录

1.请将/home/abc.txt文件的所在组修改成shaolin(少林) groupadd shaolin chgrp shaolin /home/abc.txt 2.请将/home/test目录下所有的文件和目录的所在组都修改成shaolin(少林) chgrp-R shaolin /home/test 小知识:-R : 递归的改变目录和它的内容的组所有权

用户组:对有共性/权限的多个用户进行统一的管理
创建组: groupadd 新组民
删除组:groupdel 组名
改变用户的组:usermod -g 用户组 用户名
添加用户时直接加上组:useradd -g 用户组 用户名
注意:如果没有给用户添加组,那会默认给它添加一个组,组的名称就是用户名
注意:
1.如果一个用户创建了一个文件按,那这个文件所在的组就是这个用户所在的组
2.修改文件所在的组 chgrp 目标组 文件名

遇到的问题

:::info 1.回到快照后,使用xshell时连接不上虚拟机上的linux了:
解决方法:在设置中把网络适配器中的NAT模式修改成了桥接模式。 :::