Linux初探

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来显示一个文件的属性以及文件所属的用户和组,如下:

[[email protected] /]# 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系统按照文件所有者、文件所有者同组用户和其他用户来规定了不同的文件访问权限。

[[email protected] /]# 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命令可能是最常被运行的。如下;

[[email protected] ~]# ls [-aAdfFhilnrRSt] 目录名称
[[email protected] ~]# ls [--color={never,auto,always}] 目录名称
[[email protected]ww ~]# ls [--full-time] 目录名称

选项与参数:

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

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

[[email protected] ~]# 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 即拷贝文件和目录。

[[email protected] ~]# cp [-adfilprsu] 来源档(source) 目标档(destination)
[[email protected] ~]# 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 (移动文件与目录,或修改名称)

[[email protected] ~]# mv [-fiu] source destination
[[email protected] ~]# 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用户组确实是该用户的主组或附加组。类似于用户账号的管理,用户组的管理也可以通过集成的系统管理工具来完成。

时间: 2024-12-29 01:43:13

Linux初探的相关文章

Linux 初探 (基础认知篇)

linux 初探 (基础认知篇) 什么是linux? Linux是开源的类Unix系统,单纯的术语Linux来说其实仅仅指由林纳斯.托瓦兹开发并于1991年发布的一款存在于内核空间的操作系统内核(kernel). 为什么会开发要开发内核呢? 要从应用程序是如何在计算机上跑起来谈起,早期的应用程序需要了解CPU指令集利用汇编等语言进行开发.CPU的常见指令集架构:x86.x64(早期称其为amd64)兼容x86.m68000(m68k).arm.power.power pc(ppc,桌面级powe

linux初探-安装linux

准备工作 1.下载安装Vmware Workstation(自行百度下载,安装一直点下一步即可,这里就不做赘述) 2.下载centos6.5(linux的版本奇数为测试版本,偶数为稳定版本) 3.安装secureCRT(百度可下载) 安装centos如下 点击下一步 选择浏览将下载的iso文件选进来,点击一下步 写好用户名和密码,写好后点击下一步 位置可自行选择也可以默认无妨,点击下一步因为是学习环境可以先10G即可,点击下一步点击完成开始安装centos 原文地址:http://blog.51

Python app in Azure App Service on Linux初探

使用Azure应用托管平台服务,可以为运维人员省去大量的基础服务器的管理工作,并且可以和Azure DevOps, GitHub, BitBucket, Docker Hub, Azure Container Registry等配合使用实现持续集成和持续部署.现阶段Global Azure也推出了Azure App Service on Linux 服务,用户可以托管他们的应用在Linux环境下,目前支持大多数开发语言和版本,对Python的支持处于public preview阶段,接下来我们做

(Linux)初探cmake .和make命令

cmake编译OpenCV工程 首先我们看到文件夹中有一cpp文件,CMakeLists.txt文件和一张图片 首先进行cmake .命令 接着进行make命令 . 然后就得到了可执行文件,也就是说可执行文件是make出来的 然后./opencv_example执行就OK咯~ 原文地址:https://www.cnblogs.com/Todd-Qi/p/9929118.html

linux网络管理初探

linux网络管理初探 既然说到linux的网络管理,先来简单了解一下OSI开放系统模型以及TCP/IP模型. OSI(Open System Interconnect),即开放式系统互联. 一般都叫OSI参考模型,是ISO(国际标准化组织)组  织在1985年研究的网络互联模型.该体系结构标准定义了网络互连的七层框架(物理层.数据链路层.网络层  传输层.会话层.表示层和应用层),即ISO开放系统互连参考模型.在这一框架下进一步详细规定了每一层的  功能,以实现开放系统环境中的互连性.互操作性

buildroot linux filesystem 初探

/****************************************************************************** * buildroot linux filesystem 初探 * 声明: * 在自己做文件系统的时候发现了这个buildroot,可以用来直接做文件系统,于是 * 下载下来自己编译了一下,发现确实是这样的,于是简单尝试一下,先看看效果如何. * * 2016-2-1 深圳 南山平山村 曾剑锋 **********************

Linux 驱动模型初探3——device

讲device之前,我要引入一个比喻,这个比喻来自一个学长(z2007b).driver是帅哥,device是美女,bus是红娘,bus是提供device和driver配对的场所(方法?).好吧,暂时先这样定,现在要讲的就是美女. 1,老规则,先看看struce device这个美女有哪些特性(成员)和方法 struct device { struct device *parent; struct device_private*p; struct kobject kobj; const char

源码安装 linux apache 集成 subversion 初探

分别安装Apache  subversion http://my.oschina.net/u/234018/blog/297849 http://my.oschina.net/u/234018/blog/298292 修改apache 配置 2.1 mod_authz_svn.so 和 mod_dav_svn.so 复制到apache /usr/local/apache/modules/ [[email protected] libexec]# cd /usr/local/subversion/

linux权限管理初探

权限管理 在linux系统上,有个"潜规则",就是一切皆文件.字符设备是文件,目录是文件,套接字,也是文件...那么怎么区别那个文件到底属于哪种类型呢? 大多数文件系统的实现定义了7中文件类型, 分别是 普通文件 目录 字符设备文件 块设备文件 本地域套接字 有名管道 符号链接 用户可以使用命令 ls -l 来查看文件的类型.ls命令输出的第一个字符即为文件类型. [[email protected] ~]$ ls -l 总用量 0 drwxrwxr-x. 2 john john 6