Linux学习笔记【BV1zL411T7YY】
帮助
type [cmd] 查看命令类型(内置?外置?)
help [cmd] 查看内置命令帮助
man [cmd] 查看外置命令帮助
挂载磁盘
mount /dev/disk1 /etc/video -> 向 /etc/video 挂载磁盘disk1
Linux文件 -> 所有对象皆文件
文件结构
树状结构,可以使用mount来向文件夹挂载一些磁盘
文件类型-- bcdlsp
- none, 普通文件
b block, 块设备文件,读写以块进行(DMA?),无流,通常支持随机访问,如U盘
c char, 字符设备,读写以字符进行,有流,通常不可随机访问,如键盘
d dir, 目录文件
I link, 连接文件
s socket, 字连接(主要用于网络通信)
p pipe, 管道文件(主要用于进程通信相关)
进程
ps -ef查看进程
进程位于 /proc/ 下
$$ 是当前进程PID
二级目录信息
/bin -> 可执行文件
/boot -> 引导分区
/dev -> 设备信息
/etc -> 配置文件
/home -> 工作目录
/lib(64) -> 运行类库
/mnt -> 挂载的磁盘
/opt -> 建议将软件安装在opt里面
/proc -> 进程的信息
/root -> root的工作目录
/run -> 运行时的各种变量放在这里
/sbin -> root级别用户可执行的程序
/srv -> 系统服务启动之后需要的数据
/sys -> 系统文件
/tmp -> 临时文件
/usr -> 用户的应用程序和文件放在这里,全称 Unix Software Resource
/var -> 变量和日志文件
/media -> 各种介质
*.d -> 默认文件,依赖文件,动态文件
文件操作
文件的物理数据区域通过Inode进行标识,通过“入口”进行增删改查
cd -> change dir
pwd -> process work dir
ls -> 各种别名操作在alias里面有
mkdir/rmdir -> 不解释了
mkdir -p(parent) a1/{a1_1,a1_2,a1_3} -> 同时创建a1和其下的三个子文件夹
cp -> copy
cp -r(recursive) -i(interactive)
mv -> move剪切,可以用于重命名
mv -i(interactive)
stat -> 文件信息查看
Access(最近访问)进行过read操作的时间
Modify(最近更改)进行过write操作的时间
Change(最近改动)更改过其元数据的时间
touch -> 可以创建文件,使用nano也行
touch文件的话,进行了read和write操作,以及访问了元数据,故文件的三时间都会同步
chmod -> change mod
ln -> 连接(快捷方式)
ln -s abc linkOf_abc -> 建立abc的软连接linkOf_abc
软连接:通俗意义的快捷方式
硬链接:是一个业务镜像,即一个接触到同一个内存区域(Inode标识一致)的“入口”
rm -> remove 删除文件的“入口”,当一个文件没有“入口”,则该文件将被系统逻辑抹消(找不到了嘛)
rm -r(recursive) -f(force) 目录
hjys:jys数据的硬链接,是一个“入口”
jinyesi :jys数据的"入口",是创建文件分配完内存空间后自动创建的一个硬链接
sjys:是jinyesi入口的一个快捷方式,是该快捷方式的“入口”
cat / tac :cat把文件按行号由小到大输出,tac将文件按行号由大到小输出
more:单屏分页显示,回车显示一行,空格显示一页,b回退一页,h呼出提示,q退出
less:功能比more更强大,h呼出提示
head/tail:查看文件的前xx行
head -10 1.txt -> 显示文件的前10行
head -10 1.txt | tail -2 -> 显示1.txt的第9、10行
tail -f 1.txt -> 通过监控文件的Inode的方式实时展现1.txt的末尾数据变化,文件本身变动后将无法跟踪
tail -F 1.txt -> 通过监控入口名字的方法实时展现1.txt的末尾数据变化,主动获取数据,因此文件本身删除重建后依然可以跟踪数据
find [dir] -name a*a -> 在[dir]里面查找以a开头和a结尾的文件
find / -name xxx -> 全局搜索一个名为xx的文件
vi-vim:文件编辑
史上最全Vim快捷键键位图(入门到进阶) | 菜鸟教程 (runoob.com)
键位图
vim +n 1.txt -> 打开的同时定位到第n行,若n没有指定,则定位到最后一行
vim +/xxx 1.txt -> 打开的同时定位到第一次出现xxx的地方,按n查找下一个
vim有3中模式:
进入文时的编辑模式,有快捷键
编辑模式键入i进入输入模式,此时即为普通编辑器,此模式下按esc返回编辑模式,a追加,I行首
编辑模式键入:进入命令模式
编辑模式键入R进入替换模式
i:在光标所在字符前开始插入(insert插入)
a:在光标所在字符后开始插入(追加)
o:在光标所在行的下面另起一新行插入(other另起)
s:删除光标所在的字符并开始插入(这玩意是个啥?)
I:在光标所在行的行首开始插入 如果行首有空格则在空格之后插入
A:在光标所在你行的行尾开始插入
O:在光标所在行的上面另起一行开始插入
S:删除光标所在行并开始插
编辑模式命令:
光标:I光标后边的字符即为当前光标下选中的字符,也就是方形光标内的字符
[num]gg:跳转到第[num]行,没有[num]则跳到第一行
G:跳转到最后一行
[num]dd:向下删除[num]行,包括本行,如果没有指定[num]则默认向下删除一行
D:清空本行,和dd的区别是dd会包括本行转行符号在内,D保留空行
[num]w:光标向后跳过[num]个单词,包括本单词,移动到之后的单词的开头
[num]dw:向后删除[num]个单词
[num]yw:向后复制[num]个单词
W:一样的
[num]yy:向下复制[num]行,包括本行
Y:向上复制,包括本行
[num]x:剪切后[num]个字符,包括本字符
X:向前,其它同上
[num]p:粘贴[num]次
P:向上粘贴
[num]r:向后替换[num]字符为输入字符,包括本字符
3r a:替换后面3个为a字符
R:进入替换模式,esc退出,感觉是由插入比较另类,因为一般来讲是不会向后移动光标符号的
[num]s:向后删除num个字符,并进入编辑模式
S:向后删除num行,保留一个空行,并进入编辑模式
u:undo
U:仅仅退回到上一步,再按就是退回前的那步了
hjkl:左下上右
^/$:行首字符/行尾字符【正则表达式???】
-0+:负即上一行行首,0即这一行行首,正即下一行行首
():“(”为文件首,“)”为文件尾
ZZ:保存并退出
ctrl+s/ctrl+q:锁屏/解锁(没玩明白)
:s/1/2 搜索当前行第一个1并用2代替 search
:s/1/2/g 搜索当前行所有的1并用2代替 global
:#,#s/1/2/g 在#,#间搜索所有1并用2替换
:%s/1/2/g 在整个文档中将1替换为2 100%(全部)
:s/1/2/c 每次替换都给出提示确认 cue提示
命令模式命令:
:进入命令模式
set nu/nonu:显示行号/不显示行号
w:写入
q:退出
!:强制执行
/xxx:查找xxx,n向下,N向上
s/xxx/yyy/:替换该行的第一个xxx为yyy
s/xxx/yyy/g:替换该行所有的xxx为yyy
g/xxx/s//yyy/:替换所有行的第一个xxx为yyy
g/xxx/s//yyy/g:替换全局所有的xxx为yyy
文件传输
linux--linux:scp -r(recursive) [文件] [目录] -> 文件可以是本地文件也可以是远程文件,目录同
文件大小
df(display fileSystem) -h(human) -> 文件分区信息(以人类可读形式输出)
du(display fileSystemUsage) -h(human) --max-depth=1 / -> 以人类可读的形式输出/目录下的大小信息,遍历深度1
文件压缩与解压缩
tar.gz解压 -> tar -zx(gzip, extract)v(verbose)f(file) [压缩文件] [-C(Change dir) [解压目录]]
tar.gz压缩 -> tar -zc(gzip, create)f(file) [压缩文件名] [原文件或目录]
zip解压 -> unzip [压缩文件]
zip压缩 -> zip -r(recursive) [文件或文件夹]
Linux网络
主机名称修改
hostname xxx -> 临时修改为xxx
/etc/hostname -> 永久修改hostname
/etc/hosts -> 修改本地DNS解析信息
网络信息
ifconfig -> 查看网卡配置信息,作用同ip addr
netstat -> 查看网络connect状态socket连接
netstat -a(all)n(numeric)p(programs) 查看所有socket信息,不解析名称,并显示程序
ping -> 略
telnet -> 查看ip的特定端口联通情况
curl -> 以restful风格定位网络资源
curl --help all 显示所有帮助
curl -X <method> url -> curl -X GET http://www.baidu.com
防火墙
详情介绍见:Linux防火墙之iptables详解_别掉头发啦的博客-CSDN博客_iptables
熟悉iptables操作:iptables详解(图文)_董筱杰的博客-CSDN博客_iptables
主机间免密钥
登陆主机(A)要免密钥登录被登陆主机(B),简记为A->B
B中将A的公钥存放于/root/.ssh/authorized_keys,只要之在这里的公钥,都可以免密钥登录,反之,要想免密钥登录B,只要将自己的公钥放在B的这个位置即可
生成密钥
ssh-keygen -t(type) rsa -P(passpharse) '证书密码' -f(filename) ~/.ssh/id_rsa
拷贝公钥
ssh-copy-id -i(identity_file) ~/.ssh/id_rsa.pub root@B
(其实用cp也可以,就是你得记住路径)
Linux时间
date -> 查看时间
date -s(set) xxxx-xx-xx xx:xx:xx -> 设置时间为xxxx年xx月xx日xx时xx分xx秒
hwclock -> 查看硬件时间
hwclock -w -> 写入时间到硬件
ntpdate [服务器] -> 将时间和该服务器同步,可以选择cn.ntp.org.cn进行时间同步
Linux用户与组
用户的增删改查
用户信息在/etc/shadow
useradd [username] -> 创建用户
userdel -r(remove) [username] -> 删除用户
usermod -> 修改账户
usermod -l(login) [老名] [新名] -> 修改登录名称,不会修改家和组名称
usermod -L(lock) [username] -> 锁定用户
usermod -U(unlock) [username] -> 解锁用户
su [username] -> 转换用户
usermod -g test2 test -> 将test2作为test用户的主组
usermod -G test2,root test -> 将test2和root作为test的附属组
注意:-g将替换现有主组,-G替换现有的所有附属组
cat /etc/shadow -> 查找用户
密码增删改查
密码文件在/etc/passwd
用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell
passwd [username] -> 更新username的密码
passwd -d(delete) [username] -> 删除密码
passwd -e(expire) [username] -> 使密码过期
cat /etc/passwd -> 查找密码
组的增删改查
组文件在/etc/group
组名:口令:组标识号:组内用户列表
groupadd [username] -> 创建组
groupmod -U(users) usename [group_name] -> 将username添加到groupname里面,该group作为该username的附属组
groupdel [username] -> 删除组本身,注意,如果这个组时某个用户的主组,那么将无法删除,须先删除该组的主成员,才能删除该组,如果该组的主用户删除后为空,则该组删除
groupmod -n(new_name) [new_name] [old_name] -> 将组名改为新名字
cat /etc/group -> 查看组信息
groups [username] -> 查看username的组及成员,默认当前用户的组
结果格式为A:B C -> 表示A用户在B和C两个组里面
**需要注意的是:usermod的主体是user,故username放在最后,以-g-G引入组名,groupmod的主体是groupname故将groupname放在最后,以-U引入用户名
Linux权限
ls查看文件时,看到
d/xxx/xxx/xxx root root:d代表dir目录,第一个时是拥有者权限,第二个是所属组权限,第三个是其他组。第一个root是所有者,第二个是其所属组
修改权限chmod -> change mod
用法:chmod 3位2进制数的10进制表示(如777) username
修改所有者chown -> change owner
用法:chown user:group [文件]
Linux管道与重定向
管道:将结果变为一个临时的文件,放在后面例如 [command] | grep xxx
重定向:改变数据输出的位置
0> --input 1> --ouput(可省略为>) 2> --err
注意,这里的input和output是根据运行程序来说的,output即输出到文件
> --覆盖 >> --追加
即写入到文件时会不会擦除原先的东西
[cmd] >(>>) [file] 2>&1 -> 无论是正确的还是错误的信息,都发送到file中
可以向黑洞/dev/null/里面丢数据
[cmd] >> /dev/null 2>&1
tty -> 显示你的终端设备文件在哪,可以向这里输出信息
Linux进程
前台进程
进程位于/proc/中,每个文件夹以PID命名,存放进程运行的上下文
查看进程:ps -efaux 或者 ps -faux 或者 top
PID--process id
PPID--parent process id
ps -e(all precesses) -f(forest) -a(all) -u(user-orented format) -x(process without controling tty)
top -> 实时的
杀死进程 kill -9 [PID]
后台进程
创建后台进程:将输出和错误重定向,在使用&脱离即可
[cmd] >>[file] 2>&1 & 即可
例如 ping 192.168.0.1 >> abc 2>$1 &
nohup(no hung up) [cmd] -> 后台进程可以和终端进程脱离,使得终端结束后后台进程可以维持运行状态
删除后台进程:kill -9 [PID]即可,前后端通用
查询后台进程:jobs -l(list),注意,非本终端执行的命令是查不到的,需要用ps -efaux查看
Linux工具命令
cut
主要用于文件内容的切割显示
cut -d(delimiter) ':' -f(field) 1,2,3 a.txt -> 将a.txt的内容按照:进行分割,并且去前3列输出
sort
对某个文件排序
sort -t(separator) ':' -k(key) -r(逆序) -n(如果是数字,就按照数字大小来比较,而非默认的字符比较) a.txt -> 在文件a.txt中使用:进行分割,分割玩之后对某列逆序排序
wc
word-count,统计单词数量
wc [file]
结果: xx xx xx [file]
解释:行数 单词数量 字符数量 文件名
单词是以空格作为分界的
grep
grep xxx [file1] [file2]... -> 在file1和file2上找xxx
grep -n xxx a.txt -> 显示a.txt中xxx所在的行号
grep -E(expression) "xxx" a.tzt -> 使用正则表达式匹配
sed--Stream editor
流式处理文件内容
Linux实战教学笔记12:linux三剑客之sed命令精讲 - 陈思齐 - 博客园 (cnblogs.com)
Linux学习笔记【BV1zL411T7YY】相关推荐
- linux rcs文件中的ip,linux学习笔记之diff和patch命令
关键字:Linux 学习笔记 运维 系统 命令 一.命令的功能 diff命令的功能为逐行比较两个文本文件,列出其不同之处.可是做成diff记录也就是补丁. patch就是利用diff制作的补丁来打到文 ...
- (零)我为什么要写Linux学习笔记?
我对Linux有强烈的好奇心,兴趣:写学习笔记会让我有成就感:我记忆力实在不好.好吧,其实真正原因是:如果我能把自己学到的知识简明扼要的讲出来,写出来,那便证明我真的学懂了我想学的知识.没时间怎么办? ...
- linux添加自己的库,Linux学习笔记——例叙makefile 增加自定义共享库
Linux学习笔记--例说makefile 增加自定义共享库 0.前言 从学习C语言开始就慢慢开始接触makefile,查阅了很多的makefile的资料但总感觉没有真正掌握makefile,如果自己 ...
- Linux 学习笔记之超详细基础linux命令 Part 3
Linux学习笔记之超详细基础linux命令 by:授客 QQ:1033553122 ---------------------------------接Part 2----------------- ...
- Linux学习笔记(二)|常用命令
Linux学习笔记(二)常用命令 1.文件处理命令 1.1命令格式与目录处理 -ls 功能描述:显示目录文件 原意:list 所在路径:/bin/ls 语法: ls-a 显示所有文件,包括隐藏文件 l ...
- Linux学习笔记(一)|目录结构
Linux学习笔记(一) #一.Linux的目录结构 Linux采用层级式的树状目录结构,根目录为"/",在此目录下创建其他目录. /lib 系统开机所需要最基本的动态链接共享库 ...
- 20155303狄惟佳预备作业三Linux学习笔记
20155303狄惟佳预备作业三Linux学习笔记 初次接触Ubuntu系统以及Linux内核,了解了其产生的历史,从感性来讲,深深吸引我的是其中蕴含的珍贵的开源精神,以及Stallman等人对&qu ...
- Linux学习笔记-文件权限与路径
Linux学习笔记-文件与目录 目前从电子信息科学与技术转到了计算机专业,因此想趁着大四比较闲的时候补一些计算机的知识.我想说:你好,生活[斜眼笑]!愿生活温柔以待!哈哈,这是我写的第一篇博客,谨以此 ...
- LINUX学习笔记共五部分
LINUX学习笔记1--LINUX系统命令 1. 界面切换: a) 进入字符界面:按住ctrl+alt+F1: 1. 首先需要进入用户登入,输入用户名和 ...
- linux 串口信息记到日志,[linux学习笔记]之一:ubuntu ch340调试备忘
[linux学习笔记]之一:ubuntu ch340调试备忘 已有 2183 次阅读2016-11-8 21:52 |个人分类:linux 最近迷上了Linux,入了一块板.电脑使用win7+ubun ...
最新文章
- C# 8的Ranges和递归模式
- 每日阅读(产品) 汤道QQ与微信
- 我积累的数据库操作类(ASP.NET)
- 【thymeleaf】分页代码
- 容器学习 之 限制容器资源(十一)
- IllegalStateException: No WebApplicationContext found: no Co
- 两台windows服务器----SVN的迁移
- 不能用蛮力法解决的问题_专家教授叫嚣:中国7亿农民只有一身蛮力,对国家没有作用...
- installanywhere's LAX Properties
- 数学分析笔记4:一元函数微分学
- RobotFramework之Dialogs
- 安卓系统格式化SD卡
- 使用OTP动态口令(每30s变一次)进行登录认证
- python抢红包 无需电脑_Python助你秒抢红包,拼手速?不存在!
- 如何提升固定资产盘点效率
- iOS系统 查看设备序列号 获取UDID
- 地图经纬度坐标转换BD-09/GCJ-02/WGS84坐标转换
- seaborn做图技巧
- xml组合时间串解析
- 【计算机网络面试高频】-HTTP协议详解,HTTP协议常见问题
热门文章
- Vue2 computed中的setter
- 微信小程序配置Vant Weapp
- 大连理工大学linux集群,超算系统简易入门
- OpenCV图像像素遍历与访问
- springboot+vue+nodejs休闲娱乐电玩城网上售票系统java
- TSINGSEE青犀视频智能分析网关平台首页为何取消四分屏展示?
- 在Windows/Mac电脑上将CAF转换为AIFF的教程
- 怎么学好口才与各种人沟通交流?
- Python 三国演义文本可视化(词云,人物关系图,主要人物出场次数,章回字数)
- 【Python】 -- 使用jieba库实现对《三国演义》人物出场次数统计