2020.8.25课堂笔记(Linux入门、常用命令)

Linux文件系统:
在这里插入图片描述在这里插入图片描述Linux操作系统结构:硬件->Kernel(内核)->Shell(命令解释器)把命令解释成执行对应的脚本,相当于一个个方法->外层应用程序

一、 目录命令:
1.增加目录 //make directory 知道英文原意方便记忆
mkdir [/路径/]目录名 递归创建 mkdir -p
//mkdir +目录名 是在当前目录下建
2. 删除目录
rmdir [/路径/]目录名 //remove directory 删除空目录
删除非空目录或文件: rm -rf 目录名 // -r 递归 -f 强制
// 删库跑路必备技能,不要去删库跑路
3. 改变目录
(1)复制:cp -r 原路径 新路径
(2)移动/重命名:mv 原路径 新路径
4.查看目录:
(1)查看当前路径:pwd
(2)切换到路径:cd
(3)查看目录内容:ls //只有文件名或目录名
在这里插入图片描述
① -a 展示所有隐藏文件(包括隐藏文件)-A(不包括.和…)
// . 当前目录 … 上一级目录
// 通过当前目录和上一级目录一层一层的可以定位到根目录 目录结构
//开头为 . 的都视为隐藏,包括文件和目录
② -l 展示所有文件的详细信息 // l : list ll 是 ls -l 的缩写
③ -R 递归查找所有子内容
//这些目录下都有文件,进入目录继续查找,直到找到最后一层
二、文件命令
1.创建文件
(1) touch [/路径]文件名 // 最好加后缀 a.txt
(2) vi
2.删除文件
(1) rm [-r/-i/-f][/路径/]文件名
// -i 删除前逐一询问确认是否删除 -r 主要对文件夹使用,递归删除 -f 直接删除无需确认 默认是 -i
在这里插入图片描述可以使用通配符rm -rf MySQL-* 一次性删除多个

3.改变文件
(1) 同改变目录 cp、mv命令
4.查看文件
(1) ls
(2) vi
三、文件内容命令
1.查看文件内容
(1) cat 文件名
(2) head [-n] 文件名 // -n 行数 默认为前十行,默认是没有文件名的,但是加了-v 会显示文件名 例:head -5v Hello.txt ==> Hello.txt <==
在这里插入图片描述

(3) tail [-n] 文件名 // 默认为后十行
在这里插入图片描述
//查看filename文件的第m行(tail -1 是数字1)
head -m filename | tail -1
//查看wangmingInfo.txt文件的第2行
head -2 wangmingInfo.txt | tail -1
| 管道符 将左边的结果作为右边的输入
2.增加文件内容
3.修改文件内容
4.删除文件内容
四、vi编辑器
1.模式:
(1)查看模式,按a,A,i,I,o,O,insert进入编辑模式,按:或/进入末行模式
(2)编辑模式:按ESC键回到查看模式
(3)末行模式:按ESC或者删掉末行代码回到查看模式
2.快捷键
(1)快速定位:gg是首行,末行shift+G,第n行 ngg
(2)进入编辑模式:
①在光标后插入:a
②在光标前插入:i
③定位到行尾插入:shift+a
④定位到行头插入:shift+i
⑤在下一行插入:o
⑥在上一行插入:O
(3) 复制: nyy
(4) 粘贴: np
(5) 删除/剪切: dd
(6) 撤销上一次:u
(7) 替换:r:替换光标所在的字符,R:一直替换,直到ESC退出
(8)n :n 表示数字,按下数字键后再按空格键,光标会向右移动到这一行的第n个字符,例如 20 空格 则光标会像后面移动20个字符的距离
(9) Ctrl+r 重做上一个动作
3.末行模式命令:
(1) 退出::q
(2) 保存::w 保存退出: :wq或者:x
(3) 强制:!
(4) 显示行号: :set nu 不显示: :set nonu
(5) 查找字符串:向下查找: /字符串 向上查找: ?字符串
①继续查找下一个:n,继续查找上一个: N 或 Shift+n
(6) 替换字符串: : s/要查找的字符串/替换后的字符串/g
//解释:n1,n2数字,代表从n1行到n2行之间。s代表查找并替换的这种方式,/代表查找,/代表要替换的字符串,/g到行尾 。从第一行到最后一行不需要加n1,n2
①批量注释: :%s/^/#/g
解释:%s代表所有的行,/^代表每一行的开头,/#把每一行的开头替换成#
②批量取消注释: :%s/#//g
history 查看最后执行的命令
五、用户管理:
1.用户家目录: ~
2.创建用户:useradd 用户名
3.修改密码:passwd 用户名
4.切换用户:su 用户名
5.删除用户:userdel 用户名
//创建用户的时候默认用户与用户组相同

tail -5 /etc/passwd
查询passwd文件后五行,新用户会显示在最后
关于/etc/passwd文件

root:x:0:0:root:/root:/bin/bash
在该文件中,每一行用户记录的各个数据段用“:”分隔,分别定义了用户的各方面属性。各个字段的顺序和含义如下: 
注册名:口令:用户标识号:组标识号:用户名:用户主目录:命令解释程序 
(1)注册名(login_name):用于区分不同的用户。在同一系统中注册名是惟一的。在很多系统上,该字段被限制在8个字符(字母或数字)的长度之内;并且要注意,通常在Linux系统中对字母大小写是敏感的。这与MSDOS/Windows是不一样的。 
(2)口令(passwd):系统用口令来验证用户的合法性。超级用户root或某些高级用户可以使用系统命令passwd来更改系统中所有用户的口令,普通用户也可以在登录系统后使用passwd命令来更改自己的口令。 
现在的Unix/Linux系统中,口令不再直接保存在passwd文件中,通常将passwd文件中的口令字段使用一个“x”来代替,将/etc /shadow作为真正的口令文件,用于保存包括个人口令在内的数据。当然shadow文件是不能被普通用户读取的,只有超级用户才有权读取。 
此外,需要注意的是,如果passwd字段中的第一个字符是“*”的话,那么,就表示该账号被查封了,系统不允许持有该账号的用户登录。 
(3)用户标识号(UID)UID是一个数值,是Linux系统中惟一的用户标识,用于区别不同的用户。在系统内部管理进程和文件保护时使用 UID字段。在Linux系统中,注册名和UID都可以用于标识用户,只不过对于系统来说UID更为重要;而对于用户来说注册名使用起来更方便。在某些特 定目的下,系统中可以存在多个拥有不同注册名、但UID相同的用户,事实上,这些使用不同注册名的用户实际上是同一个用户。 
(4)组标识号(GID):这是当前用户的缺省工作组标识。具有相似属性的多个用户可以被分配到同一个组内,每个组都有自己的组名,且以自己的组标 识号相区分。像UID一样,用户的组标识号也存放在passwd文件中。在现代的Unix/Linux中,每个用户可以同时属于多个组。除了在 passwd文件中指定其归属的基本组之外,还在/etc/group文件中指明一个组所包含用户。 
(5)用户名(user_name):包含有关用户的一些信息,如用户的真实姓名、办公室地址、联系电话等。在Linux系统中,mail和finger等程序利用这些信息来标识系统的用户。 
(6)用户主目录(home_directory):该字段定义了个人用户的主目录,当用户登录后,他的Shell将把该目录作为用户的工作目录。 在Unix/Linux系统中,超级用户root的工作目录为/root;而其它个人用户在/home目录下均有自己独立的工作环境,系统在该目录下为每个用户配置了自己的主目录。个人用户的文件都放置在各自的主目录下。 
(7)命令解释程序(Shell):Shell是当用户登录系统时运行的程序名称,通常是一个Shell程序的全路径名,如/bin/bash。 

Linux权限操作命令
 su [用户名]:切换到指定用户
 whoami:查看当前登录用户
 groups:查看当前用户所属分组
 id:查看当前用户UID和GID
 useradd [用户名]:添加用户
 useradd –u [UID] 用户名:添加用户并指定UID
 passwd [用户名]:修改用户密码
 userdel [用户名]:删除用户
 usermod –l [新用户名][ 旧用户名]:修改用户登录名
 usermod –g [新组名称][用户名]:修改用户所属分组
 groupadd [组名]:添加分组
 groupadd –g [组GID][ 组名]:添加分组并指定GID

useradd和adduser:

Linux adduser命令
Linux adduser命令用于新增使用者帐号或更新预设的使用者资料。
adduser 与 useradd 指令为同一指令(经由符号连结 symbolic link)。使用权限:系统管理员。
adduser是增加使用者。相对的,也有删除使用者的指令,userdel。语法:userdel [login ID]

1.文件夹的默认权限:drwxr-xr-x 755
//可以使用三位二进制数来表示权限操作
2.文件的默认权限: -rw-r–r-- 644
(记忆:r=4 w=2 x=1 所以:rwx=7 rw-=6 rx=5 r–=4 -wx=3 -w-=2 --x=1) //一般来说无论是写还是执行,前提条件是要先能读!!
(1) 首位标记文件类型:d是目录,-是文件,l是软连接
(2) 后9位切割成3个部分:分别代表用户自身(u),用户所在组成员(g),和其他组的成员(o)所具有的权限(rwx:可读、可写、可执行)
chmod 746 mytest
chmod u+rx,g+rx,o+rx mytest
文件夹里所有的权限拉满:chmod 777 -R test
//一般写成大写的R,使用递归的方式改变权限
3.改变文件/文件夹的归属 chown
(1) chown 用户名:组名 文件名 把文件的归属用户改成对应的“用户名”,归属组改成对应的"组名"
举例:chown root:test test1 把test1文件夹的归属改成root test,其中test代表文件或文件夹的所属组

来自:码农翻身
刘欣
2018/8/26
提问:
刘大。有个问题请教一下,如何系统学习linux下的编程?该看什么样的书比较好?最近在看一些招聘要求,对linux编程有些疑惑 [😂]
回答:
其实我觉得想系统地,全面地学习一个东西,对于计算机编程来说有点难,尤其是对已经工作了的人来说。

就拿Linux编程来说,首先得会用Linux, 熟悉基本命令,shell, vi, 账号和身份管理,软件安装等等。

深入一点就是Linux下的I/O模型, 还有进程,线程,他们的通信,同步和互斥。 socket编程,网络编程, select, epoll等等。

再深入的话就是Linux内核,Linux源码了。

书也非常多,例如《鸟哥的Linux私房菜》,《Unix环境高级编程》,《现代操作系统》,《Unix网络编程》,《深入理解计算机系统》…

在浩如烟海的知识面前,你要想全面地学习,是非常乏味的,很快就半途而废。

所以还是要确定目标,你看到招聘的要求,这个招聘的岗位是做什么的? 运维? 开发? 是Web开发还是Linux上的网络开发? 它们对你的Linux知识要求是完全不同的,是有侧重的。

建议放弃全面系统学习的想法,把火力集中到一点,突破后在由点及面拓展。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值