Linux初级笔记

关于finalshell

运行ifconfig ,观察虚拟机ens33的代码,得出计算机IP,然后选择用SSH连接。

命令行基本格式:

commmand -option(选填) parameters(选填)

选项 路径(参数)

路径:第一个/表示根目录,之后的/表示层级分隔符

 

命令行1:ls:

显示当前文件夹的内容:

默认home文件夹,-a 表示展示全部文件(包括隐藏文件),-l 表示以列表的形式展示全部信息(更加详细),-h 显示文件的大小信息(需要与 -l 一同搭配使用)

 

命令行2:cd:

进入指定文件(更改所处文件夹位置)

需要参数,不需要选项,cd/进入根目录

 

命令行3:pwd:

显示当前所处文件夹的位置:

不需要选项和参数

绝对路径和相对路径:绝对路径以/为起点,相对路径则是以当前目录为起点,直接访问当前目录下文件夹

特殊的路径符号:(1). 表示访问当前文件目录

(2).. 表示访问上一级目录

(3)~ 表示home目录

 

命令行4:mkdir:

创建一个新的文件夹

需要选项(-p),不需要参数

-p的作用:创建不存在的父类目录,适用于创建连续的多层次目录文件

注意:不能在home文件下创建文件

 

命令行5:touch:

创建一个新的文件

需要选项,不需要参数

touch和mkdir的区别:touch创建一个文件,而mkdir创建一个文件夹,两者对参数和路径的需求也不同

 

命令行6:cat:

查看文件内容

需要路径,不需要选项

 

命令行7:more:

查看文件内容

需要路径,不需要选项

cat和more的区别:cat不能翻页,一次性显示,而more可以翻页

 

命令行8:cp:

复制文件/文件夹

需要选项和参数(路径)

-r:对文件夹进行操作,表示递归

 

命令行9:mv:

移动文件/文件夹

需要路径,不需要选项

如果移动位置不存在,则会修改文件名

 

*命令行10:rm:

删除文件/文件夹

需要选项和路径,路径(参数)个数不限

-r:删除指定文件夹,表示递归

-f:强制删除,需要root权限(su-root password)

支持通配符*,模糊匹配

*test:删除后面为test的文件

test*:删除前面为test的文件

 

命令行11:which:

查找命令行提示符所处文件夹位置

不需要选项和路径

 

命令行12:find:

查找指定文件/文件夹位置

find 文件路径 -name ”文件名“

find 文件路径 -size +/-n(K,M)+/- 多于或少于

 

命令行13:grep:

通过关键词过滤文件

grep -n ”关键字“ ”文件路径“

-n:表示关键词出现的次数

 

命令行14:wc:

统计目标文件中的字符,字节,单词,行数

-m:统计字符个数

-c:统计字节个数

-l:统计行数

-w:统计单词数

 

管道符:

将左边输出的结果作为右边的输入,可同时使用多个

 

命令行15:echo:

在命令行输出指定内容

反引号:··,echo+··输出命令

 

命令行16:tail:

追踪文件更新

需要选项和路径,-f,-num

-f:追踪持续更新的文件

-num:追踪更新文件的末几行,默认十行

 

vi编辑器:

vi+文件名,进入命令模式,按i进入输入模式,dd删除,u撤回,yy复制,nyy向下复制n行,p粘贴,esc退回命令模式,输入wq保存并退出,也可以只按q退出,按q!强制退出,输入set nu设置行号,i在当前位置输入,a在光标后输入,I在当前行开头输入,A在当前行结尾输入,o在光标上一行输入,O在光标下一行输入,无论任何情况下,esc都可以回到命令模式

 

命令行17:su,sudo,visudo,exit:root权限

su - root:输入密码获得root权限

sudo 命令:以临时管理员身份执行命令

exit:退出管理员身份

visudo:在文件末尾添加 :用户名 ALL=(ALL) NOPASSWD:ALL(需要以root用户方式运行)

普通到root用户需要密码,反之不用

 

linux权限管理单元分别是用户组和用户级别

 

命令行18:groupadd和groupdel:

添加或删除用户组(需要root权限去执行)

 

命令行19:useradd:

添加用户

useradd 用户名 [-g -d]

-g:指定用户组加入,指定的用户组必须存在,如果不使用-g,将会自动创建同名用户组加入,如果已经存在同名用户组,必须使用-g

-d:指定用户HOME路径,如果不使用-d,将会自动创建HOME路径

 

命令行20:userdel:

删除用户

userdel -r 用户名

-r:如果不加,将保留HOME目录下文件目录,反之则会删除

 

命令行21:id:显示用户信息

 

命令行22:usermod:

移动用户到其他用户组

usermod -aG 用户组 用户名

 

命令行23:getent:

显示系统用户信息

getent passwd

 

命令行24:getent group:

显示系统用户组信息

 

用户权限:通过ls -l查看权限细节

第一列:共十个槽位,第一位分为-,l,d,-表示文件,l表示软链接,d表示文件夹

剩下每三个为一组分别表示用户权限,用户组权限,其他用户权限

权限分为r,x,w三种,r表示读权限,x表示执行权限,对文件夹体现为cd命令,对文件表示是否能作为程序执行,w表示写权 限,如果显示-则表示无此类权限

第二列:表示所属用户组

第三列:表示所属用户

 

命令行25:chmod:

修改权限

  • u:表示用户的权限信息**

  • g:表示用户组的权限信息**

  • o:表示其他用户的权限信息**

  • chmod u=?,g=?,o=? 文件名**

  • -R 修改文件夹内全部文件权限**

r=4,w=2,x=1

可以是root权限或者所属用户

 

命令行26:chown:

移动文件/文件夹到其他用户组/用户

-R:对文件夹内全部文件应用相同规则

chown -R 用户:用户组 文件名

只能是root权限

 

快捷键:

ctrl+c 停止,退出命令

ctrl+d 退出登录

ctrl+r 搜索匹配历史命令

history 查看历史命令

! 自动匹配最近执行的命令

ctrl+a 跳到命令开头

ctrl+e 跳到命令结尾

ctrl+-> 向右跳过一个单词

ctrl+<- 向左跳过一个单词

ctrl+l 清屏(或者clear命令)

 

命令行27:yum:

软件管理命令

yum [-y] [install/remove/search] 文件名

-y表示自动确认

运行yum需要root权限

在Ubuntu系统中,apt命令相当于yum命令

 

命令行28:systemctl:

控制软件的启动关闭,开机是否自启动

能够被systemctl管理的软件统称为服务

systemctl start/stop/enable/disable/status 服务

 

命令行29:ln:

创建软链接

软链接:将文件或文件夹链接到其他位置,类似快捷方式

ln -s 参数1 参数2

参数1:被链接的文件或文件夹

参数2:链接的目的地

 

命令行30:date:

查看时间日期或进行计算

date -d +[格式控制符]

-d进行时间日期计算:“+1 day” “-1 day” “+1 year” “-1 year” “+1 month”“-1 month”

格式控制符:%Y:显示年份

%y:显示年份后两位

%m:显示月份

%d:显示天数

 

IP地址:

IP是联网计算机的网络地址,用于在网络中定位

特殊的IP:

127.0.0.1 用于指代本机

0.0.0.0:

(1)指代本机

(2)用于确认端口绑定信息

(3)在一些IP限制规则中,此IP表示本机,如放行规则设置为0.0.0.0,表示允许任意IP访问

主机名:

通过hostname查看,也可以通过hostnamectl修改主机名(sethostname)

查找顺序:

先在系统本地查询,查询不到,则在DNS服务器上查询

 

网络请求和下载:

命令行31:ping:

检查指定服务器是否连通的

ping [-c num] IP或者主机名

-c和num表示检查次数,不加-c表示无限次检查

 

命令行32:wget:

非交互式的文件下载器

wget [-b] url

-b:表示后台下载

url:下载链接

 

命令行33:curl:

发起网络请求

curl [-O] url

-O:表示文件下载,可选填

不加-O,将只获取网络信息

 

端口:

设备与外界交流的出入口

端口分为物理端口和虚拟端口,计算机之间通过IP查找交流,而程序则需要端口来查找交流

物理接口:又称之为接口,可见,如USB

虚拟端口:不可见,计算机内部端口,用于操作系统与外界交流

公认端口:1~1023 系统内置,非必要不要占用此范围的端口

注册端口:1024~49151 可以随意使用,通常绑定一些程序/服务

动态端口:49152~65535 通常绑定固定程序,而是当电脑对外进行网络链接时,当作临时端口使用

 

命令行34:nmap和netstat

nmap IP:查看指定IP的信息

netstat -anp|grep 端口名:查看指定端口

两个命令行均需要安装对应服务

 

进程:

每个程序在运行的时候,系统都会为之注册一个进程,并分配一个进程ID

 

命令行35:ps [-e -f]

-e:显示全部进程

-f:以完全格式化的方式显示进程信息

通常,写为 ps -ef

ps -ef|grep 进程名

 

UID:用户ID

PID:进程ID

PPID:进程的父ID(启动此进程的ID号)

C:进程的CPU占比率

STIME:进程的启动时间

TIME:进程占CPU的运行时间

TTY:启动此进程的终端序号

CMD:启动此进程的路径

 

命令行36:kill [-9] 进程ID

-9:强制关闭命令,如果不加-9,则进程是否关闭将取决于进程本身机制

 

查看主机状态

 

命令行37:top:

系统资源监控

使用top命令查看主机状态,直接输入top命令即可,每5秒刷新一次

top命令结果头五行:

第一行:top(命令名称) 启动时间 up:运行时间 user:用户数量 load average:cpu的1,5,15分钟的负载

第二行:Tasks:总进程数量(total) running(正在运行的进程数量) sleeping(睡眠进程的数量) stopped(停止进程的数量

zombie(僵尸进程的数量)

第三行:%CPU(s):CPU使用率 us:用户CPU使用率 sy:系统CPU使用率 ni:高优先级进程占CPU使用时间百分比

id:空闲CPU率 wa:IO等待CPU占用率 hi:CPU硬件中断率 si:CPU软件中断率 st:强制等待占用CPU率

第四、五行:Kib Mem:物理内存 total:总量 free:空闲 used:使用 buff/cache:buff和cache占用

Kib Swap 虚拟内存(交换空间):total:总量 free:空闲 used:使用 buff/cache:buff和cache占用

PID:进程ID

USER:进程所属用户

PR:进程优先级,越小越高

NI:负值表示高优先级,正值表示低优先级

VIRT:进程使用虚拟内存,单位KB

RES: 进程使用物理内存,单位KB

SHR:进程使用共享内存,单位KB

S:进程状态(S:休眠状态,R:运行状态,Z:僵尸状态,N:负数优先级,I:空闲状态)

%CPU:进程占用CPU率

%MEM:进程占用内存率

TIME+:进程使用CPU时间总计,单位10毫秒

COMMAND:进程的命令或名称或者文件路径

-p:只显示某个进程的信息

-d:设置刷新时间,默认是5s

-n:设置刷新次数,刷新n次以后退出

-c:显示更加完整的命令

-i:不显示睡眠和无用进程

-b:不交互

交互选项:

h:会显示帮助信息

c:会显示进程完整信息

 

命令行38:df [-h]

:查看硬盘使用情况(查看磁盘使用率)

-h:以更加人性化的单位显示

命令行39:iostat:查看磁盘资源情况(查看磁盘速率)

iostat -x num1 num2:显示更多信息

num1:几秒刷新一次

num2:一共刷新几次

%util:磁盘利用率

rkb/s:每秒发送到磁盘的读请求数

wkb/s:每秒发送到磁盘的写请求数

 

命令行40:sar:

查看网络状态

sar -n DEV num1 num2

-n:查看网络状态

-DEV:查看网络接口状态

num1:刷新间隔,每几秒刷新一次

num2:总共刷新几次

rxKB/s:每秒钟接收的数据包的大小

txKB/s:每秒钟发送的数据包的大小

 

环境变量:

环境变量是操作系统在运行的时候保留下来的一些关键性信息,用以辅助系统的运行

可以通过env命令查看系统保留的环境变量,环境变量是Keyvalue型结构

$符号:

$符号被用于取“变量”的值,环境变量记录的值,除了操作系统可以使用外,用户也可以使用

使用echo输出环境变量记录的值,echo $环境变量

liunx用户也可以自行设置环境变量,分为两种情况:

(1)临时有效:

export 变量值=变量名

(2)永久有效:

仅对本用户生效:vim ~/.bashrc 末尾添加export 变量名=变量值

对全部用户生效:vim /etc/profile 末尾添加export 变量名=变量值

source 配置文件

export PATH=$PATH:自定义路径

 

文件上传和下载:rz(上传)和sz(下载)

sz 文件路径: 从linux传输到windows

rz : 从Windows上传到linux

 

压缩和解压:

zip格式:Linux、Windows、macos,常用

7zip格式:Windows系统常用

rar格式:Windows系统常用

tar:Linux,MACOS常用

gzip:Linux,MAcOS常用

.tar:tarball,归档文件,即简单的将文件组装到一个.tar的文件内,并没有太多文件体积的减少,仅仅是简单的封装

.gz:使用gzip压缩算法将文件压缩到一个文件内,大大减少文件的体积

 

命令行41:tar:

压缩和解压缩文件

tar [-c -v -x -f -z -C] 参数1 参数2 ... 参数N

-c:创建压缩文件,用于压缩模式

-v:显示压缩、解压进程,用于查看进度

-x:解压模式

-f:指定要解压或者压缩的文件 此选项必须出现在所有选项的最后面

-z:使用gzip模式,不使用-z就是普通的tarball格式

-C:选择解压的目的地,用于解压模式

 

命令行42:zip:

zip命令压缩文件

语法 zip [-r] 参数1 参数2 ... 参数N

-r:被压缩的包含文件夹的时候,需要使用-r选项,和rm、cp命令中的-r效果一样

命令行43:unzip:解压zip文件

语法 unzip [-d] 参数

-d:指定文件解压路径,同tar的-C一样

参数,被解压的zip压缩包文件

 

 

 

 

 

 

 

 

     ```
    struct A
    {
    virtual func() = 0;
    };
     
    struct B : A
    {
   
    }
    struct C : A
    {
   
    }
     
    B b{};
     
    A& ptr = b;
    ptr = c; <==> b = c

int b = 4; int &a = b; int * const a = &b; //const修饰指针,故指针指向无法修改

posted @ 2023-05-24 17:58  alexlance  阅读(107)  评论(0编辑  收藏  举报