1. Linux文件系统

  • /var:包含在正常操作中被改变的文件、假脱机文件,记录文件、加锁文件、零时文件和页格式文件等。
  • /home:包含用户的文件:参数设置文件、个性化文件、文档、数据、EMALL、缓存数据等,每增加一个用户,系统就会根据其用户名在home目录下新建和其他用户同名的文件夹,用于保存其用户配置。
  • /proc:包含虚幻的文件,它们实际上并不存在于磁盘上,也不占用任何空间(用ls-l可以显示它们的的大小)当查看这些文件时,实际上是在访问存在内存中的信息,这些信息用于访问系统。
  • /bin:包含系统启动时需要的执行文件(二进制)。这些文件可以被普通用户使用。
  • /etc:为操作系统的配置文件目录(防火墙,启动项)。
  • /root:为系统管理员(也叫超级用户或根用户)的Home目录。
  • /dev:为设备目录,Linux下设备被当成文件,这样一来硬件被抽象化,便于读写,网络共享以及需要临时装载到文件系统中,正常情况下,设备会有一个独立的子目录,这些设备的内容会出现在独立的子目录下。

2. Linux命令操作

  • 查看当前目录命令:pwd
  1. 打开文件夹命令:cd
  2. 打开指定文件夹:cd [目录名称]
  3. 打开当前用户的根目录:cd ~
  4. 返回上级目录:cd …
  5. 返回进入目录:cd -
  6. 打开根目录:cd /
  • 浏览目录下的文件列表命令:ls
  1. 以列的方式查看当前目录下的文件列表:ls -l
  2. 查看当前目录下的所有文件(包括隐藏文件):ls -a
  3. 以列表的方式查看当前目录下的所有文件:ls -la
  • 创建文件目录命令:mkdir
  1. 新建文件目录:mkdir文件名称
  2. 递归新建多级目录:mkdir -p 文件夹名称
  3. 例如在用户目录下新建test目录,命令这样写:mkdir -p test/test1/test2/test3递归新建多级目录的写法
  • 删除文件目录命令:rmkdir
  1. 删除指定目录:rmkdir目录名称
  2. 递归删除指定目录及中间目录:rmdir -p 目录名称(:这里没有字母k)
  • 删除文件或者目录命令:rm
  1. 常用命令:rm -rf[目录或文件]rm -ri[目录或文件]
  2. 强制删除文件或目录:rm -rf 目录或者文件(慎用
  3. 在删除前询问是否确认删除:rm -ri 目录或文件
  4. rm命令中不跟r参数,无法删除目录,只能删除文件
  • 复制文件或目录命令:cp
  1. 递归复制目录1下的所有的文件和文件夹到目录2:cp -r [目录1][目录2]
  2. 执行复制操作时覆盖原有目录前询问用户:cp -ri [目录1][目录2]
  • 移动文件、修改文件名命令:mv
  1. 将文件1名称更改为文件2:mv 文件1 文件2(给文件更名)
  2. 将目录1的文件移动到目录2:mv 目录1 目录2
  • 创建文件命令:touch
  1. touch 文件名称
  • 查看、编辑文件命令:vi
  1. vi命令为UNIX操作系统或者类UNIX操作系统都具有的功能强大的文件编辑命令,用户输入vi++文件名,便可进入vi模式进行文件内容的查看和编辑,如果文件已经存在,则直接打开文件,如果文件不存在,则系统将打开一个全新的空文件。

vi的三种模式

  1. 命令模式

    当用户使用vi命令打开文件后,则进入命令模式,用户可以输入命令来执行各种功能。

取值 说明
L 光标移至屏幕最后一行
space 光标右移一个字符
backspace 光标左移一个字符
N+ 光标向上移动N行
n+ 光标向下移动n行
  1. 输入模式

    如果用户要对文件进行修改,则可以用下面几种命令,进入输入模式,用户进入输入模式之后,可以任意修改文件,除了ESC键外,用户输入的任何字符都会被作为内容写入文件中,用户输入ESC可以对文件进行相关操作。

取值 说明
a,i,r,o,A,I,R,O 编辑模式
dd 删除当前光标
ndd 删除n行
  1. 末行模式

    如果用户完成编辑命令,则可以按照ESC+:进入末行模式,用户可以对文件内容继续进行搜索,可以输入:wq!进行文件保存并退出,或者:q!强制退出文件编辑。

取值 说明
:wq! 保存并推出
:q! 强制退出
:s/字符串 1/字符串 2 将文件出现的字符串1替换为字符串2
:set nu 显示所有行号
  • 查看、编辑文件命令:cat
  1. 显示一个小的文件的内容:cat 文件名称
  2. 创建并打开一个新的文件:cat>文件名称
  • 查看文件开头内容命令:head
  1. head [参数][文件名]

    例如,使用head命令显示某个文件开始的n行数据:head -n 文件名称

取值 说明
-n <行数>显示的行数
默认 默认显示文件前10行数据
  • 查看文件结尾内容命令:tail
  1. 动态加载某个文件的内容(常用于查看日志文件):tail -f 文件名称
  2. 展示文件最后几行的数据:tail -n 行数文件名称

3. Linux权限管理

用户和用户组

用户是指在一个操作系统中,一系列权限的集合体,操作人员通过用户名和口令可以在系统中执行某一些被允许的操作。不同的用户可以具有不同的权限。Linux操作系统中每个用户都具有唯一标识UID,当使用命令创建用户时,如果不指定用户的UID,则系统将自动为其分配UID

用户组就是具有相同特征的用户的集合体,在LInux系统中,每个用户都属于至少一个用户组。Linux操作系统中每个用户分组都具有唯一标识GID,当使用命令创建用户组时,如果不指定用户组的GID,则系统将自动为其分配GID。当使用-u指定用户id时,用户id尽量大于500,以免冲突。因为Linux操作系统安装后,会默认建立一些用户,所以可能会占用500之内的id号。

Linux权限机制有以下特点:

系统有一个权限最大的用户,其名称为 root ,root 用户属于 root 用户组。 系统默认只有 root 权限可以添加和删除用户。 添加用户之后,如果没有给用户指定用户组,则系统会为用户添加一个同名的用户组,用户属于该组。 root 切换到普通用户无需登录,普通用户切换到 root 用户需要登陆。 root 可以给用户赋予和回收某一个文件的读、写、执行的权限。

用户操作命令

  • 切换用户命令:su
  1. su [用户名]或者su -[用户名]
  2. su [用户名]和su -[用户名]都可以切换用户,前者类似于零时切换用户,当使用该命令进行切换新用户时,用户配置仍然沿用原来的用户配置,如环境变量、系统变量等。而后者进行切换用户时,环境变量、系统设置全部切换到新用户的用户配置。
  • 查看当前登录用户命令:whoami
  • 查看当前用户所属分组命令:groups
  • 查看当前用户的UID和GID命令:id
  • 添加新用户命令:useradd
取值 说明
-c 代表comment指定一段注释性描述
-d 指定用户主目录
-g 指定用户所属的用户组
-G 指定用户所属的附加组
-u 指定用户的用户组
缺省 直接添加用户
  • 在Linux操作系统中添加用户:useradd 用户名
  • 在Linux操作系统中添加用户并指定用户的UID:useradd -u 指定的UID 用户名
  • 修改用户密码命令:passwd [用户名],例如:修改当前用户名为sang的用户密码:passwd sang
  • 在添加用户以后,只有为其设置密码,用户才能登陆
取值 说明
-d 删除密码。仅有系统管理员才能使用
-f 强制执行
-k 设置只有密码过期后才能更新
-l 锁着密码
-s 列出密码的相关信息,仅系统管理员可以使用
-u 解开已上锁的账号
  • 删除用户命令:userdel
  1. 删除用户:userdel 用户名
  2. 删除用户并同时删除其登录信息:userdel -r 用户名
取值 说明
-r 删除用户以及其登录日志等信息
-f 强制删除用户,即使用户已经登录
缺省 直接删除用户
  • 修改用户信息命令:usermod
  1. 语法:usermod [选项][参数][用户]
  2. 修改用户登录名:usermod -l 新用户名 旧用户名
  3. 修改用户所属分组:usermod -g 新组名称 用户名
取值 说明
-c 修改用户账号的备注文字
-d 修改用户登陆时的目录
-e 修改账号的有效期
-f 修改密码过期后多少天关闭账号
-g 修改用户所属的群组
-G 修改用户所属的附加组
-I 修改用户账号名称
-L 锁定用户密码,使密码无效
-u 修改用户ID
-U 接触密码锁定

添加用户组命令:groupadd

  1. 语法:groupadd [选项][组名称]
  2. 修改用户登陆名:groupadd 组名
  3. 修改用户所属分组:groupadd -g 组GID组名
取值 说明
-g 指定工作组的id
-r 创建系统工作组
-o 允许添加组ID不唯一的工作组
缺省 添加用户分组

4. 权限操作

Linux操作系统为文件定义了读、写、执行三种权限,不同的用户或者用户组可以具有不同的权限,系统采用rwx来分别表示文件的读、写、执行权限。使用ls -l命令可以查看到用户在当前目录或者文件的操作权限。

1
drwxr -xr -x. 2 root root 4096 Sep 23 2011 bin

从左至右分别表示如下含义:

  • d:代表bin数目目录而不是文件
  • rwx:表示拥有读、写、执行的权限
  • r-x:表示同组用户具有读、执行的权限,但是没有写权限
  • r-x:表示其他用户组具有读、执行权限,没有写权限

  • 常用的权限变更命令为:chmod

语法:chmod [选项][参数]

取值 说明
-c 显示指令执行过程,但只返回更改的部分
-f 不显示错误信息
-r 递归授权
-v 显示指令执行过程

chmod的参数可以分为两种,分别是权限模式和数字模式

权限模式:

权限模式使用 u、g、o 分别代表拥有者、同组用户、其他组用户,使用 + 和-代表赋予和收回权限,使用 r、w、x 代表读、写、执行权限。

例如:将文件F01的执行权限给当前用户,写权限给用户所在的用户组和其他用户

1
chmod -r U+X,G+W F01

例如:将文件 f01 的读、写、执行的权限赋给当前用户,将读、写权限赋给用户所在的用户组和其他用户。

1
chmod -r U=wrx, G=wr,O=wr f01

数字模式:

为了简化授权步骤,用户也可以采用数字模式进行授权,使用二进制的形式代表 r、w、x 三种权限,如 101 (5) =r -x,111 (7) =rwx,100 (3) =r- -
例如:将文件 f01 的读、写、执行的权限赋给当前用户,将读和执行权限赋给用户组、将写和执行权限赋给其他用户。

例如:将文件 f01 的读、写、执行的权限赋给当前用户,将读和执行权限赋给用户组、将写和执行权限赋给其他用户。

1
chmod 753 -r f01

例如:将文件 f01 的读、写、执行权限赋给所有用户。

1
chmod 777 -r f01

5. Linux进程管理

在 Linux 的应用中,我们需要对进程进行管理,如查看某个进程是否启动、以及在必要的时刻,杀掉某个线程。

  • 查看进程命令:ps
    ps 命令是 Linux 操作系统中查看进程的命令,通过 ps 命令我们可以查看 Linux 操作系统中正在运行的过程,并可以获得进程的 PID(进程的唯一标识),通过 PID 可以对进程进行相应的管理。
1
ps -ef | grep [进程关键字]

根据进程关键词查看进程命令显示如下,显示的进程列表中第一列表示开启进程的用户,第二列表示进程唯一标识 PID,第三列表示父进程 PPID,第四列表示 CPU 占用资源比列,最后一列表示进程所执行程序的具体位置。

1
2
3
ps -ef|grep sshd
root 1829 1 0 May24 ? 00:00:00 /usr/sbin/sshd
shang 24166 24100 0 20:17 pts/2 00:00:00 grep sshd
  • 杀掉进程命令:kill
    当系统中有进程进入死循环,或者需要被关闭时,我们可以使用 kill 命令对其关闭。
1
kill -9 [PID]

6. Linux其他常用命令

  • 清屏命令:clear
  • 查询命令详细参数命令:man
  • 挂载命令:mnt
  • 远程连接服务 SSH 相关命令:
  • 启动 SSH 服务命令:service sshd start
  • 重启 SSH 服务命令:service sshd restart
  • 关闭 SSH 服务命令:service sshd stop

7. Linux系统软件安装

常用软件安装
Linux 下常用的软件安装方式有3种。

  • tar 安装:如果开发商提供的是 tar、tar.gz、tar.bz 格式的包(其中 tar 格式的为打包后没有压缩的包,gz 结尾的是按照 gzip 打包并压缩的软件包,tar.bz 是按照二进制方式打包并压缩的软件包),可以采用 tar 包安装,tar 安装方式本质上是解压软件开发商提供的软件包,之后在通过相应配置,完成软件的安装。
  • rpm 安装:rpm 安装方式是 redhat Linux 系列推出的一个软件包管理器,类似于 Windows 下的 exe 安装程序,可以直接使用 rpm 命令安装。
  • yum 安装:yum 安装本质上依然是 rpm 包安装,和 rpm 安装方式的不同之处是用户可以通过 yum 参数,指定安装的软件包,系统将自动从互联网上下载相应的 rpm 软件包。而无须用户关心软件包的下载地址,以及软件包的依赖关系。

软件安装常用命令

  • 解压压缩命令:tar
  • 语法:tar [选项] [压缩包]
  • 解压 gzip 包:tar -zxvf [包名]
  • 解压 bz 包:tar -jxvf [包名]
  • 解压普通包:tar -xvf [包名]
取值 说明
-c 指定特定目录压缩
-x 从备份文件中还原文件
-t 列出备份文件的内容
-r 添加文件到已经压缩的文件
-z 有gzip属性的(后缀是gz的)
-j 有bz2属性的(后缀是bz的)
-z 有cpmpress属性的
-v 显示所有进程
-o 见文件姐要到标注输出
-f 使用档案名称

安装卸载命令:rpm

  • 语法:rpm [选项] [软件包]
  • 查询是否已经安装了某软件包:rpm -qa|grep [软件包关键词]
  • 卸载已经安装的软件包:rpm -e 软件包全名
  • 安装软件包并查看进度:rpm -ivh 软件包路径
取值 说明
-ivh 显示安装进度
-Uvh 实际软件包
-qpl 列出rpm软件包内的文件信息
-qpi 列出rpm软件包的描述信息
-qf 查找指定文件属于哪个rpm软件包
-Va 校验所有的rpm软件包,查找丢失的文件
-e 删除包
-qa 查找已经安装的rpm包