入门linux只要知道这些就够了上

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了入门linux只要知道这些就够了上相关的知识,希望对你有一定的参考价值。

参考技术A 知道怎么增删改查就算是入门了。因为这是最常用的。

  在使用linux时,经常需要进行文件查找。其中查找的命令主要有find和grep。两个命令是有区别的。

  区别:(1)find命令是根据文件的属性进行查找,如文件名,文件大小,所有者,所属组,是否为空,访问时间,修改时间等。

              (2)grep是根据文件的内容进行查找,会对文件的每一行按照给定的模式(patter)进行匹配查找。

  一.find命令

    基本格式:find  path expression

    1.按照文件名查找

    (1)find / -name httpd.conf  #在根目录下查找文件httpd.conf,表示在整个硬盘查找

    (2)find /etc -name httpd.conf  #在/etc目录下文件httpd.conf

    (3)find /etc -name '*srm*'  #使用通配符*(0或者任意多个)。表示在/etc目录下查找文件名中含有字符串‘srm’的文件

    (4)find . -name 'srm*'   #表示当前目录下查找文件名开头是字符串‘srm’的文件

    2.按照文件特征查找

    (1)find / -amin -10   # 查找在系统中最后10分钟访问的文件(access time)

    (2)find / -atime -2   # 查找在系统中最后48小时访问的文件

    (3)find / -empty   # 查找在系统中为空的文件或者文件夹

    (4)find / -group cat   # 查找在系统中属于 group为cat的文件

    (5)find / -mmin -5   # 查找在系统中最后5分钟里修改过的文件(modify time)

    (6)find / -mtime -1   #查找在系统中最后24小时里修改过的文件

    (7)find / -user fred   #查找在系统中属于fred这个用户的文件

    (8)find / -size +10000c  #查找出大于10000000字节的文件(c:字节,w:双字,k:KB,M:MB,G:GB)

    (9)find / -size -1000k   #查找出小于1000KB的文件

    3.使用混合查找方式查找文件

    参数有: !,-and(-a),-or(-o)。

    (1)find /tmp -size +10000c -and -mtime +2   #在/tmp目录下查找大于10000字节并在最后2分钟内修改的文件

        (2)find / -user fred -or -user george   #在/目录下查找用户是fred或者george的文件文件

        (3)find /tmp ! -user panda  #在/tmp目录中查找所有不属于panda用户的文件

  二、grep命令

     基本格式:find  expression

    1.主要参数

    [options]主要参数:

    -c:只输出匹配行的计数。

    -i:不区分大小写

    -h:查询多文件时不显示文件名。

    -l:查询多文件时只输出包含匹配字符的文件名。

    -n:显示匹配行及行号。

    -s:不显示不存在或无匹配文本的错误信息。

    -v:显示不包含匹配文本的所有行。

    pattern正则表达式主要参数:

    \: 忽略正则表达式中特殊字符的原有含义。

    ^:匹配正则表达式的开始行。

    $: 匹配正则表达式的结束行。

    \<:从匹配正则表达 式的行开始。

    \>:到匹配正则表达式的行结束。

    [ ]:单个字符,如[A]即A符合要求 。

    [ - ]:范围,如[A-Z],即A、B、C一直到Z都符合要求 。

    .:所有的单个字符。

    * :有字符,长度可以为0。

    2.实例 

  (1)grep 'test' d*  #显示所有以d开头的文件中包含 test的行

  (2)grep ‘test’ aa bb cc    #显示在aa,bb,cc文件中包含test的行

  (3)grep ‘[a-z]\5\’ aa   #显示所有包含每行字符串至少有5个连续小写字符的字符串的行

  (4)grep magic /usr/src  #显示/usr/src目录下的文件(不含子目录)包含magic的行

  (5)grep -r magic /usr/src  #显示/usr/src目录下的文件(包含子目录)包含magic的行

  (6)grep -w pattern files :只匹配整个单词,而不是字符串的一部分(如匹配’magic’,而不是’magical’),

查看文件内容的命令:

cat    由第一行开始显示内容,并将所有内容输出

tac    从最后一行倒序显示内容,并将所有内容输出

more    根据窗口大小,一页一页的现实文件内容

less    和more类似,但其优点可以往前翻页,而且进行可以搜索字符

head    只显示头几行

tail    只显示最后几行

nl      类似于cat -n,显示时输出行号

tailf  类似于tail -f

1.cat 与 tac

cat的功能是将文件从第一行开始连续的将内容输出在屏幕上。但是cat并不常用,原因是当文件大,行数比较多时,屏幕无法全部容下时,只能看到一部分内容。

cat语法:cat [-n]  文件名 (-n : 显示时,连行号一起输出)

tac的功能是将文件从最后一行开始倒过来将内容数据输出到屏幕上。我们可以发现,tac实际上是cat反过来写。这个命令也不常用。

tac语法:tac 文件名。

2.more和less(常用)

more的功能是将文件从第一行开始,根据输出窗口的大小,适当的输出文件内容。当一页无法全部输出时,可以用“回车键”向下翻行,用“空格键”向下翻页。退出查看页面,请按“q”键。另外,more还可以配合管道符“|”(pipe)使用,例如:ls -al | more

more的语法:more 文件名

Enter 向下n行,需要定义,默认为1行;

Ctrl f 向下滚动一屏;

空格键 向下滚动一屏;

Ctrl b 返回上一屏;

= 输出当前行的行号;

:f 输出文件名和当前行的行号;

v 调用vi编辑器;

! 命令 调用Shell,并执行命令;

q 退出more

less的功能和more相似,但是使用more无法向前翻页,只能向后翻。

less可以使用【pageup】和【pagedown】键进行前翻页和后翻页,这样看起来更方便。

less的语法:less 文件名

less还有一个功能,可以在文件中进行搜索你想找的内容,假设你想在passwd文件中查找有没有weblogic字符串,那么你可以这样来做:

[root@redhat etc]# less passwd

然后输入:

/weblogic

回车

此时如果有weblogic字符串,linux会把该字符已高亮方式显示。

退出查看页面,请按“q”键。

3.head和tail

head和tail通常使用在只需要读取文件的前几行或者后几行的情况下使用。head的功能是显示文件的前几行内容

head的语法:head [n number] 文件名 (number 显示行数)

tail的功能恰好和head相反,只显示最后几行内容

tail的语法:tail [-n number] 文件名

4.nl

nl的功能和cat -n一样,同样是从第一行输出全部内容,并且把行号显示出来

nl的语法:nl 文件名

1、vi

vi 1.txt 会直接创建并打开一个文件1.txt

2、touch

touch的作用是更改一个文件或目录的时间。touch 2.txt 如果2.txt不存在,则创建空文件2.txt

3、echo

echo “abcd” > 3.txt 可以直接创建文件3.txt并将abcd写入。

4、less 、more 、cat

三者都是将文件内容输出到标准输出,其中less和more可以分页显示,cat是显示全部。

三者可以根据已经存在的文件创建新的文件。假设已经存在文件1.txt。

cat 1.txt > 2.txt

less 1.txt > 3.txt

more 1.txt > 4.txt

此时创建的文件内容都和1.txt中文件内容相同。

rm -f 文件名

-f  表示强制

将会强行删除文件,且无提示

功能说明:删除文件或目录。

语  法:rm [-dfirv][--help][--version][文件或目录...]

补充说明:执行rm指令可删除文件或目录,如欲删除目录必须加上参数”-r”,否则预设仅会删除文件。

参  数:

 -d或–directory  直接把欲删除的目录的硬连接数据删成0,删除该目录。

 -f或–force  强制删除文件或目录。

 -i或–interactive  删除既有文件或目录之前先询问用户。

 -r或-R或–recursive  递归处理,将指定目录下的所有文件及子目录一并处理。

 -v或–verbose  显示指令执行过程。

将目录A重命名为B

mv A B

方法一:

命令是:vi,vim

vi 编辑器,相当于记事本,有编辑功能,但较弱

vim 复杂的编辑器,相当于windows的 editplus, notepad++ 等

------------------------

步骤:

1、执行 vi world.txt  进入编辑器(默认命令模式),

2、点击a或i进入编辑模式,敲入内容:hello linux world !

3、然后按键盘上的esc键退出编辑模式(进入到命令模式),

4、最后敲冒号:,

5、再敲wq保存并退出。

-------

wq解释为:write quite

不想保存,q

强制退出 q!

方法二

对于简单的,使用 echo 打印命令。

echo "字符串",功能:在屏幕上打印 字符串。

用 echo  >或 echo >>  导入到文件里。

echo 'hello linux' >> /data/hello.txt  这个在企业里很常用:单行内容追加到文件结尾。

一个大于号>,是覆盖重定向,会清除文件里的所有以前数据,增加新数据。

两个大于号>>,是追加重定向,文件结尾加入内容,不会删除已有文件的内容。

方法三:特殊用法使用cat

cat>>/data/hello.txt<

hello world world

EOF

----------

EOF要成对出现,且是增加的内容里没有的,EOF可以被任意成对内容替换。

cat 是查看文件内容的命令

Java面向对象知道这些就够了

面向对象

面向对象是一种思维方式,相对于面向过程而言的。
面向过程在流程中关注动作执行的每一个细节 — 自己动手做
面向对象重点找这个对象,只要找到了对象,那么这个对象所具有的功能就能够被使用 — 找别人做
类与对象的关系
根据一类对象进行抽取和总结,将这类对象的特征抽取成了属性,将这类对象的行为抽取成了方法,用类表示这一类对象 -> 类是对象的抽取和概括的过程

面向对象的特征


封装
将代码进行提取和总结,抽取成不同的形式 — 封装
体现形式:方法、类(属性的私有化 - 将属性限制为私有的,然后提供对外的设置和获取的方法,然后在方法中进行限制使数据更加符合常理)
优势:提高了代码的复用性,保证了数据的合法性
权限修饰符
指在Java中用于限定使用范围的关键字
本类中 子类中 同包类中 其他类中
public 可以 可以 可以 可以
protected 可以 可以 可以 不可以
默认 可以 同包子类可以 可以 不可以
private 可以 不可以 不可以 不可以
继承
如果一些类中含有相同的代码,那么可以将这些相同的代码提取到一个新的类中,然后通过extends关键字让原来的类和新的类产生关系 — 继承。 通过继承,原来的类就称之为了子类(派生类),新的类就成了父类(超类/基类)。
子类通过继承父类可以使用父类中的一部分方法和属性
注意:子类继承了父类的全部的数据域(方法+属性),但是继承之后只有一部分数据域对子类可见
在Java中,支持的是类和类之间的单继承 -> 一个子类只能继承一个父类,但是一个父类可以有多个子类
单继承一定优于多继承吗? - 不对
多继承比单继承能够更好的提高代码的复用性

1 class A {
2     public int m(){return 9;}
3 }
4 class B {
5     public boolean m(){return false;}
6 }
7 class C extends A, B{}
8 C c = new C();
9 c.m(); // 返回值类型能确定吗?

多继承导致在调用方法的时候可能产生歧义
优势:提高代码的复用性,避免方法的调用产生歧义
super关键字
在子类中用于表示父类对象的引用,可以在子类中调用父类中的方法的属性。
super语句 — 子类在继承父类之后,子类的构造方法中会含有一个super语句。如果没有手动指定super语句,那么默认使用super()调用父类无参的构造;如果父类只提供了含参构造,那么子类就必须手动提供对应形式的super语句 — super语句必须在子类构造方法的首行
方法的重写/覆盖
在父子类中存在了方法签名相同的非静态方法。遵循 “两等两小一大”原则:
1. 方法签名相同
2. 如果父类中的方法的返回值类型是基本类型/void,那么子类重写的方法的返回值类型与父类一致

1 class A {
2     public void m(){}
3 }
4 class B extends A {
5     public void m(){}
6 }

3.如果父类中的方法的返回值类型是引用类型,那么子类在重写方法的时候,返回值类型要么与父类一致,要么是父类方法返回值类型的子类

1 class A {}
2 class B extends A {}
3 class  C {
4     public A m(){return null;}
5 }
6 class D extends C {
7     public B m(){return null;}
8 }

4.子类重写的方法的权限修饰符的范围要大于等于父类中对应方法的权限修饰符的范围

1 class A {
2     public void m(){}
3 }
4 class B extends A {
5     public void m(){}
6 }

注意:如果父类中的方法用private修饰,那么这个方法对子类不可见,所以此时与子类中的方法构不成重写

多态

编译时多态:方法的重载
add(2, 4) -> add(int, int)
add(3, 1, 7) -> add(int, int, int)
运行时多态:向上造型和方法的重写 — 基于继承的
注意:如果使用向上造型来创建对象,那么这个对象所能调用的方法看的是父类中的声明,方法如何执行看的是子类中的实现过程
重写的理解
1. 子类重写的方法的权限修饰符的范围要大于等于父类中对应方法的权限修饰符的范围
2. 如果父类中的方法的返回值类型是引用类型,那么子类在重写方法的时候,返回值类型要么与父类一致,要么是父类方法返回值类型的子类
注意:Java中所有的基本类型之间没有继承关系,之所以能够自动提升,是因为所表示的范围是否能够包含

以上是关于入门linux只要知道这些就够了上的主要内容,如果未能解决你的问题,请参考以下文章

Python 从入门到精通:一个月就够了

Python 从入门到精通:一个月就够了?真的能行嘛?

Linux入门的基础知识点汇总,有这篇就够了

零基础入门人工智能有门槛吗?学会这些就够了

人工智能入门有门槛吗?数学会这些就够了

Linux入门的基础知识点汇总,有这篇就够了(持续更新)