Xshell
热键:
alt+enter:全屏
ctrl+shift+c/v:复制粘贴,或者鼠标右键
ctrl+C:终止程序
ctrl+D:按两次,就退出软件
ctrl+R:输入历史命令里的残缺片段,就会自动搜索,并补全
[Tab]按键:按两下,具有『命令补全』和『档案补齐』的功能
*:表示一个通配符,匹配任意文件名
上下键可以翻历史命令
如果什么指令没有,可以搜索 centos yum安装xxx,获取相关指令
sz 文件:把文件发送到Windows桌面上
shell外壳
是什么:
用户执行某种功能的时候,不是直接让操作系统执行对应指令的,而是先交给外壳程序(一般是图形化界面和命令行。Windows将图形化界面写入 操作系统内核了,Linux没有)
外壳系统是 介于用户和操作系统之间的软件。将命令翻译给核心处理,将核心的处理结果翻译给使用者
为什么:
shell外壳的存在,可以对请求进行合法性检查,变相的保护OS
怎么办:
bash会创建一个子进程,帮用户进行命令行解释,bash只要等着就行
shell和bash的区别:
shell是外壳程序的统称,bash是具体的一个外壳程序
补充知识
文件
1、文件=文件属性+文件内容
属性也是数据,是数据就需要保存
未来对文件的任何操作都是 对属性的操作 以及 对内容的操作
这些操作是使用指令控制文件,或者编程访问文件
2、同一个目录下,不允许存在同名文件
3、Linux中,一切皆为文件。
大部分指令都是文件,在磁盘上存在。
4、Linux的整个文件目录是一个多叉树,Windows也是
路径
在系统层面表示一个特定的文件
路径必须具有唯一性
家目录
Windows和Linux都是多用户操作系统
桌面本质是文件夹,当登录Windows时
1、确认是谁
2、根据用户名。找到该用户目录下的“桌面文件夹”
3、将桌面文件夹显示成为图形化界面
新老用户看到的桌面不一样,每个用户都有自己独有的桌面
当前用户的家目录会存放这个用户强相关的文件
cd ~:进入用户家目录
Linux和Windows一样,但是在XShell里没有桌面、下载等,是因为这里用的是服务器,没有桌面的概念
在虚拟机上,使用cd~,然后ls就能看到
指令的本质
大部分指令都是文件,在磁盘上存在。
指令本质就是程序,就是用C语言写的一个可执行程序,被放在了这个路径下。也是一个文件
安装和卸载其实就是把对应的可执行程序 拷贝/删除 到系统路径下
常用指令
pwd指令
显示用户当前在Linux系统中所处的路径,即下文的“当前路径”
类似于
Windows里的斜杠,以及Linux的反斜杠,称之为路径分隔符
两个路径分隔符之间一定是一个“文件夹”,路径末端一定是一个普通文件或者文件夹
ls指令
ls:
罗列出当前路径下的文件名
显示文件名属性
ls -l:
也可以用ll 简化的执行ls -l,ll就是ls -l的别名
显示的是文件的更多属性(详细属性),作用类似于打开文件的图形化界面
ls -la:
显示所有文件,包括隐藏文件
一个点,两个点是特殊的文件名,不会在ls -l中显示
以点 . 开头的文件叫做隐藏文件
蓝色的代表的是创建的目录,也就是所谓的“文件夹”
任何目录下,都会默认具有两个隐藏目录,即 . 和 ..
. :表示当前路径
执行一个程序就要把这个程序加载到内存里,也就是访问一个文件都必须先找到这个文件
. /文件:用来执行当前路径下的程序
.. :表示上级路径
方便进行路径的回退
再退一级就到了 “ / ” ,也就是根目录,root目录
ls /:
看的是根目录里的内容
ls -ld xx:
只看目录,并没有进入目录
ls 路径:
访问这个文件
绝对路径:/ root / test / file.txt
相对路径:
从当前目录继续访问. / xxx
从当前目录的上级目录继续访问 .. / xxx
ls *:
显示所有文件
ls xxx*yyy:
显示以xxx开头yyy结尾的所有文件
cd指令
cd xxx (change directory)
进入指定的“文件夹”,进行路径切换
使用pwd可以看出是否进入
cd -:
跳转到最近一次所处的路径下,可以在两个经常访问的目录之间快速跳转
cd ~:
进入用户家目录,用户就是whoami指令输出的人
对于root账号,默认的家目录就是/root,root账号也叫做超级管理员账号
对于普通用户,默认家目录就是/home/xxx,其中xxx就是新建的用户名
任何一个用户首次登录所处的路径都是自己的家目录
clear指令
清屏操作
touch指令
touch xxx:
在当前目录下,创建一个新的普通文件,不是文件夹
mkdir指令
mkdir xxx:
在当前路径下创建一个新的“文件夹”,默认创建一个空目录
mkdir -p a/b/c:
创建一个文件夹a里有b里有c
rmdir xx
删除一个空目录,删不了可执行程序,比如.out .txt
rm xx
删除文件,但是不能删一个目录
root账号下会询问你是否真的要删除,y(yes),n(no)
普通用户不会询问
rm删除了是几乎找不回来的
rm -f xx:强制删除,不会询问
rm -f * :删除所有文件
rm -r xx:
删除一个目录,类似于递归删除,删掉目录低下的全部文件,即使是空目录
rm -rf xx:
强制删除一个目录
如果要删根目录,类似于格式化C盘,那么操作系统就挂掉了
tree 目录
以树状形式显示目录结构
(root账户)使用这个命令安装tree
普通用户前要加sudo
whoami指令
查看当前正在使用Linux系统的用户
which (一个命令的名称)指令
显示这个可执行程序所在的路径在哪,要求系统打印出我所指定的指令名称在系统的所在路径
alias 别名=‘原本指令’
给指令起别名
ls命令本身被重命名时,要求带颜色
如果以绝对路径的形式执行的话,就没有颜色,因为没有被重定义
stat xxx
显示文件的属性
任何文件都有三种时间access、modify、change。称为一个文件的ACM时间
man指令
用法:man 指令
可以查看指令的用法,按Q键退出
man手册:
如果不指定手册,则从上往下依次查找,找到一个就停止
用法:man num 指令
1、(默认)查可执行程序、指令的用法
2、系统调用。最重要的是查2号手册
3、库调用。C库函数
安装后就可使用
cp指令
拷贝,都可以携带绝对、相对路径进行拷贝
cp 源头 目标:目标如果是目录,则源头文件直接拷贝到这个目录下了
cp 源头 目标 / 重命名:目标如果是带路径的文件名(也就是目录 / 文件名),则拷贝到指定目录,顺便进行重命名
cp -rf 源头 目标:拷贝目录
mv指令
移动文件,或者将文件重命名
mv 目录(文件) 重命名:在指定的目录下对文件或目录重命名
mv 目录(文件) 目标地址:挪动在当前地址所在的目录,到新地址
mv 目录(文件) 目标地址 /重命名:移动,并重命名
nano 源文件
使用记事本在文件里写:写完之后,Ctrl x(退出) -> y(yes)->回车
编译代码:gcc code.c
运行:./a.out
cat指令
cat:不跟文件的情况下,把键盘当中输入的内容直接输出出来
cat xxx.txt:打印文本文件的内容
cat < xxx.txt:输入重定向,不从键盘读,从后面的文件里读
cat -n 文件:打印的时候带上行数
cat -s 文件:不打印空行
tac 文件:倒着打印
echo指令
echo “xxx”:在屏幕上输出xxx,向显示器文件写入
echo “xxx” > xxx.txt:创建文件xxx.txt,并且把本来该写入显示器文件(在屏幕显示)的数据,写到到新的文件中
>xxx.txt:
1、创建文件,文件内容为空
2、清空文件
重定向:
> 为输出重定向:改变写入的方向,即重定向。每次进行重定向,都会从文件开始写入文件内容。也就是先清空,后写入(C语言里的w写方式打开文件)
>>为追加重定向:每次从上次文件结尾写入内容(C语言里的a追加方式打开文件)每运行一次,保留上次记录,内容不断新增
<为输入重定向
more指令
more xxx:在打开大文件时使用打满一屏幕输出就停下,让用户按回车下翻,Q退出
不能按上下键,不够灵活方便,不推荐
/xxx:在文档里搜索xxx内容
less指令
less xxx:可以实现和more一样的功能,而且可以按上下键,搜索内容时,还可以高亮显示,Q退出,推荐使用
在查日志的时候可以逐行显示
head指令
head xxx:默认显示文件的前10行
head -num xxx:显示文件的前num行
tail指令
tail xxx:默认显示文件后10行
tail -num xxx:显示文件后num行
取中间:head 前一部分,head -num xxx > tmp.txt,然后tail -num tmp.txt
缺点就是要创建临时文件
可以head -num xxx | tail -num | less
|:
管道,可用来提取数据。可对多条指令级联
wc指令
wc -l xxx:统计文本的行数
date显示
date + %Y-%m-%d_%H:%M:%S:2024-10-14_20:53:04
date +%s:时间戳,从1970年1月1日午夜12点(格林威治时间)到现在的秒数
date + %Y-%m-%d_%H:%M:%S -d@时间戳:可以将时间戳转换格式
cal指令
cal:打印今天所在月的日历
cal 2004:打印2004年的日历
cal -3:打印今天所在月、以及上个月、下个月日历
find指令
find 路径 -name xxx:以绝对路径的形式显示出查找的结果,是真正的在系统文件里查找的,深度优先遍历数
xxx可以为*.cpp
grep指令
行文本过滤工具
grep “xxx” 文件:读取文件里包含xxx的行所在的信息
grep -n “xxx” 文件:显示行号
grep -v “xxx” 文件:不包含xxx的信息
grep -i “xxx” 文件:忽略大小写匹配
zip指令
zip xxx.zip 目录名:只压缩了空的目录名
zip -r xxx.zip 目录名(文件):递归式的压缩。目录名可以写多个
unzip xxx.zip:解压压缩包
unzip xxx.zip -d yyy:解压xxx压缩包到yyy路径下
tar命令
tar -czf xxx.tgz yyy:打包并压缩yyy(可有多个文件或一个目录),到压缩包xxx.tgz
c:创建新的压缩包
z:打包时,进行压缩
f:压缩包文件名,后紧跟文件名
v:显示过程
tar -xzf xxx.tgz:解压
x:解压
tar -xzf xxx.tgz -C yyy:解压到yyy路径下
C:解压到yyy路径下
sz xxx.tgz:把压缩包传送到Windows桌面上
基于xshell进行 压缩包的Windows和Linux进行互传
scp 文件.tgz 身份(用户名)@另一台机器的IP:要拷贝的路径:跨Linux服务器拷贝
bc指令
Linux上的计算器
单独输入就进入计算器模式
uname指令
uname -r:
3.10.0-1160.119.1:当前操作系统所选择的内核版本
el7:centos 7
x86_64:64位机器
centos的版本号:
CPU的信息:
内存的信息:
关机指令
shutdown -h:虚拟机关机
halt:关机
reboat:重启
但是云服务器严禁关机