Linux零碎知识点积累

    科技2024-05-09  81

    一、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
    Processed: 0.015, SQL: 8