Linux零碎知识点积累

本文详细介绍了Linux文件及用户权限,包括ls命令的使用、文件权限的表示方式以及Linux一切皆文件的概念。此外,还讲解了常用的基本命令,如安装vim、编辑文件、清屏、切换用户等。文章还涵盖了vim编辑器的操作,如命令行模式、插入模式和可视化模式的切换以及相关操作。最后,提到了GCC编译器的使用,包括编译和链接过程。
摘要由CSDN通过智能技术生成

一、Linux文件及用户权限

Linux是一个多用户系统,Linux命令严格区分大小写

st@st-virtual-machine:~$
/*
st:当前登录用户的用户名
st-virtual-machine:当前设备名称
~:当前用户家目录
*/

在Linux中,通常以.开始的文件,都是隐藏文件

ls -l :以列表的形式将当前路径下的文件罗列出来
ls -la :以列表的形式将当前路径下所有的文件(包括隐藏文件)罗列出来

drwxr-xr–
d 当前文件类型
rwx 当前用户的权限
r-x 当前用户所在组的权限
r-- 其他用户的权限

Linux一切皆文件(除网口)

二、Linux下基本命令

/mnt/hgfs/share1/
/mnt 是ubuntu下的共享目录
用于跟windows之间进行文件共享
share1/ 是windows下的共享目录

ctrl + l 清屏

安装vim编辑器:sudo apt-get install vim

打开一个文件:gedit .vimrc

1.vim 操作基本命令:

1、命令行模式

shift + : + 命令功能
w保存
wq保存并退出
q不保存退出,但是会提示是否保存
q!强制退出不保存
ctrl + z保存退出
命令功能
yy复制1行
nyy复制n行
nY复制n行
p粘贴,在当前光标的下一行开始
P粘贴,在当前光标的上一行开始
dd删除一行
ndd删除n行
u返回到上一次操作
D从当前光标处开始向后删除,直到行尾

2、插入模式

命令行模式切换至插入模式:功能
i在当前光标处插入
I在当前光标所在行的行首处插入
a在当前光标的后一个位置处插入
A在当前光标所在行的行尾处插入
o在当前光标所在行的下一行新建空行插入
O在当前光标所在行的上一行新建空行插入
插入模式切换至命令行模式:ESC
ctrl + s  锁定当前文件
ctrl + q  解除锁定

3、可视化模式

命令行切换至可视化模式:
	ctrl + v    可视块
	shift + v   可视行

使用 // 注释多行:
(1)先需要切换至命令行模式
(2)ctrl + v 切换至可视化模式
(3)使用键盘的上下键,选中将要注释的代码
(4)shift + i
(5)//
(6)ESC

取消 // 的注释行:
(1)先需要切换至命令行模式
(2)ctrl + v 切换至可视化模式
(3)使用键盘的上下键,选中将要取消的 //
(4)键盘按下 d 
2.Linux下清屏基本命令:

在windows的DOS操作界面里面,清屏的命令是cls,那么在linux 里面的清屏命令是什么呢?下面笔者分享几种在linux下用过的清屏方法。

1、clear命令、这个命令将会刷新屏幕,本质上只是让终端显示页向后翻了一页,如果向上滚动屏幕还可以看到之前的操作信息。

2、Ctrl+l(小写的L)、这是一个清屏的快捷键,这个是笔者在工作中用得最多的一种清屏方式,清屏效果同clear命令一样。

3、reset命令、这个命令将完全刷新终端屏幕,之前的终端输入操作信息将都会被清空,这样虽然比较清爽,但整个命令过程速度有点慢,使用较少。

值得一提的是reset命令在你的终端控制错乱时非常有用。如输入字符不出现在光标的位置的情况。还有当你敲击回车键时,新提示   符并没有出现在新行上

而是出现在老提示符的前面。此时reset命令就能用来修正这些问题。

4、printf "\033c"命令、

这个命令它才是真正的清空了终端屏幕,它的功能跟DOS里CMD.EXE提供的CLS效果很相似。但这个命令究竟是做什么的?它的工作原理是什么?

\033  ==  \x1B == 27 == ESC

于是,这个命令变成了<ESC>c,它是VT-XXX中表示“Full Reset (RIS)”的转义码。现今我们使用的所有的终端都是VT兼容的,它的另一种实现方式也可以这样:

键盘上Ctrl+v--->Esc-->输入c再回加。但如果你发现自己使用的是一个非常奇怪的终端(如笔者曾经在putty上作过测试),那这个命令你可能用不了。

printf是bash里内置的命令,内置命令的优先级比其它可执行文件要高。

通过上面的4个清屏方式比较,笔者喜欢,在PATH路径下,如/usr/bin/目录下。新建一个名为cls的文件,加上执行权限,写入如入内容:

vim cls
#!/bin/bash

printf “\033c”

这样的话我们每次需要清屏的时候,只需要输入cls命令就可以了。

3.Linux下其他基本命令:
安装软件:
1、安装vim (ubuntu 最好不好安装yum, 否则可能会出现很多奇怪的问题)
	(1) apt-get install vim -y
2、在线安装软件包
	apt-get install package
3、重新安装软件包
	apt-get install package --reinstall

卸载软件
1、apt-get remove package          //删除xxx,对于依赖则是不管的
2、apt-get remove --purge package  //移除应用及配置
3、apt-get autoremove          //删除不再需要的软件包

5、当前用户切换至root用户(4、5 两个命令, root 可以改为其他用户名,同样可以切换至其他用户)

(1) sudo su
(2) sudo -i
(3) su
(4) su root
(5) sudo su root

6、退出root用户

(1) exit
(2) logout

7、给root用户设定密码

sudo passwd root

8、删除文件

rm file     #删除file文件
rm -f file  #强制删除file文件
rm -r dir   #删除目录dir

9、创建命令

mkdir -p YQ/Linux   //创建YQ目录,其下包含子目录Linux命令
                    //-p 创建的目录包含子目录
mkdir -p YQ         //当前位置创建一个目录YQ
touch filename      // 创建一个文件

10、vim命令

插入命令:
	(1) a 在光标所在字符后插入
	(2) A 在光标所在行尾插入
	(3) i 在光标所在字符前插入
	(4) I 在光标所在行行首插入
	(5) o 在光标下插入新行
	(6) O 在光标上插入新行
定位命令:
	(1) :set nu     设置行号
	(2) :set nonu   取消行号
	(3) gg          到第一行
	(4) G           到最后一行
	(5) nG          到第n行
	(6) :n          到第n行
	(7) $           移至行尾(shift + $)
	(8) 0           移至行首
    
删除命令:
	(1) x          删除光标所在处字符
	(2) nx         删除光标所在处后n个字符
	(3) dd         删除光标所在行,ndd删除n行
	(4) D          删除光标所在处到行尾内容
	(5) dG         删除光标所在行到文件末尾内容
	(6) :n1,n2d    从n1, 删除到n2
	 
复制和剪切命令;
	yy     复制当前行
	nyy    复制当前行以下n行
	dd     剪切当前行
	ndd    剪切当前行以下n行
	p、P   粘贴在当前光标所在行下或行上
	
替换和取消命令:
	r    取代光标所在处字符
	R    从光标所在处开始替换字符,按ESC结束
	u    撤销
	v          可视    (从当前光标处,向下或向上 来选择文本)
	shift + v  可视行  (可以按照 行 来选择文本)
	ctrl + v   可视块  (可以按照 块 来选择文本)

注释多行
    1、先切换至命令行模式
    2、光标处于当前要注释代码段的第一行
    3、ctrl + v, 将要注释的行选中
    4、shift + i
    5、键盘输入  //
    6、按ESC
	
搜索和搜索替换命令:
	/string            搜索指定字符串
	:set ic            搜索时忽略大小写
	:set noic          搜索时对大小写敏感
	n、N               搜索指定字符串的下一个、上一个出现位置
	:%s/old/new/g      全文搜索old并替换为new字符串
	:n1,n2s/old/new/g  在n1~n2范围内的old替换为new字符串
	
保存和退出命令:
	:w                保存修改
	:w new_filename   另存为指定文件
	:wq               保存修改并退出
	ZZ                快捷键,保存修改并退出(必须大写)
	:q!               不保存修改退出
	:wq!              保存修改并退出(文件所有者及root可使用)
	
其他命令:
	ctrl + s   vim插入模式下,其代表锁定屏幕
	ctrl + q   vim插入模式下,其代表解锁屏幕
	:set hlsearch    设置被搜索字符串高亮显示
	:set nohlsearch  取消被搜索字符串的高亮显示状态
终端打开快捷键:
Ctrl + Alt + T	
清屏命令:
1、clear	将会刷新屏幕,向上滚动屏幕可以看到之前操作信息
2、Ctrl + l(小写L)	同clera
3、reset	将完全刷新终端屏幕,之前操作信息会被清空    
使用vi打开编辑多个文件;在多个文件间复制粘贴内容
(1) vi file1 file2 file3
	:n 切换到文件2 (n=next)
	:e# 或 :N   切换回到刚才编辑的文件
	打开一个,vi 文件名
	然后在vi的命令输入状态下输入
	:sp 另外一个文件的路径及文件名,如此就可以在一个窗口打开多个文件了。
(2) 或者用vi -o file1 file2 file3
	用分割屏幕窗口方式同时打开多个文件。
	可以使用 ctrl + 两次按 w 或者ctrl + w然后按上下键在上下窗口间切换。
4.Linux下压缩解压缩命令:
TAR是在Linux中使用得非常广泛的文档打包格式。它的好处就是它只消耗非常少的CPU以及时间去打包文件,他仅仅只是一个打包工具,并不负责压缩。下面是如何打包一个目录:
   TAR打包: tar -cvf xxx.tar xxx
   TAR解包: tar -xvf xxx.tar.gz
TAR.GZ这种格式是我使用得最多的压缩格式。它在压缩时不会占用太多CPU的,而且可以得到一个非常理想的压缩率。使用下面这种格式去压缩一个目录:
	压缩:   tar -zcvf xxx.tar.gz xxx
	解压缩: tar -zxvf xxx.tar.gz
	解压缩(含路径):tar -zxvf xxx.tar.gz -C /tmp/extract_here/
TAR.BZ2这种压缩格式是我们提到的所有方式中压缩率最好的。当然,这也就意味着,它比前面的方式要占用更多的CPU与时间。这个就是你如何使用tar.bz2进行压缩。
	压缩:   tar -jcvf xxx.tar.bz2 xxx
	解压缩: tar -jxvf xxx.tar.bz2
	解压缩(含路径): tar -jxvf xxx.tar.bz2 -C /tmp/extract_here/
解压缩:
	解压缩:tar -xf xxx.tar.gz
	解压缩:tar -xf xxx.tar.bz2

zip压缩:  zip xxx.zip xxx
zip解压缩:unzip xxx.zip

Linux下的tar压缩解压缩命令详解

tar

-c: 建立压缩档案
-x:解压
-t:查看内容
-r:向压缩归档文件末尾追加文件
-u:更新原压缩包中的文件

这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。下面的参数是根据需要在压缩或解压档案时可选的。

-z:有gzip属性的
-j:有bz2属性的
-Z:有compress属性的
-v:显示所有过程
-O:将文件解开到标准输出

下面的参数-f是必须的

-f: 使用档案名字,切记,这个参数是最后一个参数,后面只能接档案名。
# tar -cf all.tar *.jpg

这条命令是将所有.jpg的文件打成一个名为all.tar的包。-c是表示产生新的包,-f指定包的文件名。

# tar -rf all.tar *.gif

这条命令是将所有.gif的文件增加到all.tar的包里面去。-r是表示增加文件的意思。

# tar -uf all.tar logo.gif

这条命令是更新原来tar包all.tar中logo.gif文件,-u是表示更新文件的意思。

# tar -tf all.tar

这条命令是列出all.tar包中所有文件,-t是列出文件的意思

# tar -xf all.tar

这条命令是解出all.tar包中所有文件,-t是解开的意思

压缩

tar -cvf jpg.tar *.jpg //将目录里所有jpg文件打包成tar.jpg

tar -czf jpg.tar.gz *.jpg //将目录里所有jpg文件打包成jpg.tar后,并且将其用gzip压缩,生成一个gzip压缩过的包,命名为jpg.tar.gz

tar -cjf jpg.tar.bz2 *.jpg //将目录里所有jpg文件打包成jpg.tar后,并且将其用bzip2压缩,生成一个bzip2压缩过的包,命名为jpg.tar.bz2

tar -cZf jpg.tar.Z *.jpg //将目录里所有jpg文件打包成jpg.tar后,并且将其用compress压缩,生成一个umcompress压缩过的包,命名为jpg.tar.Z

rar a jpg.rar *.jpg //rar格式的压缩,需要先下载rar for linux

zip jpg.zip *.jpg //zip格式的压缩,需要先下载zip for linux

解压

tar -xvf file.tar //解压 tar包

tar -xzvf file.tar.gz //解压tar.gz

tar -xjvf file.tar.bz2 //解压 tar.bz2

tar -xZvf file.tar.Z //解压tar.Z

unrar e file.rar //解压rar

unzip file.zip //解压zip

总结

1、*.tar 用 tar -xvf 解压

2、*.gz 用 gzip -d或者gunzip 解压

3、.tar.gz和.tgz 用 tar -xzf 解压

4、*.bz2 用 bzip2 -d或者用bunzip2 解压

5、*.tar.bz2用tar -xjf 解压

6、*.Z 用 uncompress 解压

7、*.tar.Z 用tar -xZf 解压

8、*.rar 用 unrar e解压

9、*.zip 用 unzip 解压

三、GCC编译管理器

gcc 是一个C标准的编译器
g++ 是一个C++标准的编译器

编译一个源文件最简单的方式:

gcc hello.c   (默认生成a.out可执行文件)
./a.out   	//执行a.out

编译一个源文件,并生成一个指定名称的可执行文件

gcc hello.c -o hello

源文件参与编译,头文件不参与编译

gcc的编译过程:

1、预编译(生成.i文件) --> 不进行格式或语法的正确性判断
	gcc -E hello.c -o hello.i
2、编译(生成汇编文件 .s) --> 进行语法判断
	gcc -S hello.c -o hello.s
3、汇编(编译为机器语言)
	gcc -c hello.c -o hello.o
4、链接
	gcc hello.o -o hello
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值