26/07/2018

课堂笔记

1.操作系统宏观介绍

windows

Mac OS-类Unix,Itunes

  • Unix system
  • Unix BSD- Mac OS
  • Unix like - Linux

服务器系统-Linux

  • linux内核开发的手机操作系统android,connectbot可以远程连接android系统,运行命令
  • linux的发行版 https://commons.wikimedia.org/wiki/File:Linux_Distribution_Timeline.svg

Debian----Ubuntu (2004)

Slackware --- Suse (1994)

                         Redhat ---Fedora (2002)

                                      --- RHEL ---CentOS (2004, 2014被Redhat收购)

内核网站kernel.org,如何查看内核版本, # uname -r,查看内核版本,可以下载最新的内核安装到CentOS;# uname -a, 可以看出x86_64,64位的操作系统; # cat /ect/redhat-release

32位的系统最多识别3个G的内存

# cat /etc/motd

CentOS官网- centos.org;https://wiki.centos.org/download

2. 虚拟机的介绍

vmware是付费的,我们用的是vmware workstation;有些企业使用virtual box,多台服务器组成集成,进行迁移共享等等

3.安装系统

4.网络配置

# yum update,用来升级到最新CentOS版本

用NAT模式- 可能网络环境不支持桥接;可能网络环境会改变

#dhclient, 自动获得ip 地址, 如果不能获取,可能是vmware workstation网络设置有问题,重启windows, 在cmd中执行 service.fsc,查找vmware开头的设置,全部变成enabled

在虚拟机上选择编辑,选择虚拟网路编辑器,可以查看网关网段等信息,网关(可以当作路由器)可以改但不能用1 or 255

编辑网络配置文件,设置静态IP,再重启网络就OK啦

在云上购买云主机,IP地址就已经被设置好了,跟之前的公网IP有差异

network manager- # systemctl stop networkmanager --- # systemctl disable networkmanager

预习笔记

  •  系统目录结构

ls /,可以查看root下的目录

可以看到 bin/boot/dev/ect/home/lib/lib64/mdia/mnt/opt/proc/root/run/sbin/srv/sys/tmp/usr/var

1. # ls

/root/ -为root用户家目录,用来存储配置文件以及自己的应用

linux 也只是一个少用的操作系统,就好比是我们的Windows的系统,而linux我们经常看到的一些“公共、视频、文档、音乐、下载”等程序就好比 我们开机后所看到的桌面,看着是独立出来的一部分,实际上也就是C盘下面的一个文件夹,然后这个文件夹被用来做成了挂载目录而已,而实际上最重要的还是根目录/ 下面的那些文件属性,就是我们所看到C D E F 盘等等

根目录和家目录均只是一种linux文件挂载点,linux采用树状发展目录结构根目录就是第一级,家目录与根目录看起来只是一个一级目录和二级目录的关系,实际上差别很大。

家目录是系统傻瓜安装程序人为挂载的一个目录,便于多用户登录使用,你精通linux以后可挂任意的目录为家目录,比如/test,然后指定用户成为这个目录的owner,完成控制这个目录的功能。

简要的说,根目录是系统的一级文件结构,家目录只是非root用户控制目录,相当于windows我的文档,非root用户只能完会控制家目录的文件,不能控制根目录下其它的文件。

 # tree 用于以树形的形式来目录下面的子目录,可用命令# yum install -y tree来安装

   # tree --hep 可以用来查看#tree 命令的常用用法;也可以有# man (man page)来查看命令的使用方式, 例如# man tree

   使用了# man tree之后我们可以看到 # tree -L 可以用来指定tree命令展示文件的层数/深度

3. /bin/ or sbin or user/bin or user/sbin

软连接, 用来存储常用的命令like, vi/ ls/ tree etc.

bin 和 sbin的区别

sbin- 其用来存储只有root用户可用使用的命令,普通用户不可使用

bin- 存放了root用户和普通用户都可以使用的命令

4. #  /boot/

为系统启动的相关文件

GRUB的定义

5. #  /dev/

设备文件-光驱,硬盘,鼠标键盘等

6. #  /etc/

系统配置文件,是Linux下的配置文件的老家, 很多管理和使用的修改都在这里。/etc/sysconfig/network-scripts/ifcfg-ens33

7.#  /home/

用户的家目录文件

8. #  / lib/ or lib64

库文件- ldd

# ldd /bin/xx 用来看xx命令依靠什么库文件

9. # ls /media

存放媒介,like USB

10. # ls /mnt

用于临时挂载文件,临时挂载的光驱以及硬盘等

11. / proc

系统启动的进程

12. /opt

存放一些特殊的安装软件,like Oracel

13.  /run

存放进程产生的临时文件,一关机就会消失的文件

14/ser/

服务产生的文件

15. /sys/

系统内核相关的文件

16. /tmp/

系统的临时目录,任何用户都有权限进行修改

17. /usr/

/usr/local

存放用户的文件,应用程序目录。大部分的软件都安装在这里。就像是Windows里面的Program Files。

18. /var/local/ or message/ 

日志文件,经常会变动,硬盘读写率高的文件放在此中

1. # ls -l = # ll

列出文件的详细信息

总用量 4
-rw-------. 1 root root 1418 7月 14 07:20 anaconda-ks.cfg
 

  • 第一列为文件的权限
  • 第二列为有相同inode的文件数量

          # ls -i file name, 查看文件的inode- 从根本上讲, inode 中包含有关文件的所有信息(除了文件的实际名称以及实际数据内容之外)

          例如,用# ls -i anaconda-ks.cfg,可以看到inode号为33574978 anaconda-ks.cfg

          ● inode 编号

          ● 用来识别文件类型,以及用于 stat C 函数的模式信息

          ● 文件的链接数目

          ● 属主的ID (UID)

          ● 属主的组 ID (GID),涵盖多个用户

          ● 文件的大小 

          ● 文件所使用的磁盘块的实际数目

          ● 最近一次修改的时间

          ● 最近一次访问的时间

          ● 最近一次更改的时间

  • 第三列表示所有者
  • 第四列表示所属组
  • 第五列表示文件大小

         # ls -lh naconda-ks.cfg(文件名), 可以显示文件大小

  • 第六列文件创建时间
  • 最后一列为文件名

2.# ls -a, 显示隐藏文件,红色方框标识出的带点的文件就为隐藏文件

# ls -la, 显示隐藏文件,并显示其详细信息(并包括创建时间等)- ls -a + ls -l = ls -la, 而# ls -a则只显示隐藏文件,并没有向信息

3. # ls -lta, 可以按时间顺序排列目录 - # ls -t

r-xr-x---. root root 147 7月 14 13:03 .
dr-xr-xr-x. 17 root root 224 7月 14 15:25 ..
-rw-------. 1 root root 1418 7月 14 07:20 anaconda-ks.cfg
-rw-------. 1 root root 2602 7月 15 10:38 .bash_history
-rw-r--r--. 1 root root 18 12月 29 2013 .bash_logout
-rw-r--r--. 1 root root 176 12月 29 2013 .bash_profile
-rw-r--r--. root root 176 12月 29 2013 .bashrc
-rw-r--r--. 1 root root 100 12月 29 2013 .cshrc
drwx------. root root 80 7月 15 09:27 .ssh
-rw-r--r--. root root 129 12月 29 2013 .tcshrc

一个点表示当前目录,两个点表示上级目录

4.# ls -ld /directory_name, 不会显示子文件、子目录,只列出目录本身; # ls -d 只列目录本身;#ls -l, 会列出目录下的子目录和子文件的信息

5. 文件类型

“d”开头 目录

“-”开头普通文件,文本文档以及二进制文件- 计算机文件基本上分为二种:二进制文件和 ASCII(也称纯文本文件),图形文件及文字处理程序等计算机程序都属于二进制文件(类似windows系统中.exe的文件)。这些文件含有特殊的格式及计算机代码。ASCII 则是可以用任何文字处理程序阅读的简单文本文件。

可以用# cat 来查看文本文档文件, 二进制文件不可查看

‘c’开头字符串设备,例如鼠标键盘等,黄色文件,在/dev/下

“b”开头块设备,例如光驱光盘以及磁盘等

“l”开头软链接文件类似于windows的快捷文件

“s”开头?用来通信, 在/var/下面

1. # ls -l = # ll

列出文件的详细信息

总用量 4
-rw-------. 1 root root 1418 7月 14 07:20 anaconda-ks.cfg
 

  • 第一列为文件的权限
  • 第二列为有相同inode的文件数量

          # ls -i file name, 查看文件的inode- 从根本上讲, inode 中包含有关文件的所有信息(除了文件的实际名称以及实际数据内容之外)

          例如,用# ls -i anaconda-ks.cfg,可以看到inode号为33574978 anaconda-ks.cfg

          ● inode 编号

          ● 用来识别文件类型,以及用于 stat C 函数的模式信息

          ● 文件的链接数目

          ● 属主的ID (UID)

          ● 属主的组 ID (GID),涵盖多个用户

          ● 文件的大小 

          ● 文件所使用的磁盘块的实际数目

          ● 最近一次修改的时间

          ● 最近一次访问的时间

          ● 最近一次更改的时间

  • 第三列表示所有者
  • 第四列表示所属组
  • 第五列表示文件大小

         # ls -lh naconda-ks.cfg(文件名), 可以显示文件大小

  • 第六列文件创建时间
  • 最后一列为文件名

2.# ls -a, 显示隐藏文件,红色方框标识出的带点的文件就为隐藏文件

# ls -la, 显示隐藏文件,并显示其详细信息(并包括创建时间等)- ls -a + ls -l = ls -la, 而# ls -a则只显示隐藏文件,并没有向信息

3. # ls -lta, 可以按时间顺序排列目录 - # ls -t

r-xr-x---. root root 147 7月 14 13:03 .
dr-xr-xr-x. 17 root root 224 7月 14 15:25 ..
-rw-------. 1 root root 1418 7月 14 07:20 anaconda-ks.cfg
-rw-------. 1 root root 2602 7月 15 10:38 .bash_history
-rw-r--r--. 1 root root 18 12月 29 2013 .bash_logout
-rw-r--r--. 1 root root 176 12月 29 2013 .bash_profile
-rw-r--r--. root root 176 12月 29 2013 .bashrc
-rw-r--r--. 1 root root 100 12月 29 2013 .cshrc
drwx------. root root 80 7月 15 09:27 .ssh
-rw-r--r--. root root 129 12月 29 2013 .tcshrc

一个点表示当前目录,两个点表示上级目录

4.# ls -ld /directory_name, 不会显示子文件、子目录,只列出目录本身; # ls -d 只列目录本身;#ls -l, 会列出目录下的子目录和子文件的信息

5. 文件类型

“d”开头 目录

“-”开头普通文件,文本文档以及二进制文件- 计算机文件基本上分为二种:二进制文件和 ASCII(也称纯文本文件),图形文件及文字处理程序等计算机程序都属于二进制文件(类似windows系统中.exe的文件)。这些文件含有特殊的格式及计算机代码。ASCII 则是可以用任何文字处理程序阅读的简单文本文件。

可以用# cat 来查看文本文档文件, 二进制文件不可查看

‘c’开头字符串设备,例如鼠标键盘等,黄色文件,在/dev/下

“b”开头块设备,例如光驱光盘以及磁盘等

“l”开头软链接文件类似于windows的快捷文件

“s”开头?用来通信, 在/var/下面

1. # rm 命令 (remove)

用来删除文件件以及非空目录,

1)删除文件,# rm file path, 例如 “# rm /tmp/aminglinux/2/3/1.txt”, 按回车之后显示一个是否删除文件的提示,按“y”,选择yes, 即可删除文件

如果不想有此类提示,则可以加“-f (force)”命令,并且“*”表示通配符,当查找文件夹时,可以使用它来代替一个或多个真正字符;当不知道真正字符或者懒得输入完整名字时,常常使用通配符代替一个或多个真正的字符。

注:# ! command表示使用历史里面最近一次以command开头的命令, 例如# ! tree

      # history, 可以查看命令历史

2)注意“# rm”只可删除文件不能删除目录,如若要删除目录及文件则使用“# rm -r (recursive)”

例子,如果我们在tmp的emmalinux中建立了1-2-3三个目录 (2为1的子目录,3为2的子目录),且2和3目录中各有一个txt文件,若想删除子目录2下面所有子目录以及文件,则可以使用“# rm -rfv /tmp/emmalinux/1/2”, 则可完成删除。删除顺序为先删除目录下的文件,再删除目录

注意用“-f”命令时,即使删除不存在的文件或目录也不会有提示,因此需格外注意

2. 环境变量 PATH

# echo $PATH 用来查看环境变量下的目录

PATH可以使我们快速的使用一个命令,可不需要敲入整个绝对路径,例如“# ls”命令在/usr/bin/ls下,而/usr/bin就在我们的环境变量下,因此当我们使用‘# ls’命令时,不需要敲入“/usr/bin/ls”, 而可以直接写“# ls”即可

1)系统默认下得PATH有五个目录-  /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin,然而我们可以通过增加目录的方式对环境变量进行修改,例如我们copy了“# ls”命令到/tmp/ls2中- “# cp /usr/bin/ls /tmp/ls2”, 然而我们想快捷使用‘# ls2’命令时,我们可以用‘# PATH=$PATH:/tmp/’, 此时我们在用“# echo $PATH”就可以发现/tmp/目录被加到了PATH 下面,在用# ls2命令时,就可以了不需要输入“/tmp/ls2”.

2)如若我们想永久加入这个环境变量,则可以用“# vi /etc/profile”, 可以在每次开机都加载这个文件,按回车之后在最后加入命令“# PATH=$PATH /tmp/”即可,如果不想使用# ls2, 则我们可以用变量=想要的目录即可, eg, “# PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin”, 不加/tmp/目录即可。

注:/etc/profile是用来存放每次开机都加载的文件或命令

3. ‘# cp’

1)命令可以用来copy文件,#cp filename target filename

2) 如若想要拷贝目录,则可‘# cp -r’,约定目录之后要加斜杠

注:# command !$, !$表示上一个命令的最后一个参数

3)直接用“# cp”是会有一个“-i”安全参数,例如执行命令之后询问是否覆盖已存在文件,如果不想被询问,则需输入绝对路径“/usr/bin/cp”

4. “# mv”(move)

可以用来改目录或者文件名字,也可以用来移动文件或目录到目标文件或目录中去。

当目标目录不存在时,直接改名字

5. 查看文本文档的命令

1)“# cat +文件名”查看文件内容的

# tac,可以倒叙查看文件内容

  • -A
  • -n,会显示文件内容的行号

2) “# more”也是查看文件内容,但是是按一屏一屏显示,按回车可以再看下一屏内容,返回上一屏再按ctrl b(back),想继续往下看是ctrl f(front)

注:

  • # cat 文件名1 >> 文件名2,会把文件1的全部内容追加到文件2中去, head 文件1 >> 文件2-就是文件的头十行加到文件2,同样tail也适用。

         “>>”为追加命令, tail -n 3 /etc/passwd >> 666.txt

        2) # wc -l, 用来查看文件内容的行数

        3)anaconda-ks.cfg是自动装系统的文件

3) “# less”的用法跟more相近,但less可以允许用方向键操作, 但看到结尾行时,需按q(quit)来退出,同时less有搜索关键字的功能,键入“/关键字”(顺序由前向后搜索)即可highlight出文件内容中的关键字,按“n”可以搜索下一个相同的关键字,往前看按shift n;键入“?关键字”搜索顺序为由后向前。输入shift g-G可定位到最后一行,输入g可以定位到第一行

4) # head, 用来查看一个文件的头十行;# tail,用来查看文件的后十行, # tail -f 可以查看动态文件,多用于查看log,用ctl c退出

注:head和tail都可以用“-n ”后面加行数可指定查看的行数

eg. # head -n 2 anaconda-ks.cfg

     # tail -n 2 anaconda-ks.cfg

1. 文件或目录权限chmod

1)例如用# ls -l查看文件/目录具体信息

-rw-------. 1 root root 1418 7月 14 07:20 anaconda-ks.cfg

  • 第一位代表文件类型 -普通文件类型
  • 最后一位绿色的点,表明文件此时受制于selinux。 vi /etc/selinux/config用来改写selinux的设置
  • 粉色highlight的后9为代表了权限,分文三段;r-read, w-write, x-执行

              rw-: 所有者的权限

              ---:表示所属组的权限,例子中的所属组没有可读可写可执行的权力

              ---:表示非同组用户的权限

2)权限也可用数字表示- r=4; w=2; x=1

-rwx=7 rw-=6 --x=1 例如rw-r--r--用数字表示则为644,再如rw-r-xr-x则为655

3)# chmod (change mode), 用来改变权限,命令结构为chmod 有三位数字表示的权限 文件的路径

例如# chmod 700 /tmp/emmalinux1改权限

4)# chmod 只可以改变一个文件或一个目录的权限,如若想批量改变目录下子目录或子文件的权限则可用“# chmod -R”

5) # chmod 754 的命令也可写成 chmod u(user)=rwx,g(group)=rx,o(other)=r

6) # chmod a(all)+-r/w/x, 可意味着所有的权限为加减权限属性

7)# chmod u/g/o+-r/w/x, 用法跟2)的用法异曲同工

2. # chown (change owner)

1)改变所有者

用# cat /etc/passwd, 可以看到系统的用户,之前有创建emma1和emma2用户,# chown username file name, 可以改变文件的所有者,如下图所示

2)  # chgrp (change group),用法和chown大同小异

3)# chown也可以改所属组,# chown user name:group name /file/, 同时user name和group name可空,只改填写的部分

 4)# chown -R user name:group name /file/, 可用于批量更改目录以及目录下得子文件子目录的所属者和所属组

3. # umask 用来确定默认目录和文件权限

输入# umask, 看到“0003”这个数值,则可知道默认文件目录的默认权限分别为664、774,具体算法如下

1)文件: 666-003 - rw-rw-rw - -------wx= rw-rw-r--=664

2)目录:777-003 - rwxrwxrwx - -------wx=rwxrwxr--=774

则再次创建文件或目录是在umask数值为003的条件下,权限值则为664/774

注: 若- 减去r/w/x值都为-(0)

“x”权限,目录必须有执行权限才可以打开,所以目录的算法使用777来算

猜你喜欢

转载自blog.csdn.net/EM_F_Z/article/details/81255188