Linux基础知识

Posted shunyu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux基础知识相关的知识,希望对你有一定的参考价值。

硬链接与软连接:

  什么是链接?链接简单说实际上是一种文件共享的方式。

  Linux 中常用它来解决一些库版本的问题,通常也会将一些目录层次较深的文件链接到一个更易访问的目录中。

  在这些用途上,我们通常会使用到软链接(也称符号链接)。

区别: 

  硬链接: 与普通文件没什么不同,inode 都指向同一个文件在硬盘中的区块。删除其中任何一个都不会影响另外一个的访问。

  软链接: 保存了其代表的文件的绝对路径,是另外一种文件,在硬盘上有独立的区块,访问时替换自身路径【相当于 A内存里面存的是B 的地址(可以根据这个找到B的目录项)

      软链接文件有类似于Windows的快捷方式。它实际上是一个特殊的文件。在符号连接中,文件实际上是一个文本文件,其中包含的有另一文件的位置信息。

      比如:A是B的软链接(A和B都是文件名),A的目录项中的inode节点号与B的目录项中的inode节点号不相同,A和B指向的是两个不同的inode,继而指向两                        块不同的数据块。但是A的数据块中存放的只是B的路径名(可以根据这个找到B的目录项)。A和B之间是“主从”关系,如果B被删除了,A仍然存在(因为两个                      是不同的文件),但指向的是一个无效的链接。

 


kill命令:

  kill命令用来删除执行中的程序或工作。参数:(进程或作业识别号:指定要删除的进程或作业。)

某个进程杀不掉的原因:

  1.该进程处于"kernel mode"(核心态)且在等待不可获得的资源。处于核心态的进程忽略所有信号处理,因此对于这些一直处于核心态的进程只能通过重启系统实现。进程在AIX 中会处于两种状态,即用户态和核心态。

  只有处于用户态的进程才可以用“kill”命令将其终止。  

  2.该进程处于 僵死状态。(父进程没有释放进程ID)此时进程已经释放所有资源,但还未得到其父进程的确认。"zombie"进程要等到下次重启时才会消失,但它的存在不会影响系统性能。

linux常用命令:

  cd /home 进入 \'/ home\' 目录\' 
  cd .. 返回上一级目录 
  cd ../.. 返回上两级目录 
  cd 进入个人的主目录 
  cd ~user1 进入个人的主目录 
  cd - 返回上次所在的目录 
  pwd 显示工作路径 
  ls 查看目录中的文件 
  ls -F 查看目录中的文件 
  ls -l 显示文件和目录的详细资料 
  ls -a 显示隐藏文件 
  ls *[0-9]* 显示包含数字的文件名和目录名 

 

  1.显示日期:date

  2.显示日历:cal

  3.关机指令:shutdown

  4.改变文件权限;chmod

  5.改变目录:cd

  6.显示当前目录:pwd

  7.简历新目录:mkdir

  8.删除【空】目录:rmdir

  9.复制档案目录:cp

  10.移除档案或目录:rm

  11.从第一行显示档案内容:cat

  12.压缩文件:gzip

1.  ls -a 列出文件下所有的文件,包括以“.“开头的隐藏文件(linux下文件隐藏文件是以.开头的,如果存在..代表存在着父目录)。
2.  ls -l 列出文件的详细信息,如创建者,创建时间,文件的读写权限列表等等。
3.  ls -F 在每一个文件的末尾加上一个字符说明该文件的类型。"@"表示符号链接、"|"表示FIFOS、"/"表示目录、"="表示套接字。
4.  ls -s 在每个文件的后面打印出文件的大小。  size(大小)
5.  ls -t 按时间进行文件的排序  Time(时间)
6.  ls -A 列出除了"."和".."以外的文件。
7.  ls -R 将目录下所有的子目录的文件都列出来,相当于我们编程中的“递归”实现
8.  ls -L 列出文件的链接名。Link(链接)
9.  ls -S 以文件的大小进行排序

 

管道的使用  |  :

  “|”是管道命令操作符,简称管道符。利用Linux所提供的管道符“|”将两个命令隔开管道符左边命令的输出就会作为管道符右边命令的输入。连续使用管道意味着第一个命令的输出会作为 第二个命令的输入,第二个命令的输出又会作为第三个命令的输入,依此类推。

  例如:

  ls-l | more

  该命令列出当前目录中的文档,并把输出送给more命令作为输入,more命令分页显示文件列表。(more  分页显示文件)

 

linux中最为常用的三大文本(awk,sed,grep)处理工具

grep如何检索文件信息:

  1.搜索某个文件里面是否包含字符串

    命令格式:grep "被查找的字符串" filename1

  2.在多个文件中检索某个字符串

    命令格式:grep "被查找的字符串t" filename1 filename2 filename3 ...

             grep "被查找的字符串" *.log

  3、显示所检索内容在文件中的行数,可以使用参数-n

    命令格式:grep -n "被查找的字符串" *.log

  4、检索时需要忽略大小写问题,可以使用参数“-i”

    命令格式: grep -i "被查找的字符串" *.log

  5、从文件内容查找不匹配指定字符串的行

    命令格式:grep –v "被查找的字符串" 文件名

  6、递归搜索某个目录以及子目录下的所有文件

    命令格式:grep –r "被查找的字符串" 文件目录

  8、获取哪些文件包含搜索的内容,并列出文件名

    命令格式:grep -H –r "被查找的字符串" 文件目录 | cut -d: -f1 [| uniq]

Linux grep和find的区别:

  Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。

  Linux系统中find命令功能:在目录结构中搜索文件,并执行指定的操作。此命令提供了相当多的查找条件,功能很强大。

               语法:find 起始目录 寻找条件 操作 

                                                  说明:find命令从指定的起始目录开始,递归地搜索其各个子目录,查找满足寻找条件的文件并对之采取相关的操作。

  find是搜索文件名,查找匹配条件的文件,输出匹配文件

   grep是搜索文件内容,查找匹配条件的文件行,输出匹配行或含有匹配内容的文件

  find命令

  用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。

总结:

  grep是查找匹配条件的find是搜索匹配条件的文件

shell:

shell可以通过其条件语句和循环语句等,把一系列linux命令结合在一起,形成一个相当于面向过程的程序,shell script,来实现一些较为复杂的功能。

awk的使用:

  awk是一个强大的文本分析工具。

  简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。

  调用awk:

    1.命令行方式

    2.shell脚本方式

    3.将所有的awk命令插入一个单独文件,然后调用

 

 

 

 

 

 

 

 

 

参考:http://blog.csdn.net/xx1710/article/details/52311176

   https://www.cnblogs.com/crazylqy/p/5818745.html

      https://zhidao.baidu.com/question/548984916.html

      http://www.jb51.net/article/127783.htm

   https://zhidao.baidu.com/question/429154844.html

 

以上是关于Linux基础知识的主要内容,如果未能解决你的问题,请参考以下文章

[linux][c/c++]代码片段01

20155307刘浩《网络对抗》逆向及Bof基础

[linux][c/c++]代码片段02

20155311高梓云《网络对抗》逆向及Bof基础

20145301赵嘉鑫《网络对抗》逆向及Bof基础

android小知识点代码片段