嵌牛IT观察

Linux 基本语法操作

2020-06-29  本文已影响0人  佐_529d

姓名:陈典佐

学号:19021210755

课程:智慧宇宙新物种的诞生


vi vim 篇

三种模式

常用快捷键

  1. 拷贝当前行yy, 拷贝当前行向下的 5 行5yy,并粘贴(p)。
  2. 删除当前行dd , 删除当前行向下的 5 行 5dd
  3. 在文件中查找某个单词 [命令模式下 /关键字 , 回车 查找 , 输入 n 就是查找下一个 ],/hello.
  4. 设置文件的行号,取消文件的行号.[命令模式下 set nuset nonu
  5. 编辑 /etc/profile 文件,使用快捷键到底文档的最末行[G]和最首行[gg],注意这些都是在正常模式下执行的。
  6. 在一个文件中输入 "hello" ,然后又撤销这个动作,再正常模式下输入 u
  7. 编辑 /etc/profile 文件,正常模式下将光标移动到第 20 行
    第一步:显示行号 :set nu第二步:输入 20这个数第三步: 输入 shift+g

开机、重启和用户登录注销

关机&重启命令

基本介绍

shutdown

shutdown -h now : 表示立即关机
shutdown -h 1 : 表示 1 分钟后关机

reboot

等同于shutdown -r now立即重启

用户登录和注销

避免使用root账号登陆,在后面需要管理员权限时候使用su -root命令切换成管理员
注销使用logout命令


用户与组的管理

添加用户

基本语法

useradd [选项] 用户名

给用户指定或者修改密码

基本语法

passwd 用户名

删除用户

基本语法

userdel 用户名

查询用户信息

基本语法

id 用户名

切换用户

介绍

在操作 Linux 中,如果当前用户的权限不够,可以通过 su - 指令,切换到高权限用户,比如 root.

基本语法

su - 切换用户名

细节说明

  1. 从权限高的用户切换到权限低的用户,不需要输入密码,反之需要。
  2. 当需要返回到原来用户时,使用 exit 指令

用户组

介绍

类似于角色,系统可以对有共性的多个用户进行统一的管理。

增加组

groupadd 组名

删除组

groupdel 组名

增加用户时直接加上组

useradd -g 用户组 用户名

修改用户的组

usermod -g 用户组 用户名

/etc/passwd 文件

用户(user)的配置文件,记录用户的各种信息每行的含义:用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录 Shell

/etc/shadow 文件

口令的配置文件每行的含义:登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志

/etc/group 文件

组(group)的配置文件,记录 Linux 包含的组的信息每行含义:组名:口令:组标识号:组内用户列表


实用指令

文件目录类

pwd 指令

ls 指令

cd 指令

makdir 指令

rmdir 指令

touch 指令

touch 指令创建空文件

cp 指令[重要]

cp 指令拷贝文件到指定目录

rm 指令

rm 指令移除【删除】文件或目录

mv 指令

mv 移动文件与目录或重命名

cat 指令

cat 查看文件内容,是以只读的方式打开。

more 指令

more 指令是一个基于 VI 编辑器的文本过滤器,它以全屏幕的方式按页显示文本文件的内容。more 指令中内置了若干快捷键,详见操作说明

less 指令

less 指令用来分屏查看文件内容,它的功能与 more 指令类似,但是比 more 指令更加强大,支持各种显示终端。less 指令在显示文件内容时,并不是一次将整个文件加载之后才显示,而是根据显示需要加载内容,对于显示大型文件具有较高的效率。

> 指令 和 >> 指令

echo 指令

echo 输出内容到控制台。

head 指令

head 用于显示文件的开头部分内容,默认情况下 head 指令显示文件的前 10 行内容

tail 指令

tail 用于输出文件中尾部的内容,默认情况下 tail 指令显示文件的后 10 行内容。

ln 指令

软链接也叫符号链接,类似于 windows 里的快捷方式,主要存放了链接其他文件的路径

history 指令

查看已经执行过历史命令,也可以执行历史指令

时间日期类

date 指令-显示当前日期

date 指令-设置日期

cal 指令

查看日历指令

搜索查找类

find 指令

find 指令将从指定目录向下递归地遍历其各个子目录,将满足条件的文件或者目录显示在终端。

grep 指令和 管道符号 |

grep 过滤查找。
管道符|,表示将前一个命令的处理结果输出传递给后面的命令处理。

打包和压缩

tar 指令

tar 指令 是打包指令,最后打包后的文件是.tar的文件。

gzip/gunzip 指令

gzip 用于压缩文件, gunzip用于解压的。只能针对文件,不能对文件夹。文件夹压缩需要先打包


组管理和权限管理

Linux 组基本介绍

在 linux 中的每个用户必须属于一个组,不能独立于组外。在 linux 中每个文件有所有者、所在组、其它组的概念。

  1. 所有者 : 一般是创建者(可修改),通过ls -l指令可查看
  2. 所在组 : 一般是所有者所在的组,通过chgrp 组名 文件名修改
  3. 其它组 : 非所在组

修改文件所有者

权限的基本结束

-rwxrw-r-- 1 root root 1213 Feb 2 09:39 abc
文件类型(1) 所有者权限(3) 所在组权限(3) 其他组权限(3)
- 普通文件 r 可读 r 可读 r 可读
d 目录 w 可写 w 可写 - 不可写
l 软链接 x 可执行 - 不可执行 - 不可执行
c 字符设备(鼠标/键盘)
b 块文件,硬盘
1 root root 1213 date name
文件:硬链接数;目录:子目录数 所有者名 所在组名 文件大小,目录固定为4096 最后修改日期 文件名

rwx详解

修改权限-chmod

10.11 修改文件所有者-chown

修改文件所在组-chgrp


crond 任务调度

参数说明

* * * * *
分钟:0~59 小时:0~23 天:1~31 月:1~12 星期:0~7[1]

特殊符号

* , - */n
代表任意 代表不连续 代表连续 代表每隔多少

应用案例

时间 含义
45 22 * * * 每天22.45执行
0 17 * * 1 每周一17点执行
0 5 1,5 * * 每月1号,5号的5点执行
40 4 * * 1-5 每周一至周五4点40执行
*/10 4 * * * 每天4点开始每隔10分钟执行
0 4 1,5 * 1 1号,5号,每周一的4点执行[2]

Linux 磁盘分区、挂载

如何增加一块硬盘

  1. 添加硬盘。lsblk -f得出新增的磁盘sdb
  2. 对磁盘分区 fdisk /dev/sdb
  3. 格式化 mkfs -t ext4 /dev/sdb1
  4. 挂载 先创建一个/home/newdisk文件夹, 挂载mount /dev/sdb1 /home/newdisk
  5. 设置可以自动挂载(永久挂载,当你重启系统,仍然可以挂载到 /home/newdisk) 。
    vim /etc/fstab
    /dev/sdb1 /home/newdisk ext4 defaults 0 0

磁盘情况查询

查询系统整体磁盘使用情况

查询指定目录的磁盘占用情况

磁盘情况实用指令

  1. 统计/home 文件夹下文件的个数
    ls -l | grep '^-' | wc -l
  2. 统计/home 文件夹下目录的个数
    ls -l /home | grep '^d' | wc -l
  3. 统计/home 文件夹下文件的个数,包括子文件夹里的
    ls -lR | grep '^-' | wc -l
  4. 统计文件夹下目录的个数,包括子文件夹里的
    ls -lR /home | grep '^d' | wc -l
  5. 以树状显示目录结构
    tree

进程管理

显示系统执行的进程

ps 指令详解

  1. 指令:ps –aux|grep xxx ,比如看看有没有 sshd 服务

    • VSZ:进程占用的虚拟内存大小(单位:KB)
    • RSS:进程占用的物理内存大小(单位:KB)
    • TT:终端名称,缩写 .
    • STAT:进程状态,其中 S-睡眠,s-表示该进程是会话的先导进程,N-表示进程拥有比普通优先级更低的优先级,R-正在运行,D-短期等待,Z-僵死进程,T-被跟踪或者被停止等等
    • STARTED:进程的启动时间
    • TIME:CPU 时间,即进程使用 CPU 的总时间
    • COMMAND:启动进程所用的命令和参数,如果过长会被截断显示

  1. 查看 sshd 进程的父进程号是多少
    ps -ef | grep sshd

终止进程 kill 和 killall

查看进程树 pstree

服务(Service)管理

服务(service) 本质就是进程,但是是运行在后台的,通常都会监听某个端口,等待其它程序的请求,比如(mysql , sshd 防火墙等),因此我们又称为守护进程。
在 CentOS7.0 后 不再使用 service ,而是 systemctl

chkconfig 指令

通过 chkconfig 命令可以给每个服务的各个运行级别设置自启动/关闭

动态监控进程

top 与 ps 命令很相似。它们都用来显示正在执行的进程。top 与 ps 最大的不同之处,在于 top 在执行一段时间可以更新正在运行的的进程。

查看系统网络情况 netstat

用来查看监听情况以及远程登录情况


RPM和YUM

rpm 包的简单查询指令

查询已安装的 rpm 列表   `rpm –qa | grep xx`

rpm 包名基本格式

一个 rpm 包名:firefox-45.0.1-1.el6.centos.x86_64.rpm
名称:firefox
版本号:45.0.1-1
适用操作系统: el6.centos.x86_64
表示 centos6.x 的 64 位系统
如果是 i686i386 表示 32 位系统,noarch 表示通用。

rpm 包的其它查询指令

rpm -qa :查询所安装的所有 rpm 软件包
rpm -qa | more [分页显示]

rpm -q 软件包名 :查询软件包是否安装
rpm -q firefox

rpm -qi 软件包名 :查询软件包信息

rpm -ql 软件包名:查询软件安装的位置

rpm -qf 文件全路径名 查询文件所属的软件包
rpm -qf /etc/passwd

卸载 rpm 包:

  1. 如果其它软件包依赖于您要卸载的软件包,卸载时则会产生错误信息。如: $ rpm -e foo
    提示removing these packages would break dependencies:foo is needed by bar-1.0-1
  2. 如果我们就是要删除 foo 这个 rpm 包,可以增加参数 --nodeps ,就可以强制删除,但是一般不推荐这样做,因为依赖于该软件包的程序可能无法运行
    如:$ rpm -e --nodeps

yum

Yum 是一个 Shell 前端软件包管理器。基于 RPM 包管理,能够从指定的服务器自动下载 RPM 包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包。使用 yum 的前提是可以联网。


shell

shell 快速入门

shell 的变量

  1. 定义变量:变量=值
  2. 撤销变量:unset 变量
  3. 声明静态变量:readonly 变量,注意:不能 unset
  4. 变量名称一般习惯为大写

将命令的返回值赋给变量

1) A=`ls -la` 反引号,运行里面的命令,并把结果返回给变量 A
2) A=$(ls -la) 等价于反引号

设置环境变量(/etc/profile)

位置参数变量

预定义变量

运算符

条件判断

流程控制

if 判断

case 语句

for 循环

while 循环

read 读取控制台输入

函数

    选项:
    `suffix` 为后缀,如果 `suffix` 被指定了,`basename` 会将 `pathname` 或 `string` 中的 `suffix` 去掉。

- dirname
    功能:返回完整路径最后 / 的前面的部分,常用于返回路径部分
    `dirname 文件绝对路径` (功能描述:从给定的包含绝对路径的文件名中去除文件名(非目录的部分),然后返回剩下的路径(目录的部分))
    `dirname /etc/profile`

  1. 0和7都是星期天

  2. 不推荐星期和日期混用

上一篇 下一篇

猜你喜欢

热点阅读