Linux第四节课(指令与权限)

1、date指令(时间)

程序运行到自己的每一个关键时刻,都要自己打日志!

日志包括时间、日志等级、日志具体信息、其他信息等,然后按照行为单位写入文件中,这个文件被称为日志文件!

在日志文件中筛选信息时,时间也是一个重要的指标!

date中时间表示:

  • Y --- 年
  • m --- 月
  • d --- 日
  • H --- 时
  • M --- 分
  • S --- 秒

其中不同时间之间可以自己定制符号表示(时间要区分大小写!);

表示时间戳(1970年1月1日到现在的秒数)

date +%s

可以将时间戳转化为对应的时间

date -d @[时间戳]

例如:

date -d @1721193275

还可以将对应的时间戳按照我们指定的格式转化为时间

date +%Y-%m-%d_%H:%M%S -d@1721193275

默认显示的时间跟北京时间具有8个小时的时差

date +%Y-%m-%d_%H:%M%S -d@0

2、cal日历指令

直接cal指令可以查看当月的日历

cal

cla + [年份] -------- 查看当年的日历

cal 2024

cal + [月份] ------ 查看当月及上下两月的日历

cal -3

3、find指令

  • find指令可以在指定的路径下进行文件的搜索(在磁盘中进行查找);
  • find在查找文件时在自己用户名下的文件不会出现权限越界,但是查找其他目录时可能出现Permisson denied,此时需要提升权限或者切换为root账号;

示例用法:

1、在家目录下查找test.c文件

find ~ -name test.c

2、在指定目录查找ls命名

find /usr/bin/ -name ls

3、在不全的目录下查找ls命令

find /usr/ -name ls

会在目录下挨个搜索

which与find的区别

  • which是在指定的路径下,查找搜索指令文件;
  • find是知道大概路径就可以,不仅仅只查找指令文件;

whereis + 指令

在系统特定的路径下寻找,既可以找到可执行程序,又可以找到手册,安装包、压缩包等之类的

whereis string.h

4、grep指令

grep是一个行文本过滤工具,以每行为单位,在文本中如果这一行包含了指定的'关键字',那么打印该行内容,不包括的直接丢弃。

grep '9999' log.txt

grep - v打印不包含关键字的内容(以行为单位)

grep -v 'world' log.txt

grep -n对匹配到的行带上编号

grep -n 'world' log.txt

关键字为空则全部都匹配上

gerp - i 则按照忽略大小写匹配

grep -i 'bit' log.txt

实例应用:

grep -n 'int main()' /home/xiaosu/108/108-code-blackboard/test.c

grep直接查找可能会出现结果是个目录,无法进行递归查找,加上r即可

grep -Rn 'int main()' /home/xiaosu

Xshell通过ssh登陆中,其中

  • ssh是客户端
  • sshd是服务器

5、打包和压缩

为什么需要打包和压缩?

  • 能被打包压缩的文件一定是一个整体,有多个文件变为一个文件,不容易造成文件的缺失。
  • 打包压缩使得文件的体积更小 - (不打包的话)下载时间变长,存储占据空间更大
  • 当前Linux中常见的打包压缩工具有zip、unzip和tar
  1. zip的使用

格式如下:

将当前目录下的d1打包成di.zip

zip d1.zip d1

在当前文件夹在解压d1.zip文件

unzip di.zip

但是!如果d1是一个目录,默认打包只会压缩d1这一个空的目录。

使用zip - r可以递归式的打包

zip -r d1.zip d1

如果当前目录下有d1和log.txt,这两个文件我们都需要打包和压缩

zip -r d1.zip d1 log.txt

如果我们需要解压到指定路径,通过

unzip [压缩文件名] -d [路径] 例如:

unzip di.zip -d test

将其解压到名为test的目录下。

在Xshell输入

Su

然后再输入密码,可以切换为root账号

su + 用户名

su + 用户名可以切换为普通账号/或者Ctrl + d 退回

6、tar命令

常见的tar命令:

tar czf code.tgz d1 log.txt

将d1和log.txt打包压缩成code.tgz文件

  • -c:建立一个压缩文件;

  • -z:是否具有gzip属性,亦是否需要使用gzip进行压缩?

  • -f:使用档名;

    tar tzf code.tgz d1 log.txt

  • -t:查看压缩的文件夹都有什么内容(不进行压缩和解压)

    tar xzf code.tgz

  • -x:解压一个压缩文件

总结:最常用的tar压缩和解压的命令:

tar czf [xxx.tgz[被压速的文件] --- 打包压缩
tar tzf [xxx.tgz[被压速的文件] --- 浏览文件
tar xzf [xxx.tgz[被压速的文件] --- 解压文件

tgz中,t表示tar(打包后缀);.gz(表示压缩后缀)

如果我们需要解压到指定的目录

bash 复制代码
tar xzf code.tgz -C ..

解压到上级(..)路径

  • -C:解压到指定的目录

7、bc指令

功能:Linux下的计算器(可以方便的进行浮点运算)

用法:

bash 复制代码
echo '12+21+5+67+88' | bc

Windows在命令行下输入calc可以调出计算机。

8、uname指令

x86_64 = x64

x64 = 32

bash 复制代码
uname - a

可以获得电脑和操作系统的相关信息(全部)

信息依次为:

  • 内核名称(Linux)

  • 主机号 (VM-24-3-centos)

  • 内核版本号

  • 内核版本

  • 硬件名

  • 处理器类型

  • 硬件平台类型

  • 操作系统名称

9、free指令(查内存)

bash 复制代码
free -k
free -m
free -g

分别按照kb,mb,gb的方式查看内存

10、df(查看磁盘)

bash 复制代码
df -h

常用df -h查看磁盘所用大小及其相关信息。

11、lscpu(查询CPU相关的信息)

12、历史热键搜索

bash 复制代码
ctrl + r

可以查询我们历史搜索过的指令

bash 复制代码
ctrl + d

表示退出

13、history指令

history可以查看历史命令

bash 复制代码
history

查看最后十条历史命令

bash 复制代码
history | head -10

Linux默认记录最新的1000条指令!(可以修改)

Linux操作系统(服务器),永远不关机!

13、shotdown关机指令

14、shell指令运行原理

在Xshell的运行界面中

其中:

  • xiaosu --- 用户名
  • VM - 24 - 3 - centos --- 主机名
  • ~ --- 当前目录
  • $ --- 命令行提示符

这一整行的命令我们称之为Bash命令行!

输入指令的过程,本质上就是输入字符串!

指令的本质!就是编译好的程序和脚本(在一定的系统的特定路径下存放)

为什么需要有命令行解释器?!

我们所有的指令,最后都要在OS(操作系统)内部运行,但是OS使用的难度比较高,用户不能直接和OS打交道!

用户将指令发给命令行解释器(例如Bash命令行),然后命令行解释器将信息发送给操作系统,操作系统处理信息后再把信息经过命令行解释器发给用户!

命令行解释器的作用(shell):

  • 将使用者的命令翻译给核心(kernel)处理;
  • 同时,将核心的处理结果翻译给用户。

命令行解释器存在的意义(shell):

  • 进行命令行解释
  • 保护OS,对于用户的非法请求,直接拦截!

命令行解释器:

  • 在Linux系统中可以叫命令行,bash,sh,shell
  • 在Windows系统中称为图形化界面!

shell与sh和bash的关系:

  • shell相当于媒婆,sh和bash相当于李婆和王婆
  • sh和bash是shell的一种!
相关推荐
wanhengidc30 分钟前
短视频运营行业该如何选择服务器?
运维·服务器
虾球xz31 分钟前
游戏引擎学习第55天
学习·游戏引擎
雨中rain1 小时前
Linux -- 从抢票逻辑理解线程互斥
linux·运维·c++
oneouto1 小时前
selenium学习笔记(二)
笔记·学习·selenium
sealaugh321 小时前
aws(学习笔记第十九课) 使用ECS和Fargate进行容器开发
笔记·学习·aws
-KamMinG1 小时前
Centos7.9安装openldap+phpldapadmin+grafana配置LDAP登录最详细步骤 亲测100%能行
运维·grafana
Bessssss1 小时前
centos日志管理,xiao整理
linux·运维·centos
s_yellowfish1 小时前
Linux服务器pm2 运行chatgpt-on-wechat,搭建微信群ai机器人
linux·服务器·chatgpt
豆是浪个1 小时前
Linux(Centos 7.6)yum源配置
linux·运维·centos
vvw&1 小时前
如何在 Ubuntu 22.04 上安装 Ansible 教程
linux·运维·服务器·ubuntu·开源·ansible·devops