跟阿铭学Linux(利尼克斯)一二三四章

第二章

1、dhclient 使得Linux自动获得一个IP,如果不自己手动配置可能每次开机都是不一样的

如果开机时不用这个命令Linux是没办法连接网络的,这也是无法ping的原因

接下来就可以使用 ip addr 查看IP (注意Linux对大小写敏感,就是区分大小写)

关于vi命令的使用,进入一个文件后首先是不能编辑的,只能按上下左右键进行移动光标,按 i 后进入编辑模式,编辑完成再按esc键,接着按 : ,然后输入wq回车保存退出即可完成编辑,w   保存文件但不退出vi,w file 将修改另外保存到file中,不退出vi,w!   强制保存,不推出vi,wq  保存文件并退出vi,wq! 强制保存文件,并退出vi,q  不保存文件,退出vi,q! 不保存文件,强制退出vi,e! 放弃所有修改,从上次保存文件开始再编辑

手动配置一个固定的Linux网络IP:

vi /etc/sysconfig/network-scripts/ifcfg-ens33(ens33是网卡名字,根据不同机子名字可能不同)

在这个文件需要修改ONBOOT=no改为ONBOOT=yes,BOOTPROTO=dhcp改为BOOTPROTO=static,并且增加如下几行字符:

IPADDR=你想固定的IP,在前面使用ip addr查到的IP即可

NETMASK=255.255.255.0

GATEWAY=网关,就是刚才自己查到的,可以自己设置在VMware里可以看到

DNS1=119.29.29.29

wq保存即可接着打出 service network restart(重启网络服务,使得上面的配置生效)

这时可以用ip addr看是不是自己设置的IP,这样以后每次开启虚拟机就不用每次都要打出dhclient

2、关于装载图形界面GNOME Desktop的问题

刚开始装了好几次没成功是因为yum groupinstall -y "GNOME Desktop" 命令没有执行完,以为电脑出现黑灰色是死机了,强制关机导致没安装完,所以init 5和startx命令执行但是也不报错也不能进入图形界面只是闪一下屏幕。其实按一下空格键就可以显示依然在安装的进程,安装过程很漫长,差不多二三十分钟,耐心点。  装完之后按照书上的创建一个用户就好了

init 3 关闭图形界面进入命令行界面  init 5、startx关闭命令行界面进入图形界面。另外关于在命令行模式切换终端,在tty1按Alt+f2切换终端tty2,Alt+f3切换终端tty3,Alt+f7切换图形模式,tty1-tty6为命令行的终端,tty7为图形的终端,切换终端这方面用处有点不明白

3、快捷键的使用

Ctrl+C 结束当前命令     tab 实现自动补全功能,补全目录名或者文件名或命令等   Ctrl+D 退出当前终端,同exit   Ctrl+Z 暂定当前进程,可用fg命令恢复该进程  Ctrl+L 清屏  Ctrl+A 让光标移动到屏幕的第一行  Ctrl+E 让光标移动到最后

man 用来查看某条命令什么意思怎么用的命令 如,man ls

tips:当屏幕显示不完整内容时,可以按空格键下翻,q退出

4、ls 命令

ls 列出当前目录下的文件和目录,不包括隐藏文件

ls -a 列出当前目录下所有文件和目录,包括隐藏文件

ls -l 列出当前目录下除了隐藏文件的所有的文件和目录的详细信息,包括权限,所属主,所属组以及文件创建日期和时间

灵活使用 ls -l -a  以及ls 后跟一些指定的目录就列出那个目录下包含的文件和目录

-d 针对目录的,通常和-l 并用,写成 -ld ,可以查看指定目录的属性,比如目录创建时间,如果不加 d,则只是会显示目录里面的文件和子目录属性

5、shutdown -h 10 十分钟后关机 shutdown -h now 立刻关机 shutdown -h 22:10  22:10关机  shutdown -r now 立即重启 shutdown -r 10 十分钟后重启  reboot 立刻重启 halt 关闭系统,同shutdown -h now和poweroff

6、书上关于忘记root密码怎么办

第三章

关于用putty远程登录Linux时,登录的端口为22

1、putty、securecrt、xshell等远程登录软等

2、关于为什么用密钥认证远程登录Linux而不用密码,因为更安全。

在使用密钥登录时可以在设置禁止使用密码登录,https://blog.csdn.net/zhaohaifan/article/details/8051694

同时在使用密钥时注意密钥存放文件目录的权限,以防别人偷偷放入自己的密钥

第四章

1、绝对路径是由根目录写起的,相对路径不是(/ 就是根目录)

2、cd(change directory简写)改变用户所在目录,进入某些目录

如果后面什么都不跟就是进入当前登录用户的根目录下,如果后面跟目录名就会进入这个目录(pwd命令(print working directory)显示当前所在目录)。“ . ”表示当前目录,“ .. ”表示当前目录的上一级目录。

eg. cd .. (表示进入当期前目录的上一级目录,在cd后要有空格键,否则报错没有这个命令)

3、mkdir(make directory)创建目录

-m 指定要创建目录的权限

-p 可以创建一大串级联目录,及时要创建的目录的上一级目录不存在也可以成功创建,并且如果要创建的目录已经存在时也不会报错(存在时并不是覆盖,因为在动手操作时创建时间可以看到并没有改变)。在Linux中默认要创建的上一级目录不存在就会报错。

4、rmdir  和 rm

rmdir(remove directory)只会删除空目录,多个目录时用空格分割目录名。

rm(remove)既可以删除目录,也可以删除文件。

-p 可以级联删除一大串目录,但是如果某一个目录里还有目录或者文件就不可以使用了

rm -r 删除目录用的选项,类似rmdir,但是可以删除非空目录,同时在删除时也会询问确认是否删除。

rm -f 表示强制删除,不询问是否删除而是直接删除,如果后面跟的是一个不存在的目录也不会报错。通常在使用时可以用rm -rf 来配合使用,但是觉得新手还是-r 保险一点,因为毕竟删除错某些文件很棘手,特别是如果rm后面不小心跟了 /  就把系统文件全部删除了。

5、which   用于查找某个命令的绝对命令   eg. which rmdir

PATH环境变量  在Linux中也有这个,这也是为什么命令可以在命令行中执行的原因,就和Windows是差不多的道理

6、echo 用于打印

echo $PATH 可以输出$PATH的值

eg. echo 'abc' > 111  就是把abc写进111文件中,其中起到写入作用的就是“>”,在Linux中叫做重定向,即把前面产生的输出写入到后面的文件中

7、cp(copy)复制

cp [选项] [来源文件(被复制的文件名)] [目的文件(将要复制成的文件名)]

-r 如果要复制一个目录就必须要加这个选项,否则不能复制

8、touch 

如果有这个文件,则会改变文件的访问时间,如果没有这个文件就会创建这个文件

9、cat

用于读一个文件,并把读出的内容打印到当前屏幕上,可以不跟任何选项,直接跟文件名。

-n 查看文件时把行号也显示到屏幕上

-A 显示所有的内容,包括特殊字符

10、mv(move)移动文件或者目录的命令

当要移动的目录存在时就移入,当要移动的目录不存在时就将要移动的目录重命名成目标目录名

当要移动的文件存在时就会询问是否覆盖,当不存在时就会把源文件重名为给定的目标文件

11、tac(正好与cat相反的写法)也是把文件内容显示到屏幕上,只不过是先显示最后一行,然后显示倒数第二行,最后才显示第一行。

12、more、less  直接后面跟文件名,查看文件内容

当文件内容太多时无法在一个屏幕上显示完全。

more,当看完一屏时可以空格键继续看下一屏,Ctrl+D向上翻屏,Ctrl+F向下翻屏,提前退出q

less比more功能多一些,空格翻页,j向下移动一行,k向上移动一行

less、more都可以按一下 / 并输入一个字符串然后回车就可以查找该字符串。如果是查找多个该字符串可以按n显示下一个(小写n可以向下逐行移动,大写N可以逐行向上移动),另外也可以用?代替/搜索,但是/是当前行向下搜索,?是向上搜索

13、head显示文件的前十行,tail显示文件的后十行,两者有个选项 -n, - 后可以自定义显示要显示的行数。-f 可以动态显示,随着文件内容更新而更新

14、ls -l  显示时在前的是所有者,后是所有组

drwxr-xr-x 2 root root 6 2月 18 10:52 dirc

d表示改文件目录(-表示改文件为普通文件,l表示改文件为链接文件link file,b表示改文件为块设备,比如/dev/sda就是这样的文件,磁盘分区文件就是这种类型,c表示该文件为串行端口设备文件,又称字符设备文件,比如键盘鼠标,tty终端等,s表示该文件为套接字文件socket,用于进程之间的通信)

rwx表示所有者对该文件的权限,r-x表示所有组的权限,r-x表示其他非本群组的权限(r表示可读,w表示可写,x表示可执行,另外对于一个目录来说,打开这个目录就代表着执行这个目录,所以任何一个目录必须要有x权限才能打开并查看该目录下的内容)

.  关于有些会有这个,是因为该文件或者目录使用了SELinux context的属性,就会有一个“.”,如果设置了acl属性就会是一个+

2 表示该文件占用的节点(inode),如果是目录,那么这个数值与该目录下的子目录数量有关

root 该文件的所有者

root该文件的所有组

6该文件的大小

2月 18 10:52 表示该文件最后一次被修改的时间(mtime),依次为月份 日期以及时间

dirc表示文件名

15、更改文件的权限( cat /etc/passwd|grep aliyos查找某个用户的信息,有 返回内容就是存在这个用户,cat /etc/passwd 查看存在哪些用户,看第三个参数:500以上的,就是后面建的用户了.其它则为系统的用户.或者用cat /etc/passwd |cut -f 1 -d :     。cat /etc/group|grep 组名,用于查找某个用户组。用户和组常用命令

groups 查看当前登录用户的组内成员

groups test 查看test用户所在的组,以及组内成员

whoami 查看当前登录用户名

  (1) chgrp (change group)可以更改文件的所属组,其格式为:chgrp [组名] [文件名]

        (groupadd  其含义为增加一个用户组,格式为 groupadd groupname

chgrp也可以更改目录的所属组,格式为 chgrp groupname filename , 但是值得注意的是命令只改变这个目录的所属组,不影响目录里包含的文件所属组,如果想要产生级联影响需要在chgrp后添加-R参数

  (2) chown (change owner)可以更改文件的所有者,其格式为 chown [-R] 账户名 文件名  或者chown [-R] 账户名:组名 文件名。这里的-R也是可选参数项,只适用于目录,作用就是级联,即不仅可以更改当前目录,连目录里的目录或者文件也全部更改

chmod (change mode) 用于改变用户对文件或目录的读写执行权限,格式为chmod [-R] xyz 文件名,这里xyz表示数字,为了方便改变文件的权限,Linux使用421分表代表rwx,-R表示级联

  (3) umask (默认情况下,目录的权限值为755,普通文件的权限值为644)用于改变文件的默认权限,格式为 umask XXX(这里的XXX代表三个数字),如果要查看umask的值,只要在命令行输入umask就可以了。预设的umask值为0022,这里的意思代表是需要权限需要减去的值。在Linux中有两条默认规则,一是若用户建立普通文件,则预设没有可执行权限,只有r、w权限,最大值为666(-rw-rw-rw-),二是若用户建立目录,则预设所有权限均开放,即777(drwxrwxrwx)。umask就是默认需要在上面两条规则减去的数值,666-022=644(rw-r--r--),777-022=755(rwxr-xr-x),对位相减。umask的值可以自定义,比如在命令行输入umask 002回车就以为着把umask设为002了。一般umask在系统里是四位的,最前面还有一个0,但是这个0加不加没有影响,因为他表示umask的数值是八进制的。

(4)chattr(change attribute)格式为chattr [+-=] [Asaci] [文件或者目录名],其中+-=分别表示增加减少和设定。常用的属性参数:A  增加该属性后,表示文件或目录的atime将不可修改, s 会将数据同步写入磁盘中, a 表示只能追加不能删除(追加符号是>>,写入符号是>,注意两者区别,写入是在全新的文件里写入内容,如果文件里已有内容再用写入符号会覆盖原内容,追加就不会覆盖,只是增加新内容),非root用户不能设置该属性, c 表示自动压缩该文件,读取时会自动解压, i 表示文件不能删除、重命名、设定连接、写入以及新增数据

16、使用find搜索文件

find [路径] [参数]

常用参数 -atime +n/-n :表示访问或执行时间大于或小于n的文件(access time 是在读取文件或者执行文件时更改的)

-ctime +n/-n :表示写入、更改inode属性(如更改所有者、权限或者链接)的时间大于或小于n天的文件(change time是在写入文件、更改所有者、权限或链接设置时随inode内容的更改而更改的)

-mtime +n/-n :表示写入时间大于或小于n天的文件,该参数用的最多(modified time是在写入文件时随文件内容的更改而更改的

关于这三种时间的说明 https://blog.csdn.net/wodeqingtian1234/article/details/53975744

访问时间(access time 简写为atime)

修改时间(modify time 简写为mtime)

状态修改时间(change time 简写为ctime)

Windows下只有创建时间、修改时间、访问时间,Linux没有创建时间。定律:更改ctime,mtime不一定会改变,但是更改mtime时,ctime一定会跟着变,touch和vi,vim命令,3个时间都会改变

-mmin -10 表示mtime10分钟内的文件

find其他常用选项:-name filename 表示直接查找该文件名的文件,这个选项比较常用

eg: find . -name "test*"    . 表示当前目录  *表示通配符,查找当前目录下文件名前几个是test的文件

-type filetype:表示通过文件类型查找文件,filetype包含f、b、c、d、l、s等类型。示例,find . -type d

17、Linux的文件类型

a、普通文件,符号 -,可以分为纯文本文件(ASCII)和二进制文件(binary)。纯文本文件可以通过cat、more、less等工具直接查看内容,而二进制文件不能。例如,我们使用的命令/usr/bin/ls就是一个二进制文件。

b、目录(directory),与Windows下的文件夹类似,符号 d 

c、链接文件(link file),符号 l ,类似于Windows下的快捷方式,这在Linux中很常见的这类型文件件。

d、设备,一种是块设备(block),就是一些存储数据,以提供系统存取的接口设备,简称硬盘。例如,第一块硬盘是/dev/sdal,用命令ls -l 查看第一个属性为b的就是块设备。还有另外一种是字符设备(character),是一些串行端口的接口设备,例如键盘鼠标等,用命令ls -l 查看的第一个属性为c的文件就是字符设备。

cd -  表示进入上一次所在的目录

推荐阅读更多精彩内容