学习Linux你要是不知道这些,那你可能真的都算不上入门!

Posted 程序猿是小贺

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了学习Linux你要是不知道这些,那你可能真的都算不上入门!相关的知识,希望对你有一定的参考价值。

日常暖暖镇楼

Linux菜鸟级入门宝典2

Linux权限及基础开发工具

1.Linux权限

1.1Linux权限的概念

Linux下有两种用户:超级用户(root)、普通用户。
超级用户:可以在linux系统下做任何事情,不受限制
普通用户:在linux下做有限的事情。
超级用户的命令提示符是“#”,普通用户的命令提示符是“$”。
切换用户
su [用户名]:切换到某个用户,当前位置还在之前的路径下
su - [用户名]:切换到某个用户,并且回到切换用户的家目录

exit 回到上一次的用户

1.2Linux权限管理

1.基本权限

  • 可读(r/4):Read对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限
  • 可写(w/2):Write对文件而言,具有修改文件内容的权限;对目录来说具有删除移动目录内文件的权限
  • 可执行(x/1):execute对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限
  • “—”表示不具有该项权限

2.不同用户的简写

用户简写
文件所有者u
组内用户g
其他用户o

3.文件权限值的表示方法
a) 字符表示方法

Linux表示解释Linux表示解释
r- -可读-w-可写
–x可执行rw-可读可写
-wx可写可执行r-x可读可执行
rwx可读可写可执行- - -无权限

b) 8进制数值表示方法

4.更改文件权限
第一种:用户+/-字符权限的方式

chmod [u/g/o]+/-[r/w/x][文件名或者文件夹名]

第二种:八进制数字更改方式

chmod [八进制数字] [文件名或者文件夹名]

5.权限对于文件或者文件夹的影响
1.对于文件

可读权限: 如果用户针对文件没有可读权限, 则无法查看文件内容

可写权限: 如果用户针对文件没有可写权限, 则无法往文件中写入内容

可执行权限: 如果用户针对文件没有可执行权限,则无法执行文件,执行结果 取决于文件内容

2.对于文件夹

可读权限: 影响用户查看文件夹下的内容

可写权限: 影响用户在文件夹创建文件或文件夹

可执行权限:影响用户写入文件夹

6.文件或者文件夹更改所属用户或者所属用户组
1.更改所属用户

chown [-R] 用户名 文件名
-R 递归修改

2…更改所属用户组

chgrp 新用户名 文件名 [-R]

2.yum包管理器

职责:给linux操作系统安装软件,从linux操作系统中卸载软件

2.1什么是软件包?

在Linux下安装软件, 一个通常的办法是下载到程序的源代码, 并进行编译, 得到可执行程序.但是这样太麻烦了, 于是有些人把一些常用的软件提前编译好, 做成软件包(可以理解成windows上的安装程序)放在一个服务器上, 通过包管理器可以很方便的获取到这个编译好的软件包, 直接进行安装.
软件包和软件包管理器, 就好比 “App” 和 “应用商店” 这样的关系.
yum(Yellow dog Updater, Modified)是Linux下非常常用的一种包管理器. 主要应用在Fedora, RedHat, Centos等发行版上.

注意事项
关于 yum 的所有操作必须保证主机(虚拟机)网络畅通!!!
可以通过 ping 指令验证

2.2软件包操作

1.罗列yum源提供的软件 yum list

通过 yum list 命令可以罗列出当前一共有哪些软件包. 由于包的数目非常之多, 这里我们需要使用 grep 命令只筛选出我们关注的包.
yum list | grep lrzsz

结果如下:

lrzsz.x86_64 0.12.20-36.el7 @base

2.下载安装

yum install [包名称]

3.如何卸载

yum remove [包名称]

//lrzsz:不能直接传递文件夹

rz:从win系统上传文件到linux操作系统
sz [linux中的文件]:将linux中的文件传递到win系统中

xftp:可以直接传递文件夹

3.vim编辑器

vi/vim的区别简单点来说,它们都是多模式编辑器,不同的是vim是vi的升级版本,它不仅兼容vi的所有指令,而且还有一些新的特性在里面。例如语法加亮,可视化操作不仅可以在终端运行,也可以运行于 mac os、windows。

3.1vim的基本概念

关于vim编辑器的模式其实有12种,不过对于初学者来说在此没有必要知道那么多,掌握以下三种即可,分别是命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode)。

使用vim编辑文件:vim[文件名]

例: vim test

3.2vim的基本操作

正常模式:在正常模式下是不能往文件中写内容的,需要进入插入模式,才可以正常写文件

插入模式:i 进入插入模式,就可以正常插入,如果发现输错了字,想用光标键往回移动,将该字删除,可以先按一下「ESC」键转到[正常模式]再删除文字。当然,也可以直接删除。
ESC:可以从任何模式回到正常模式

[正常模式]切换至[末行模式]:「shift + ;」, 其实就是输入「:」

退出vim及保存文件,在[正常模式]下,按一下「:」冒号键进入「Last line mode」底行模式,例如:
:w (保存文件)
:wq (输入「wq」,保存并退出vim)
:q不保存退出
:q! (不保存强制退出vim)

3.3vim命令集

1.在正常模式下的快捷操作
移删复替撤更跳
移动光标

上下左右键(菜鸟级) h:向左 j:向下 k:向上 l:向右
$ :移动到光标所在行的“行尾”
^:移动到光标所在行的“行首”
w:光标跳到下个字的开头
e:光标跳到下个字的字尾
b:光标回到上个字的开头
#l:光标移到该行的第#个位置
ctrl+b:屏幕往“后”移动一页
ctrl+f:屏幕往“前”移动一页
ctrl+u:屏幕往“后”移动半页
ctrl+d:屏幕往“前”移动半页
gg:快速回到第一行
G:快速回到最后一行
[num] G:快速跳到某一行

删除

1.x:向后删除光标所在位置的字符,相当于win系统下的[delete insert]键
[num] x:向后删除num个
2.X:向前删除字符,不包括光标所在字符
[num] X:向前删除num个字符,不包括光标所在位置
3.dd:剪切的功能,相当于win系统中的ctrl+x
[num] dd:多行剪切

复制、粘贴

yy:复制一行
[num] yy:复制多行
小写p:向光标当前行的下一行进行粘贴
大写P:向光标当前行的上一行进行粘贴

替换:

r:替换当前光标所在字符
R:进行到(replace模式)进行替换,esc结束

撤销:

u:如果您误执行一个命令,可以马上按下「u」,回到上一个操作。按多次“u”可以执行多次恢复。
ctrl + r: 撤销的恢复

更改:

cw:替换某个单词,并从正常模式切换到插入模式

跳转至某行

ctrl+g 列出光标所在行的行号。
[num]G:5G表示移动光标至文章的第5行行首。
gg=G:整理当前代码格式

2.常用指令
快速进入插入模式

o : 快速到下一行
O : 快速到上一行
A : 快速回到行尾
I : 快速回到行首

3.底行模式下
搜索

/:向下搜索,配合n使用

?:向上搜索,配合n使用

查找

设置行号:在底行模式下set nu
取消行号:在底行模式下set nonu
在底行模式下:
:%s/[待替换的]/[要替换的]/g" % 全文替换 g:当前行所有目标字符串全部替换

3.4简单vim配置

1.配置文件的位置

  • 在目录 /etc/ 下面,有个名为vimrc的文件,这是系统中公共的vim配置文件,对所有用户都有效。
  • 而在每个用户的主目录下,都可以自己建立私有的配置文件,命名为:“.vimrc”。例如,/root目录下,通常已经存在一个.vimrc文件,如果不存在,则创建之。
  • 切换用户成为自己执行 su ,进入自己的主工作目录,执行 cd ~
  • 打开自己目录下的.vimrc文件,执行 vim .vimrc

2.常用配置选项,用来测试

设置语法高亮: syntax on
显示行号: set nu
设置缩进的空格数为4: set shiftwidth=4

4.gcc/g++编译器

4.1gcc(c语言) / g++ (c++)

1.预处理(进行宏替换)

预处理功能主要包括宏定义,文件包含,条件编译,去注释等
gcc/g++ -E 文件 -o 文件.i

2.编译(生成汇编)

语法语义检测
gcc -S 文件.i -o 文件.s 将源代码转换为汇编代码

3.汇编(生成机器可识别代码)

将机器代码转化为机器代码(二进制代码)
gcc -c 文件 -o 文件.o

4.链接

目标文件+库文件 生成一个可执行程序
gcc 文件.o –o 文件

4.2函数库

4.1 静态库
gcc/g++命令行中,需要增加一个参数:-static
gcc 文件 -o 新文件 -static
4.2 动态库
默认的链接为动态链接
gcc 文件 -o 新文件
file命令:查看当前文件的详细信息
ldd命令:查看一个可执行程序依赖的库文件

5.gdb调试器

gcc 文件 -o 新文件 -g (debug版本)

5.1调试

调试的范式:gdb 文件名

list/l 行号:查看文件内容
显示binFile源代码,接着上次的位置往下列,每次列10行。
r或run:运行程序。
b (breakpoint) 行号:在某一行设置断点

i b(info breakpoints) :查看断点信息。

disable 断点序号 (breakpoints):禁用断点,使失效

enable 断点序号 (breakpoints):启用断点,使生效

n(next)逐过程执行,相当于win系统中的F10
s(step) 逐语句执行 win F11
p(print) 变量名:打印变量的值,也可以打印自定义类型
q(quit) 退出
bt(breaktrace)**重要:查看各级函数调用及参数
where 和bt一样,没有区别
coredump文件:内核转储文件,保存的是进程在崩溃的一瞬间内存的映像

6.make/Makefile项目自动化构建工具

6.1make & makefile

1.make 是解释器,用来解释makefile文件

makefile 书写编译规则的文件
make是一条命令,makefile是一个文件,两个搭配使用,完成项目自动化构建。

2.makefile文件书写的规则

目标对象 & 依赖对象 & 编译命令

3.make的解释makefile文件的规则

a.make会在当前目录下找名字叫“Makefile”或“makefile”的文件

b.永远只为生成第一个目标对象而服务


c.若目标对象相对于依赖对象而言, 较新, 则不生成,
d.make在生成第一个目标对象的时候, 如果依赖对象也需要后续生成,则先生成依赖对象之后, 使用依赖对象生成目标对象

4.makefile文件: 内置变量 & 自定义变量

$^: 代表所有依赖对象
$@:代表目标对象

6.2伪目标

.PHONY 目标对象
.PHONY :clean 一般用于工程清理
#注释 crtl+v j/k选中注释行 --> I(shift+i)插入注释符 -->esc
取消注释:crtl+v l

以上就是本篇文章的重点,今天就到此结束了哈,由于作者创作能力有限,可能总结的内容或多或少会有差错,欢迎大家及时帮我指正,本文针对的大众是刚开始学习Linux的初学者,所以有的知识我写的很浅薄很片面,如果大佬们有不同的观点欢迎大家赏光私我哈,本着相互进步的原则,希望大家能多多向我提意见,谢谢~~

以上是关于学习Linux你要是不知道这些,那你可能真的都算不上入门!的主要内容,如果未能解决你的问题,请参考以下文章

学习Python 要是不知道环境搭建,那你算是白学了!

爬虫入门的基本原理,如果你连这些都不知道那你可以放弃爬虫了

如果你35岁恐慌了,那你真的该反思自己了···

如果你35岁恐慌了,那你真的该反思自己了···

大数据开发大数据时代来临,如果你还不知道Kafka那你就真的out了!

学习过CSS,那你知道BFC是什么吗?