Linux-day1-上课笔记
命令的组成
命令关键字 [选项] [参数]
注意:
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-上课笔记的更多相关文章
- Linux实战教学笔记08:Linux 文件的属性(上半部分)
第八节 Linux 文件的属性(上半部分) 标签(空格分隔):Linux实战教学笔记 第1章 Linux中的文件 1.1 文件属性概述(ls -lhi) linux里一切皆文件 Linux系统中的文件 ...
- Linux实战教学笔记07:Linux系统目录结构介绍
第七节 Linux系统目录结构介绍 标签(空格分隔):Linux实战教学笔记 第1章 前言 windows目录结构 C:\windows D:\Program Files E:\你懂的\精品 F:\你 ...
- Linux实战教学笔记06:Linux系统基础优化
第六节 Linux系统基础优化 标签(空格分隔):Linux实战教学笔记-陈思齐 第1章 基础环境 第2章 使用网易163镜像做yum源 默认国外的yum源速度很慢,所以换成国内的. 第一步:先备份 ...
- Linux实战教学笔记05:远程SSH连接服务与基本排错(新手扫盲篇)
第五节 远程SSH连接服务与基本排错 标签(空格分隔):Linux实战教学笔记-陈思齐 第1章 远程连接LInux系统管理 1.1 为什么要远程连接Linux系统 在实际的工作场景中,虚拟机界面或物理 ...
- Linux实战教学笔记04:Linux命令基础
第四节:Linux命令基础 标签(空格分隔):Linux实战教学笔记 第1章 认识操作环境 root:当前登陆的用户名 @分隔符 chensiqi:主机名 -:当前路径位置 用户的提示符 1.1 Li ...
- Linux实战教学笔记03:操作系统发展历程及系统版本选择
标签(空格分隔): Linux实战教学笔记-陈思齐 第1章 Linux简介 1.1 什么是操作系统? 简单讲:操作系统就是一个人与计算机硬件的中介. 操作系统,英文名称Operating System ...
- Linux实战教学笔记02:计算机系统硬件核心知识
标签(空格分隔):Linux实战教学笔记-陈思齐 第1章 互联网企业常见服务器介绍 1.1 互联网公司服务器品牌 - DELL(大多数公司,常用) - HP - IBM(百度在用) 浪潮 联想 航天联 ...
- Linux实战教学笔记01:计算机硬件组成与基本原理
标签(空格分隔): Linux实战教学笔记 第1章 如何学习Linux 要想学好任何一门学问,不仅要眼睛看,耳朵听,还要动手记,勤思考,多交流甚至尝试着去教会别人. 第2章 服务器 2.1 运维的基本 ...
- storysnail的Linux串口编程笔记
storysnail的Linux串口编程笔记 作者 He YiJun – storysnail<at>gmail.com 团队 ls 版权 转载请保留本声明! 本文档包含的原创代码根据Ge ...
- linux 驱动学习笔记01--Linux 内核的编译
由于用的学习材料是<linux设备驱动开发详解(第二版)>,所以linux驱动学习笔记大部分文字描述来自于这本书,学习笔记系列用于自己学习理解的一种查阅和复习方式. #make confi ...
随机推荐
- 08--STL关联容器(set/multiset)
一:set/multiset的简介 set是一个集合容器,其中所包含的元素是唯一的,集合中的元素按一定的顺序排列.元素插入过程是按排序规则插入,所以不能指定插入位置. set采用红黑树变体的数据结构实 ...
- 微信小程序 开发文档
官方开发文档: 小程序公众平台 小程序开发者指南 小程序开发者文档 学习资源: 微信:官方入门教程 微信:WeUI 是一套同微信原生视觉体验一致的基础样式库 微信:微信小程序示例 视频: 学堂在线:学 ...
- 计算机网络之JSONP跨域
JSONP跨域实现原理 百度联想词跨域实现 一.JSONP跨域实现原理 1.Web页面使用<script>引入JS文件时不受同源策略的影响.准确的说,所有拥有src属性的标签都不受同源策略 ...
- mysql 关联表修改数据
UPDATE t1 INNER JOIN t2 ON t1.c1=t2.c1 SET t1.c2=value WHERE t1`removed`=0 AND t2`removed`=0 AND t1 ...
- 域 搭建OU 组织单元
以这个界面开始操作: 在 baidu.com 右键---新建----组织单位----北京分公司 在 baidu.com 右键---新建----组织单位----北京分公司 在北京分公司 和南京分公司下面 ...
- Linux基础 - 系统优化及常用命令
目录 Linux基础系统优化及常用命令 Linux基础系统优化 网卡配置文件详解 ifup,ifdown命令 ifconfig命令 ifup,ifdown命令 ip命令 用户管理与文件权限篇 创建普通 ...
- sqlyog连接mysql8.0
1.本人安装的是mysql8.0社区版,安装包名称:mysql-installer-community-8.0.12.0.msi,可自行到官网下载. 2.安装完成后用sqlyog连接数据库出现密码乱码 ...
- [转] xgboost
还是不太明白,先mark一下 https://blog.csdn.net/v_july_v/article/details/81410574
- Python中字符串二三事
首先说两个运算符: " == " 运算符测试值的等价性,递归地比较所有内嵌对象 " is " 表达式测试对象的同一性,测试两者是否为同一对象(是否为同一地址) ...
- 使用Mac下的sequel Pro链接数据库时提示错误(已解决)
使用Mac下的sequel Pro链接数据库时,出现如下问题: ? 1 MySQL said: Authentication plugin 'caching_sha2_password' cannot ...