码迷,mamicode.com
首页 > 系统相关 > 详细

Linux初探

时间:2017-09-09 13:46:36      阅读:220      评论:0      收藏:0      [点我收藏+]

标签:ogr   启动   有关   ati   mysq   服务器端   管理员   lnmp   tmp   

 Linux是什么? Linux和Unix的区别是什么

  linux的英文解释为 linux is not unix,他最初是由芬兰人linux因为个人爱好而写出来的,它是一套免费开源、自由使用的的类似unix的操作系统。 

  实际上,两者的主要区别就是unix不是开源的,但是他是鼻祖,而linux是开源的,他绝大多数是unix而来,只是发扬的更好一些,比如佛教本身是印度的,但是中国的佛教更加广为流传,不可或缺。

  linux在服务器端具有很高的地位,通常服务器使用的就是LAMP(Linux + apache + mysql + php)的组合或者是LNMP(linux + nginx + mysql + php)的组合。 

  

Linux和windows的区别是什么

  一般,API基于windows,php基于linux。 

  目前国内来说,Linux更多的使用在服务器上,而桌面操作系统使用的时windows,区别如下:

技术分享

  

 

Linux系统目录结构

  登录系统之后,在当前命令窗口下输入命令:

1s /

  目录结构如下所示:

技术分享

  • /bin bin是Binary的缩写,这个目录存放着最经常使用的命令; 
  • /boot boot其实启动的意思,比如重启就是reboot,这里存放了启动linux时使用的一些核心文件,包括一些链接文件和镜像文件。
  • /dev dev是device(设备)的缩写,该目录下存放的时linux的外部设备,在linux中访问外部设备的方式和访问文件的方式是相同的。
  • /etc 这个目录是用来存放所有的系统管理所需要的配置文件和子目录。
  • /home 用户的主目录,在linux中,每个用户都有一个自己的目录,一般是使用用户的账号来命名的。
  • /lib 存放一些动态链接共享库,其作用类似于windows中的ddl文件。 几乎所有的应用程序都需要使用到这些共享库。
  • /lost+found 这个目录一般是空的,在系统非法关机之后,这里存放了一些文件。
  • /meida linux会自动识别一些设备,例如u盘、光驱等,识别后,linux会把识别的设备挂在到这个目录下。
  • /mnt 系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂在到/mnt/上,然后进入该目录就可以查看光驱里的内容了。
  • /opt 这时给主机额外安装软件所摆放的目录。 
  • /proc 这是一个虚拟的目录,它是系统内存的映射。
  • /root 是系统管理员的目录。
  • /sbin 其中s是super user的意思,这里存放的是系统管理员使用的系统管理程序。
  • /src 该目录存放一些服务器启动之后需要提取的数据。
  • /sys 这时linux2.6内核一个很大的变化。 它是内核设备树的一个直观反映。
  • 当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中被创建。 
  • /tmp 这个目录是用来存放一些临时文件的。
  • /user 用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录。
  • /user/bin 是系统用户使用的应用程序。
  • /user/sbin 是超级用户使用的比较高级的管理程序和系统守护程序。
  • /usr/src 内核源代码默认的放置目录。
  • /var 这个目录中存放着不断扩充着的东西,我们习惯将那些经常被修改的目录存放在这个目录下,包括各种日志文件。

 

 

linux远程登录

  linux一般作为服务器使用,而服务器一般放在机房,你不可能在机房中操作你的linux服务器

  这时我们就需要通过远程登录到linux服务器来管理维护系统。 

  linux系统是通过ssh服务来实现的远程登录功能,ssh服务端口号为22。

  

 

Linux文件基本属性

  Linux系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限。为了保护系统的安全性,Linux系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定

   在linux中,我们可以通过ll或者ls -l来显示一个文件的属性以及文件所属的用户和组,如下:

[root@www /]# ls -l
total 64
dr-xr-xr-x   2 root root 4096 Dec 14  2012 bin
dr-xr-xr-x   4 root root 4096 Apr 19  2012 boot
……

  实例中,bin文件的第一个属性用"d"表示。"d"在Linux中代表该文件是一个目录文件。

  

在Linux中第一个字符代表这个文件是目录、文件或链接文件等等。

  • 当为[ d ]则是目录 (directory)
  • 当为[ - ]则是文件;
  • 若是[ l ]则表示为链接文档(link file);
  • 若是[ b ]则表示为装置文件里面的可供储存的接口设备(可随机存取装置);
  • 若是[ c ]则表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)。

接下来的字符中,以三个为一组,且均为『rwx』 的三个参数的组合。其中,[ r ]代表可读(read)[ w ]代表可写(write)、[ x ]代表可执行(execute)。 要注意的是,这三个权限的位置不会改变,如果没有权限,就会出现减号[ - ]而已

  每个文件的属性由左边第一部分的10个字符来确定(如下图)。

技术分享

   从做到右使用0-9这些数字来表示。   

   第0为确定文件类型,第1-3位确定属主(该文件的拥有者)拥有该文件的权限。 

   第4-6确定属组(所有者的同组用户)拥有该文件的权限。 

   第7-9确定的是其他用户拥有该文件的权限。

  其中rwx分别为读、写、执行,而-表示相应位置没有权限。

  

 

linux中文件的属主和属组:

  对于文件来说, 他都有一个特定的所有者,也就是对该文件具有所有权的用户。

  同时,在linux系统中,用户是按照组来分类的,一个用于属于一个或者多个组。

  所以,文件所有者以外的用户可以分为同组用户或者其他用户。 

  因此,linux系统按照文件所有者、文件所有者同组用户和其他用户来规定了不同的文件访问权限。

[root@www /]# ls -l
total 64
drwxr-xr-x 2 root  root  4096 Feb 15 14:46 cron
drwxr-xr-x 3 mysql mysql 4096 Apr 21  2014 mysql
……

  对于以上实例,可以看出: sysql文件是一个目录文件,属组和属主都是mysql,属主有可读、可写、可执行的权限;与属主同组的其他用户有可读和可执行的权限; 其他用户也有可读和可执行的权限。

  对于root用户来说,一般情况下,文件的权限对其不起作用。

  

  

更改文属性: 

(1)chgrp: 更改文件属组

chgrp [-R] 属组名文件名

参数选项

  • -R:递归更改文件属组,就是在更改某个目录文件的属组时,如果加上-R的参数,那么该目录下的所有文件的属组都会更改

 

(2)chown:更改文件属主,也可以同时更改文件属组。 

chown [–R] 属主名 文件名
chown [-R] 属主名:属组名 文件名

 

(3)chmod:更改文件9个属性

  Linux文件属性有两种设置方法,一种是数字,一种是符号。

  Linux文件的基本权限就有九个,分别是owner/group/others三种身份各有自己的read/write/execute权限。

  先复习一下刚刚上面提到的数据:文件的权限字符为:『-rwxrwxrwx』, 这九个权限是三个三个一组的!其中,我们可以使用数字来代表各个权限,各权限的分数对照表如下:

  • r:4
  • w:2
  • x:1

  

linux文件与目录管理

  我们知道linux的目录结构是树状结构,最顶级的目录为根目录/。

  其他目录通过挂载可以将他们添加到树中,通过解除挂在可以移除他们。

  • 绝对路径: 写法,由根目录/写起,例如: /user/share/doc 这个目录。 
  • 相对路径: 写法,不是由/写起,例如由/user/share/doc要到/user/share/man底下时,可以写成: cd ./man 这就是相对路径的写法了。 

 

处理目录的常用命令

  • ls: 列出目录。
  • cd: 切换目录。
  • pwd: 显示当前目录。
  • mkdir: 创建一个新的目录。
  • rmdir: 删除一个空的目录。
  • cp: 复制文件或者目录。
  • rm: 移除文件或者目录。

 

ls(列出目录):

    在linux系统中,ls命令可能是最常被运行的。如下;

[root@www ~]# ls [-aAdfFhilnrRSt] 目录名称
[root@www ~]# ls [--color={never,auto,always}] 目录名称
[root@www ~]# ls [--full-time] 目录名称

选项与参数:

  • -a :全部的文件,连同隐藏档( 开头为 . 的文件) 一起列出来(常用)
  • -d :仅列出目录本身,而不是列出目录内的文件数据(常用)
  • -l :长数据串列出,包含文件的属性与权限等等数据;(常用)

将目录下的所有文件列出来(含属性与隐藏档)

[root@www ~]# ls -al ~

 

cd (切换目录)

cd是Change Directory的缩写,这是用来变换工作目录的命令。

 

pwd (显示目前所在的目录)

pwd是Print Working Directory的缩写,也就是显示目前所在目录的命令。

 

mkdir (创建新目录)

如果想要创建新的目录的话,那么就使用mkdir (make directory)吧。

mkdir [-mp] 目录名称

选项与参数:

  • -m :配置文件的权限喔!直接配置,不需要看默认权限 (umask) 的脸色~
  • -p :帮助你直接将所需要的目录(包含上一级目录)递归创建起来!

 

rmdir (删除空的目录)

语法:

 rmdir [-p] 目录名称

选项与参数:

  • -p :连同上一级『空的』目录也一起删除

    

cp (复制文件或目录)

cp 即拷贝文件和目录。

[root@www ~]# cp [-adfilprsu] 来源档(source) 目标档(destination)
[root@www ~]# cp [options] source1 source2 source3 .... directory

选项与参数:

  • -a:相当於 -pdr 的意思,至於 pdr 请参考下列说明;(常用)

  • -d:若来源档为连结档的属性(link file),则复制连结档属性而非文件本身;

  • -f:为强制(force)的意思,若目标文件已经存在且无法开启,则移除后再尝试一次;

  • -i:若目标档(destination)已经存在时,在覆盖时会先询问动作的进行(常用)

  • -l:进行硬式连结(hard link)的连结档创建,而非复制文件本身;

  • -p:连同文件的属性一起复制过去,而非使用默认属性(备份常用);

  • -r:递归持续复制,用於目录的复制行为;(常用)

  • -s:复制成为符号连结档 (symbolic link),亦即『捷径』文件;

  • -u:若 destination 比 source 旧才升级 destination !

 

 

rm (移除文件或目录)

语法:

 rm [-fir] 文件或目录

选项与参数:

  • -f :就是 force 的意思,忽略不存在的文件,不会出现警告信息;
  • -i :互动模式,在删除前会询问使用者是否动作
  • -r :递归删除啊!最常用在目录的删除了!这是非常危险的选项!!!

 

mv (移动文件与目录,或修改名称)

[root@www ~]# mv [-fiu] source destination
[root@www ~]# mv [options] source1 source2 source3 .... directory

 

  • -f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖;
  • -i :若目标文件 (destination) 已经存在时,就会询问是否覆盖!
  • -u :若目标文件已经存在,且 source 比较新,才会升级 (update)

 

 

 

linux文件内容查看

Linux系统中使用以下命令来查看文件的内容:

  • cat  由第一行开始显示文件内容
  • tac  从最后一行开始显示,可以看出 tac 是 cat 的倒著写!
  • nl   显示的时候,顺道输出行号!
  • more 一页一页的显示文件内容
  • less 与 more 类似,但是比 more 更好的是,他可以往前翻页!
  • head 只看头几行
  • tail 只看尾巴几行

 

cat 

由第一行开始显示文件内容,语法:

cat [-AbEnTv]

选项与参数:

  • -A :相当於 -vET 的整合选项,可列出一些特殊字符而不是空白而已;
  • -b :列出行号,仅针对非空白行做行号显示,空白行不标行号!
  • -E :将结尾的断行字节 $ 显示出来;
  • -n :列印出行号,连同空白行也会有行号,与 -b 的选项不同;
  • -T :将 [tab] 按键以 ^I 显示出来;
  • -v :列出一些看不出来的特殊字符

 

tac

tac与cat命令刚好相反,文件内容从最后一行开始显示,可以看出 tac 是 cat 的倒着写!如:

 

nl

显示行号

nl [-bnw] 文件

 

选项与参数:

    • -b :指定行号指定的方式,主要有两种:
      -b a :表示不论是否为空行,也同样列出行号(类似 cat -n);
      -b t :如果有空行,空的那一行不要列出行号(默认值);
    • -n :列出行号表示的方法,主要有三种:
      -n ln :行号在萤幕的最左方显示;
      -n rn :行号在自己栏位的最右方显示,且不加 0 ;
      -n rz :行号在自己栏位的最右方显示,且加 0 ;
    • -w :行号栏位的占用的位数。

 

more

一页一页翻动

 

less

一页一页翻动,以下实例输出/etc/man.config文件的内容:

 

 

head

取出文件前面几行

 

tail

取出文件后面几行

 

Linux 用户和用户组管理

  Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。

  实现用户账号的管理,要完成的工作主要有如下几个方面:

  • 用户账号的添加、删除与修改。
  • 用户口令的管理。
  • 用户组的管理。

 

一、Linux系统用户账号的管理

  用户账号的管理工作主要涉及到用户账号的添加、修改和删除。

  添加用户账号就是在系统中创建一个新账号,然后为新账号分配用户号、用户组、主目录和登录Shell等资源。刚添加的账号是被锁定的,无法使用。

   

1、添加新的用户账号使用useradd命令,其语法如下:

useradd 选项 用户名

参数说明:

  • 选项:

    • -c comment 指定一段注释性描述。
    • -d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。
    • -g 用户组 指定用户所属的用户组
    • -G 用户组,用户组 指定用户所属的附加组。
    • -s Shell文件 指定用户的登录Shell
    • -u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号。
  • 用户名:

    指定新账号的登录名。

 

实例

# useradd –d /usr/sam -m sam

此命令创建了一个用户sam其中-d和-m选项用来为登录名sam产生一个主目录/usr/sam(/usr为默认的用户主目录所在的父目录)。

 

删除账号:

如果一个用户的账号不再使用,可以从系统中删除。删除用户账号就是要将/etc/passwd等系统文件中的该用户记录删除,必要时还删除用户的主目录。

删除一个已有的用户账号使用userdel命令,其格式如下:

userdel 选项 用户名

常用的选项是-r,它的作用是把用户的主目录一起删除。

 

# userdel sam

此命令删除用户sam在系统文件中(主要是/etc/passwd, /etc/shadow, /etc/group等)的记录,同时删除用户的主目录。

 

修改帐号

修改用户账号就是根据实际情况更改用户的有关属性,如用户号、主目录、用户组、登录Shell等。

修改已有用户的信息使用usermod命令,其格式如下:

usermod 选项 用户名

常用的选项包括-c, -d, -m, -g, -G, -s, -u以及-o等,这些选项的意义与useradd命令中的选项一样,可以为用户指定新的资源值。

如:

# usermod -s /bin/ksh -d /home/z –g developer sam

此命令将用户sam的登录Shell修改为ksh,主目录改为/home/z,用户组改为developer。

 

用户口令的管理

用户管理的一项重要内容是用户口令的管理。用户账号刚创建时没有口令,但是被系统锁定,无法使用,必须为其指定口令后才可以使用,即使是指定空口令。

指定和修改用户口令的Shell命令是passwd。超级用户可以为自己和其他用户指定口令,普通用户只能用它修改自己的口令。命令的格式为:

passwd 选项 用户名

可使用的选项:

  • -l 锁定口令,即禁用账号。
  • -u 口令解锁。
  • -d 使账号无口令。
  • -f 强迫用户下次登录时修改口令。

例如,假设当前用户是sam,则下面的命令修改该用户自己的口令:

$ passwd 
Old password:****** 
New password:******* 
Re-enter new password:*******

 

Linux系统用户组的管理

  每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理。不同Linux 系统对用户组的规定有所不同,如Linux下的用户属于与它同名的用户组,这个用户组在创建用户时同时创建。

  用户组的管理涉及用户组的添加、删除和修改。组的增加、删除和修改实际上就是对/etc/group文件的更新。

1、增加一个新的用户组使用groupadd命令。其格式如下:

groupadd 选项 用户组

可以使用的选项有:

  • -g GID 指定新用户组的组标识号(GID)
  • -o 一般与-g选项同时使用,表示新用户组的GID可以与系统已有用户组的GID相同。
# groupadd group1

  此命令向系统中增加了一个新组group1,新组的组标识号是在当前已有的最大组标识号的基础上加1。

 

2、如果要删除一个已有的用户组,使用groupdel命令,其格式如下:

groupdel 用户组
# groupdel group1

此命令从系统中删除组group1。

 

3、修改用户组的属性使用groupmod命令。其语法如下:

groupmod 选项 用户组

常用的选项有:

  • -g GID 为用户组指定新的组标识号。
  • -o 与-g选项同时使用,用户组的新GID可以与系统已有用户组的GID相同。
  • -n新用户组 将用户组的名字改为新名字

 

4、如果一个用户同时属于多个用户组,那么用户可以在用户组之间切换,以便具有其他用户组的权限。

用户可以在登录后,使用命令newgrp切换到其他用户组,这个命令的参数就是目的用户组。例如:

$ newgrp root

这条命令将当前用户切换到root用户组,前提条件是root用户组确实是该用户的主组或附加组。类似于用户账号的管理,用户组的管理也可以通过集成的系统管理工具来完成。

 

 

 

Linux初探

标签:ogr   启动   有关   ati   mysq   服务器端   管理员   lnmp   tmp   

原文地址:http://www.cnblogs.com/zhuzhenwei918/p/7497979.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!