命令的组成

命令关键字 [选项] [参数]

注意:

1. 通常情况下 选项- --连接

ls -l /etc

2. - 选项和选项之间是可以合并的

ls -ld /etc

ls 罗列文件   常见的选项 -l 罗列文件属性

-d 罗列目录本身

-a 罗列所有文件(包括隐藏文件)    以点起始的文件-隐藏文件

特殊注意事项  .. 上一级目录

. 当前目录

cd 切换目录

cd /etc

cd /usr/lib

pwd 显示当前目录绝对路径

查看帮助文档

man

基于文件的基础操作指令

1. 创建文件

touch /tmp/file1

2. 删除文件

rm /tmp/file1

3. 复制文件

cp 源文件1 [源文件2] [源文件3] 目的地

cp /tmp/file5 /srv

4. 移动文件

mv 源文件1 [源文件2] [源文件3] 目的地

mv /tmp/file3 /srv

5. 创建目录

mkdir

mkdir -p /tmp/a/b/c/d/e/f/g

递归创建目录

6. 删除目录

rmdir

rm -r

rm -rf

7. 复制目录

cp -r test/ /tmp

8. 移动目录

mv /tmp/test /srv

基于文件内容执行的操作

1. 查看文件内容

cat  用于查看小文件,不适用于日志型(大文件)查看

head 查看文件头部,默认情况下,将文件前10行显示到屏幕上

-n 指定显示行数

tail 查看文件尾部,默认情况下,将文件前10行显示到屏幕上

-n 指定显示行数

-f /var/log/messages 动态查看文件尾部追加内容

中断指令ctrl + c

more 查看大文件,按空格翻下一页,b翻上一页,退出q

less 查看大文件,按空格翻下一页,b翻上一页,退出q,/搜索的关键字

2. 修改文件内容

vim

1) 查看模式

2) 进入插入模式的方法

i

退出插入模式

esc

3) 退出模式

保存退出:wq

不保存退出:q!

保存不退出:w

3. 统计文件内容

过滤行:

grep 字符串 文件

-v 反选

字符串的特殊表达方式  ^ 行起始  $ 行结尾

[root@jenny tmp]# grep ^root /etc/passwd

root:x:0:0:root:/root:/bin/bash

[root@jenny tmp]# grep login$ /etc/passwd

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

adm:x:3:4:adm:/var/adm:/sbin/nologin

lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

mail:x:8:12:mail:/var/spool/mail:/sbin/nologin

operator:x:11:0:operator:/root:/sbin/nologin

games:x:12:100:games:/usr/games:/sbin/nologin

ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin

nobody:x:99:99:Nobody:/:/sbin/nologin

systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin

dbus:x:81:81:System message bus:/:/sbin/nologin

polkitd:x:999:998:User for polkitd:/:/sbin/nologin

sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin

postfix:x:89:89::/var/spool/postfix:/sbin/nologin

apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin

[root@jenny tmp]#

A下几行

B上几行

grep -A1 -B1 root /etc/fstab

截取列

[root@jenny tmp]# cut -d":" -f1 /etc/passwd

以冒号作为分割的第一列截取出来

练习:

1. 创建/tmp/a/b/c目录

mkdir -p /tmp/a/b/c

2. 在该目录下创建20个文件,名为file1-20

touch /tmp/a/b/c/file{1..20}

3. 复制file1 file2 file3 到/srv目录

cd /tmp/a/b/c

cp file{1..3} /srv

4. 移动file5 到/srv目录

cd /tmp/a/b/c

mv file5 /srv

5. 移动b目录到/opt目录

[root@jenny c]# mv /tmp/a/b/ /opt/

6. 删除/tmp/a

rm -rf /tmp/a/

7. 编辑/srv/file5,写入hello并保存退出

vim /srv/file5

i

hello

esc

:wq

==================================

ls -l

-a

-d

cp -r 源文件 目标地址

mv 源文件 目标地址

mkdir

rm

. 当前目录

.. 上一级目录

{1..10}

* 通配符

==================================

8. 截取/etc/passwd的第一列

cut -d":" -f1 /etc/passwd

9. 检索/etc/passwd以bash结尾的行

grep bash$ /etc/passwd

#10. 统计/etc/passwd行数

11. 查看/etc/目录下所有以.conf结尾的文件属性

ls -l /etc/*.conf

12. 显示/etc/passwd中不含bin的行

grep -v bin /etc/passwd

13. 显示/etc/fstab不以"#"开头的行

grep -v ^# /etc/fstab

14. 去除空行显示/etc/fstab

grep -v ^$ /etc/fstab

#15. 检索/var/log/messages中包含kernel的行,并以页的方式进行查看。

#16. 查看当前年月日

回家作业

1. 如果有一个文件名为全空格,如何将该文件删除?

例如:

[root@jenny tmp]# touch '      file'

[root@jenny tmp]# ls -al

total 4

drwxrwxrwt. 10 root root 255 Apr 14 10:32 .

dr-xr-xr-x. 17 root root 253 Apr 14 10:28 ..

-rw-r--r--.  1 root root   0 Apr 14 10:32       file

用户相关概念

1. 用户家目录:存放用户独有的信息

2. 用户: uid

3. 每个用户都会有对应的所属组: 默认组、附加组

4. 密码

三类

1)root用户(超级管理员)

2)系统用户(保证一些程序能够安全稳定的运行而产生的账户)     不允许人为登录操作系统的

/sbin/nologin

3)普通用户(能够登录操作系统,但是权限受到一定限制的用户) 允许登录,允许执行命令

shell --> bash

/bin/bash

用户信息文件: /etc/passwd

test:x:1000:1000::/home/test:/bin/bash

apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin

以冒号作为分割,总共有7列

用户名:密码占位符:uid:默认组的gid:描述:用户家目录:登录shell

/etc/login.defs 定义了用户初始化的参数

通常情况下,自定义用户uid 1000-60000,系统用户uid范围201-999

/etc/shadow

man 5 shadow

root:$6$as1u8f2ySgWp2YXh$VXIiTYn5YZBEPuFkKH7Hj7wv97.Gb/BeGWBUjY49FoJA8ikBqK931VwK..eaYlcozgLizhg5Wy8Dj3DtuANzN1::0:99999:7:::

/etc/group

systemd-journal:x:190:

组名:x:gid:以附加组身份用户名单

用户相关的配置文件

- /etc/passwd 存放用户信息

- /etc/shadow 存放用户密码策略的

- /etc/login.defs 存放用户初始化相关定义参数的

- /etc/default/useradd 创建用户默认参数

组相关的配置文件

- /etc/group 组相关的配置文件

组的命令

1. 添加组

groupadd 组名

groupadd -g gid 组名

2. 删除组

groupdel 组名

3. 修改组的属性

groupmod

用户的命令

1. 添加用户

useradd

-d 指定用户家目录位置

-u 指定用户uid

-g 指定用户默认组,(默认组有且只有一个)

-G 指定用户附加组

-s 指定用户的登录shell

2. 删除用户

userdel 仅删除用户

userdel -r 删除用户及个人配置信息

3. 给用户设置密码

passwd 用户名

4. 修改用户的属性

usermod

-d 修改用户家目录位置

-u 修改用户uid

-g 修改用户默认组,(默认组有且只有一个)

-G 修改用户附加组

-aG 追加附加组

-s 修改用户的登录shell

uid=1005(webuser) gid=1005(webuser) groups=1005(webuser),1001(jenny),1002(carol),1003(alexey),1006(grouptest1)

5. chage 修改用户的密码策略

[root@jenny home]# chage -l webuser

Last password change : Apr 14, 2019

Password expires : never

Password inactive : never

Account expires : never

Minimum number of days between password change : 0

Maximum number of days between password change : 99999

Number of days of warning before password expires : 7

[root@jenny home]# chage webuser

Changing the aging information for webuser

Enter the new value, or press ENTER for the default

Minimum Password Age [0]: 7

Maximum Password Age [99999]: 90

Last Password Change (YYYY-MM-DD) [2019-04-14]:

Password Expiration Warning [7]:

Password Inactive [-1]:

Account Expiration Date (YYYY-MM-DD) [-1]:

6. 切换用户身份

su - webuser

exit

要求:

1. 创建jenny用户和carol用户,并设置其密码为Yyit123456

useradd

passwd jenny

2. 创建组grouptest1和grouptest2,要求该组的gid分别为10001和10002

groupadd -g 10001 grouptest1

groupadd -g 10002 grouptest2

3. 创建用户alexey,要求该用户以附加组成员身份添加grouptest1和grouptest2。

useradd alexey -G grouptest1,grouptest2

4. 创建用户appuser,要求该用户不允许登录操作系统

useradd appuser -s /sbin/nologin

5. 创建用户ivy,要求该用户家目录在/opt/ivy这个位置, 并设置密码xxxxx

useradd ivy -d /opt/ivy

passwd ivy

6. 要求删除jenny用户及其个人配置信息

userdel -r jenny

第一人要管理网络,重启服务,

第二个管理用户,useradd,usermod,userdel,groupadd,groupdel,groupmod

sudo权限:在执行某些特定指令的时候,获取其他人的身份(不需要知道其他人的密码)

配置文件 /etc/sudoers

root

修改配置文件 建议使用visudo命令

用户 地方=(身份) 命令

alexey  ALL=(ALL)       /usr/sbin/useradd

命令写绝对路径(可通过Whereis useradd查找到绝对路径在哪里)

当用户想要去执行指令的时候

sudo useradd peter(第一次执行时候需输入自己的密码)

alexey  ALL=(ALL)       /usr/sbin/useradd,/usr/bin/userdel

作业:

允许alexey用户通过sudo能够执行useradd,usermod,userdel,groupadd,groupdel,groupmod

思考:能否免密码执行该指令

vim使用

在一般模式下能够做的事情

1. 光标的跳转

G: 直接跳转到文件最后一行

10G: 跳转到文件第十行

gg: 直接跳转到文件第一行

2. 行复制黏贴

yy: 复制一行

p: 在当前行下方黏贴

3yy: 复制三行

p: 在当前行下方黏贴

3. 行删除、剪贴

dd: 删除一行

3dd: 删除三行

dd剪贴,p 贴

4. 撤回

条件: 不执行wq,都可以撤回

u: 撤回执行操作

5. 查找

执行'/查找的字符串'

如何进入到插入模式

i: 在光标所在位置进入到插入模式

o: 在当前光标所在位置下方新开一行进入到插入模式

O: 在当前光标所在位置上方新开一行进入到插入模式

A: 在当前光标所在行尾部进入插入模式

I: 在当前光标所在行头部进入到插入模式

如果要进行文本保存,需进入到命令模式(退出模式)

插入模式 ---> 一般模式   ----> 命令模式

esc   :

命令模式下可以做的事情

:wq

:q! (! 强制)

:wq!

:set nu 显示行号

:set nonu 取消行号显示

替换

:s/被替换的内容/替换后的内容/

:s/games/happy/ 意味着将当前光标所在行匹配到的第一个games替换为happy

:s/games/happy/g  意味着当前光标所在行所有的games替换为happy

:%s/sbin/happy/g  意味着全文中的sbin替换为happy

cp /etc/passwd /tmp

对该文件进行vim的系列操作

1. 将第一行复制到第十行

2. 删除第五行

3. 查找全文中所有bash,将其替换为test

4. 将第三行,第四行剪贴至文件末尾处

5. 保存退出

Linux-day1-上课笔记的更多相关文章

  1. Linux实战教学笔记08:Linux 文件的属性(上半部分)

    第八节 Linux 文件的属性(上半部分) 标签(空格分隔):Linux实战教学笔记 第1章 Linux中的文件 1.1 文件属性概述(ls -lhi) linux里一切皆文件 Linux系统中的文件 ...

  2. Linux实战教学笔记07:Linux系统目录结构介绍

    第七节 Linux系统目录结构介绍 标签(空格分隔):Linux实战教学笔记 第1章 前言 windows目录结构 C:\windows D:\Program Files E:\你懂的\精品 F:\你 ...

  3. Linux实战教学笔记06:Linux系统基础优化

    第六节 Linux系统基础优化 标签(空格分隔):Linux实战教学笔记-陈思齐 第1章 基础环境 第2章 使用网易163镜像做yum源 默认国外的yum源速度很慢,所以换成国内的. 第一步:先备份 ...

  4. Linux实战教学笔记05:远程SSH连接服务与基本排错(新手扫盲篇)

    第五节 远程SSH连接服务与基本排错 标签(空格分隔):Linux实战教学笔记-陈思齐 第1章 远程连接LInux系统管理 1.1 为什么要远程连接Linux系统 在实际的工作场景中,虚拟机界面或物理 ...

  5. Linux实战教学笔记04:Linux命令基础

    第四节:Linux命令基础 标签(空格分隔):Linux实战教学笔记 第1章 认识操作环境 root:当前登陆的用户名 @分隔符 chensiqi:主机名 -:当前路径位置 用户的提示符 1.1 Li ...

  6. Linux实战教学笔记03:操作系统发展历程及系统版本选择

    标签(空格分隔): Linux实战教学笔记-陈思齐 第1章 Linux简介 1.1 什么是操作系统? 简单讲:操作系统就是一个人与计算机硬件的中介. 操作系统,英文名称Operating System ...

  7. Linux实战教学笔记02:计算机系统硬件核心知识

    标签(空格分隔):Linux实战教学笔记-陈思齐 第1章 互联网企业常见服务器介绍 1.1 互联网公司服务器品牌 - DELL(大多数公司,常用) - HP - IBM(百度在用) 浪潮 联想 航天联 ...

  8. Linux实战教学笔记01:计算机硬件组成与基本原理

    标签(空格分隔): Linux实战教学笔记 第1章 如何学习Linux 要想学好任何一门学问,不仅要眼睛看,耳朵听,还要动手记,勤思考,多交流甚至尝试着去教会别人. 第2章 服务器 2.1 运维的基本 ...

  9. storysnail的Linux串口编程笔记

    storysnail的Linux串口编程笔记 作者 He YiJun – storysnail<at>gmail.com 团队 ls 版权 转载请保留本声明! 本文档包含的原创代码根据Ge ...

  10. linux 驱动学习笔记01--Linux 内核的编译

    由于用的学习材料是<linux设备驱动开发详解(第二版)>,所以linux驱动学习笔记大部分文字描述来自于这本书,学习笔记系列用于自己学习理解的一种查阅和复习方式. #make confi ...

随机推荐

  1. Exp1 PC平台逆向破解

    本次实践的对象是一个名为pwn1的linux可执行文件. 该程序正常执行流程是:main调用foo函数,foo函数会简单回显任何用户输入的字符串. 该程序同时包含另一个代码片段,getShell,会返 ...

  2. Apache Hadoop 2.9.2 的YARN High Available 模式部署

    Apache Hadoop 2.9.2 的YARN High Available 模式部署 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.环境准备 1>.官方文档(htt ...

  3. socket(TCP-粘包)通讯之Python实现

    所谓粘包问题主要还是C/S两端数据传输时 因为接收方不知道消息之间的界限,不知道一次性提取多少字节的数据所造成的 根本原因:粘包是由TCP协议本身造成的,TCP为提高传输效率,发送方往往要收集到足够多 ...

  4. idea使用记录

    1.在工具栏添加工具

  5. Angular4.x跨域请求

    Angular4.x请求 码云地址: https://gitee.com/ccsoftlucifer/Angular4Study 1. 搭建工程 新建一个工程angulardemo03 ng new ...

  6. Java SE之快速失败(Fast-Fail)与快速安全(Fast-Safe)的区别[集合与多线程/增强For](彻底详解)

    声明 特点:基于JDK源码进行分析. 研究费时费力,如需转载或摘要,请显著处注明出处,以尊重劳动研究成果:博客园 - https://www.cnblogs.com/johnnyzen/p/10547 ...

  7. python开发基础之数据类型、字符编码、文件操作

    一.知识点 1.身份运算: 2.现在计算机系统通用的字符编码工作方式:在计算机内存中,统一使用Unicode编码,当需要保存到硬盘或者需要传输的时候,就转换为UTF-8编码.用记事本编辑的时候,从文件 ...

  8. Mac终端命令自动补全

    在这里我们首先说一下mac终端执行命令的时候,不会像在windows系统中安装的linux一样支持自动补全,需要自己去调试 步骤如下: (1)打开终端输入nano .inputrc(这里一定要注意na ...

  9. 2018-2019-2 网络对抗技术 20165337 Exp3 免杀原理与实践

    基础问题回答 (1)杀软是如何检测出恶意代码的? 基于特征码的检测:特征码就是一段数据.如果一个可执行文件(或其他运行的库.脚本等)包含特定的数据则被认为是恶意代码.AV软件厂商要做的就是尽量搜集最全 ...

  10. 泛型约束new()的使用

    下面泛型约束代码,where字句后面有new()约束,T类型必须有公有的无参的构造函数. private T InternalCreate<T>() where T : IObjectWi ...