linux目录分类和各个目录作用-2016-07-21

linux目录分类和各个目录作用-2016-07-21

Linux安装以后出现的文件目录的作用:

 文件系统的类型

 LINUX有四种基本文件系统类型:普通文件、目录文件、连接文件和特殊文件,可用file命令来识别。

 普通文件:如文本文件、C语言元代码、SHELL脚本、二进制的可执行文件等,可用catlessmoreviemacs来察看内容,用mv来改名。

 目录文件:包括文件名、子目录名及其指针。它是LINUX储存文件名的唯一地方,可用ls列出目录文件。

 连接文件:是指向同一索引节点的那些目录条目。用ls来查看是,连接文件的标志用l开头,而文件面后以"->"指向所连接的文件。

 特殊文件LINUX的一些设备如磁盘、终端、打印机等都在文件系统中表示出来,则一类文件就是特殊文件,常放在/dev目录内。例如,软驱A称为/dev/fd0LINUXC:的概念,而是用/dev/had来自第一硬盘。

 

   对于linux新手来说,最感到迷惑的问题之一就是文件都存在哪里呢?特别是对于那些从windows转过来的新手来说,linux的目录结构看起来有些奇怪哦。所以,在这里讲一下linux下的主要目录以及它们都是用来干什么的。

     /

     这就是根目录。对你的电脑来说,有且只有一个根目录。所有的东西,我是说所有的东西都是从这里开始。举个例子:当你在终端里输入“/home”,你其实是在告诉电脑,先从/(根目录)开始,再进入到home目录。

    /root

     这是系统管理员(root user)的目录。对于系统来说,系统管理员就好比是上帝,它能对系统做任何事情,甚至包括删除你的文件。因此,请小心使用root帐号。

    /bin

     这里存放了标准的(或者说是缺省的)linux的工具,比如像“ls”、“vi”还有“more”等等。通常来说,这个目录已经包含在你的“path”系 统变量里面了。什么意思呢?就是:当你在终端里输入ls,系统就会去/bin目录下面查找是不是有ls这个程序。

    /etc

     这里主要存放了系统配置方面的文件。举个例子:你安装了samba这个套件,当你想要修改samba配置文件的时候,你会发现它们(配置文件)就在/etc/samba目录下。

     /dev

    这里主要存放与设备(包括外设)有关的文件(unixlinux系统均把设备当成文件)。想连线打印机吗?系统就是从这个目录开始工作的。另外还有一些包括磁盘驱动、USB驱动等都放在这个目录。

    /home

     这里主要存放你的个人数据。具体每个用户的设置文件,用户的桌面文件夹,还有用户的数据都放在这里。每个用户都有自己的用户目录,位置为:/home/用户名。当然,root用户除外。

     /tmp

     这是临时目录。对于某些程序来说,有些文件被用了一次两次之后,就不会再被用到,像这样的文件就放在这里。有些linux系统会定期自动对这个目录进行清理,因此,千万不要把重要的数据放在这里。

    /usr

     在这个目录下,你可以找到那些不适合放在/bin/etc目录下的额外的工具。比如像游戏阿,一些打印工具拉等等。/usr目录包含了许多子目录: /usr/bin目录用于存放程序;/usr/share用于存放一些共享的数据,比如音乐文件或者图标等等;/usr/lib目录用于存放那些不能直接 运行的,但却是许多程序运行所必需的一些函数库文件。你的软件包管理器(应该是“新立得”吧)会自动帮你管理好/usr目录的。

    /opt 

    这里主要存放那些可选的程序。你想尝试最新的firefox测试版吗?那就装到/opt目录下吧,这样,当你尝试完,想删掉firefox的时候,你就可以直接删除它,而不影响系统其他任何设置。安装到/opt目录下的程序,它所有的数据、库文件等等都是放在同个目录下面。

 

    举个例子:刚才装的测试版firefox,就可以装到/opt/firefox_beta目录下,/opt/firefox_beta目录下面就包含了运 行firefox所需要的所有文件、库、数据等等。要删除firefox的时候,你只需删除/opt/firefox_beta目录即可,非常简单。

    /usr/local

     这里主要存放那些手动安装的软件,即不是通过“新立得”或apt-get安装的软件。它和/usr目录具有相类似的目录结构。让软件包管理器来管理/usr目录,而把自定义的脚本(scripts)放到/usr/local目录下面,我想这应该是个不错的主意。

     /media

     有些linux的发行版使用这个目录来挂载那些usb接口的移动硬盘(包括U)CD/DVD驱动器等等。

 

补充:

 

       /bin 

系统所需要的那些命令位于此目录,比如 lscpmkdir等命令;功能和/usr/bin类似,这个目录中的文件都是可执行的、普通用户都可以使用的命令。作为基础系统所需要的最基础的命令就是放在这里(/usr/bin/usr/sbin 类似与“/”根目录下对应的目录(/bin/sbin),但不用于基本的启动(譬如,在紧急维护中)。大多数命令在这个目录下。 )。

 

        /boot

Linux的内核及引导系统程序所需要的文件目录,比如 vmlinuz initrd.img 文件都位于这个目录中。在一般情况下,GRUBLILO系统引导管理器也位于这个目录。

 

 

 

/lost+found 

ext2ext3文件系统中,当系统意外崩溃或机器意外关机,而产生一些文件碎片放在这里。当系统启动的过程中fsck工具会检查这里,并修复已经损 坏的文件系统。 有时系统发生问题,有很多的文件被移到这个目录中,可能会用手工的方式来修复,或移到文件到原来的位置上。

 

/mnt 

这个目录一般是用于存放挂载储存设备的挂载目录的,比如有cdrom 等目录。可以参看/etc/fstab的定义。有时我们可以把让系统开机自动挂载文件系统,把挂载点放在这里也是可以的。主要看/etc/fstab中怎 么定义了;比如光驱可以挂载到/mnt/cdrom

 

/opt 

表示的是可选择的意思,有些软件包也会被安装在这里,也就是自定义软件包,比如在Fedora Core 5.0中,OpenOffice就是安装在这里。有些我们自己编译的软件包,就可以安装在这个目录中;通过源码包安装的软件,可以通过 ./configure –prefix=/opt/目录 。

 

/proc 

操作系统运行时,进程信息及内核信息(比如cpu、硬盘分区、内存信息等)存放在这里。/proc目录伪装的文件系统proc的挂载目录,proc并不是真正的文件系统,它的定义可以参见 /etc/fstab

 

 

/sbin 

大多是涉及系统管理的命令的存放,是超级权限用户root的可执行命令存放地,普通用户无权限执行这个目录下的命令,这个目录和/usr/sbin; /usr/X11R6/sbin/usr/local/sbin目录是相似的;我们记住就行了,凡是目录sbin中包含的都是root权限才能执行的。

 

  /usr 

这个是系统存放程序的目录,比如命令、帮助文件等。这个目录下有很多的文件和目录。当我们安装一个Linux发行版官方提供的软件包时,大多安装在这里。 如果有涉及服务器配置文件的,会把配置文件安装在/etc目录中。/usr目录下包括涉及字体目录/usr/share/fonts ,帮助目录 /usr/share/man/usr/share/doc,普通用户可执行文件目录/usr/bin /usr/local/bin /usr/X11R6/bin ,超级权限用户root的可执行命令存放目录,比如 /usr/sbin /usr/X11R6/sbin /usr/local/sbin 等;还有程序的头文件存放目录/usr/include

 

/var 

这个目录的内容是经常变动的,看名字就知道,我们可以理解为vary的缩写,/var下有/var/log 这是用来存放系统日志的目录。/var/www目录是定义Apache服务器站点存放目录;/var/lib 用来存放一些库文件,比如MySQL的,以及MySQL数据库的的存放地;

关于/opt目录的一个小技巧 

Linux中,/opt目录是存放某些大型软件或者某些特殊软件的目录,比如谷歌浏览器(Google Chrome)默认就是安装在/opt中。但是我们一般不会把opt单独分在一个区,因为/opt中大多数时候是空的,即使安装了软件也不会太多,而且有 些软件的容量还比较大,这样就会占用/的容量,我们可以在其它你愿意的地方建立一个目录来将/opt“转移”到别处,比如我的的/usr是单独分在一个 区,容量有50G,这么大的空间不要浪费了不是?而且/usr本来就是安装软件的地方,所以我可以/usr下建立一个叫opt的文件夹,然后右键点击这个 /usr下的opt,选择“创建链接”,得到一个名为“到 opt 的链接”文件,然后把这个文件剪切到/下,将原来的/opt删除,再将“到 opt 的链接”改名为opt就可以了,以后我们安装在/opt的软件实际上是安装到了/usr/opt下(实际上是一个符号链接)。

 

 

/usr/local 这个目录一般是用来存放用户自编译安装软件的存放目录;一般是通过源码包安装的软件,如果没有特别指定安装目录的话,一般是安装在这个目录中。这个目录下面有子目录。自己看看吧。

/usr/share 系统共用的东西存放地,比如 /usr/share/fonts 是字体目录,/usr/share/doc/usr/share/man帮助文件。

/var/log 系统日志存放,分析日志要看这个目录的东西;

/var/spool 打印机、邮件、代理服务器等假脱机目录;

 

SSH介绍

SSH Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定;SSH 为建立在应用层和传输层基础上的安全协议。SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。SSH最初是UNIX系统上的一个程序,后来又迅速扩展到其他操作平台。SSH在正确使用时可弥补网络中的漏洞。SSH客户端适用于多种平台。几乎所有UNIX平台—包括HP-UXLinuxAIXSolarisDigital UNIXIrix,以及其他平台,都可运行SSH

远程连接Linux服务器

默认情况下最小化安装Linux SSH默认是已经安装的,默认SSH 服务也是开启的,可以通过命令查看其状态:

Centos 6.8命令:

[root@localhost tmp]# service sshd status

openssh-daemon (pid  2212) is running…

[root@localhost tmp]# chkconfig  | grep sshd

sshd            0:off 1:off 2:on 3:on 4:on 5:on 6:off

 

 

Centos 7命令:

[root@Centos7 ~]# systemctl status sshd

sshd.service – OpenSSH server daemon

   Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled)

   Active: active (running) since Fri 2016-07-22 08:13:51 CST; 2h 26min ago

     Docs: man:sshd(8)

           man:sshd_config(5)

 Main PID: 1454 (sshd)

   CGroup: /system.slice/sshd.service

           └─1454 /usr/sbin/sshd -D

 

Jul 22 08:13:51 Centos7.local systemd[1]: Started OpenSSH server daemon.

Jul 22 08:13:51 Centos7.local systemd[1]: Starting OpenSSH server daemon…

Jul 22 08:13:51 Centos7.local sshd[1454]: Server listening on 0.0.0.0 port 22.

Jul 22 08:13:51 Centos7.local sshd[1454]: Server listening on :: port 22.

Jul 22 08:30:38 Centos7.local sshd[3469]: Accepted password for root from 192.168.71.1 port 49798 ssh2

 

 

[root@Centos7 ~]# systemctl list-unit-files *sshd*

UNIT FILE             STATE   

anaconda-sshd.service static  

sshd-keygen.service   static  

sshd.service          enabled

sshd@.service         static  

 

SSH连接工具

Putty  Xshell  SecureCRT 8.0

注意:需要使用SSH工具需要注意一下几点:

1. 服务器上SSHD服务是否开启;

2. 客户端连接服务器SSHD的端口号是否正确;

3. 用户名和密码或秘钥是否正确。

 

关于终端基本知识

基本概念:

服务器非必要部件;

查看当前连接的终端: w命令:

[chen@localhost ~]$ w

11:20:23 up  3:06,  4 users,  load average: 0.21, 0.17, 0.26

USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT

root     tty1     :0               08:14    3:06m  6.99s  6.99s /usr/bin……

root     pts/0    :0.0             11:12    7:31   0.00s  0.00s /bin/bash

root     pts/1    192.168.71.1     08:19   14:43   0.64s  0.64s -bash

chen     pts/2    192.168.71.1     11:05    0.00s  0.15s  0.03s w

/dev/console : 只有单用户模式下才会显示TTYconsole (控制台的意思)

/dev/tty#    : 虚拟终端,附加在物理终端之上的以软件的方式虚拟实现的终端

tty1 : 图形界面;

tty2–tty6 :字符界面

/dev/pts/#  : 模拟终端,图形界面打开的命令行及基于SSH协议或Telnet协议等远程打开的界面。

 

图形界面:

GUI:图形用户接口

Desktop

GNOME (C ,图形库GTK)

KDE (C++ , 图形库GT)

XFCE(轻量级桌面)

CLT:(命令行接口)

Shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口。它接收用户输入的命令并把它送入内核去执行。

实际上Shell是一个命令解释器,它解释由用户输入的命令并且把它们送到内核。不仅如此,Shell有自己的编程语言用于对命令的编辑,它允许用户编写由shell命令组成的程序。Shell编程语言具有普通编程语言的很多特点,比如它也有循环结构和分支控制结构等,用这种编程语言编写的Shell程序与其他应用程序具有同样的效果。

Shell 程序

Linux本身一样,Shell也有多种不同的版本。主要有下列版本的Shell: 

Bourne Shell是贝尔实验室开发的。

BASHGNUBourne Again Shell,是GNU操作系统上默认的shell

Korn Shell是对Bourne SHell的发展,在大部分内容上与Bourne Shell兼容。

C ShellSUN公司ShellBSD版本。

Z ShellThe last shell youll ever need! Z是最后一个字母,也就是终极Shell。它集成了bashksh的重要特性,同时又增加了自己独有的特性。

 

 

Linux 部分基础命令

查看系统支持的shell

    [chen@localhost ~]$ cat /etc/shells

/bin/sh

/bin/bash

/sbin/nologin  —系统账号发起进程使用,不用登录系统

/usr/bin/sh

/usr/bin/bash  —Linux 默认 shell

/usr/sbin/nologin   —系统账号发起进程使用,不用登录系统

/bin/tcsh

/bin/csh

提示符变量:$PS1

[root@Centos7 ~]# echo $PS1

[\u@\h \W]\$

 

 

命令的类型:type COMMAND

内置命令;

内核自带的命令,如:cd , type (内部命令在内存中)

外部命令:echo "$PATH" —查看命令文件默认路径

内核不自带的命令,如:(外部命令使用一次后回 缓存到内存中 hashed

    [root@Centos7 boot]# type chmod

chmod is /usr/bin/chmod

[root@Centos7 boot]# type who

who is /usr/bin/who

[root@Centos7 boot]# who

root     :0           2016-07-21 14:02 (:0)

root     pts/1        2016-07-21 14:12 (192.168.71.1)

[root@Centos7 boot]# type who

who is hashed (/usr/bin/who)

 

命令路径变量:$PATH

echo $PATH

[root@Centos7 boot]# echo $PATH

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

直接输入命令命令按路径名称顺序搜索;

如果直接使用命令 /usr/bin/chmod 000 bash.txt

 

 

which:查看外部命令

which ls

which cd (cd是内部命令,是无法找到cd这个文件的)

 

hash缓存数据:

hash -d cat (删除缓存中的指定命令)

hash -r 清空所有缓存

 

命令查找顺序: 内置 , hash $PATH

 

 

禁用内部命令

enable -n  cd

启用内部命令

enable cd  

内核文件的地址:

[root@Centos7 boot]# ll -h /boot/vmlinuz-3.10.0-327.el7.x86_64

        -rwxr-xr-x. 1 root root 5.0M Nov 20  2015 /boot/vmlinuz-3.10.0-327.el7.x86_64

 

which :命令(二进制文件)在哪里

whereis :命令(二进制文件)在哪里,帮助文档在哪里

 

 

windows也有变量路径

 

set path(Windows变量路径,可以查找当前目录下的命令,Linux不会找当前目录下的命令,命令查找顺序: 内置 , hash $PATH)

设置计算机时间 date

系统时钟:date

硬件时钟:clock hwclock

-s : 以硬件时钟为准,校正系统时钟

-w : 以系统时钟为准,校正硬件时钟

设置计算机时间:

date 08 10 10 30 2000.30

        月 日小时分  年  秒

screen软件使用  

(普通用户也可以使用screen

实用性1如果有两个人同时用同一个账户连接到一台Linux的服务器上,其中一个人需要实时看到另一个人如何操作,可以做如下操作。

  用户A :

screen -S  helper (新建一个连接,连接名称为 helper

用户B

screen -ls  (查看session 连接数)

screen -x  helper  (连接到 helper的这个连接)

 

实用性2 如果远程连接到远程服务器,服务器上需要备份需要3小时,可以通过远程连接到服务器,开一个screen的程序,运行程序,在退出screen的界面,让screen后台运行;命令如下:

1. screen :运行一个screen 进程;

2. 运行需要执行的命令

3. ctrl+a d :剥离当前screen

4. screen -ls :查看session列表

5. screen -r [session] :恢复session的回话

 

echo : 回显命令使用

 

 

功能说明:

echo命令的功能是在显示器上显示一段文字,一般起到一个提示的作用。

语法: 该命令的一般格式为: echo [ 参数 ] 字符串

字符串能加引号,也能不加引号。用echo命令输出加引号的字符串时,将字符串原样输出;用echo命令输出不加引号的 字符 串时,将字符串中的各个单词作为字符串输出,各字符串之间用一个空格分割。

参数:

-n 不要在最后自动换行

-e 若字符串中出现以下字符,则特别加以处理,而不会将它当成一般

文字输出:

    \a 发出警告声;

     \b 删除前一个字符;

     \c 最后不加上换行符号;

     \f 换行但光标仍旧停留在原来的位置;

    \n 换行且光标移至行首;

    \r 光标移至行首,但不换行;

     \t 插入tab

      \v \f相同;

     \\ 插入\字符;

    \0nnn 插入nnn(八进制)所代表的ASCII字符;

  \xHH插入HH(十六进制)所代表的ASCII字符

help 显示帮助

version 显示版本信息

 

举例:

[root@Centos7 ~]# echo  -n  "aa bb cc"  –>不换行输出

aa bb cc[root@Centos7 ~]#

 

[root@Centos7 ~]# echo "echo $UID" –>双引号 弱引用,变量转换为其值

echo 0

[root@Centos7 ~]# echo  'echo $UID' –>单引号 强引用,变量不转换为其值

echo $UID

[root@Centos7 ~]# echo  `echo $UID` –>顿引号 强引用,变量和命令都执行(命令引用)

0

[root@Centos7 ~]# echo  $(echo $UID) –>括号引用,变量和命令都执行(命令引用)

0

 

-e : 参数来打印转义字符:

echo  -e    "aaa\c"

echo  -e    "aaa\a"

echo  -e    "aaa\bxxx"

echo  -e     "aaa\nxxx"

echo  -e      "aaa\rxxx"

echo  -e      "aaaa\txxx"

echo  -e       "\0101"

 

 

 

echo显示带颜色,需要使用参数-e

格式如下:

echo -e "\033[字背景颜色;文字颜色m字符串\033[0m"

Echo -e  ‘’\033[#;3#,4# this is my dog \033[0m

例如:

echo -e "\033[41;37m TonyZhang \033[0m"

其中41的位置代表底色, 37的位置是代表字的颜色

 注:

1、字背景颜色和文字颜色之间是英文的“""

2、文字颜色后面有个m

3、字符串前后可以没有空格,如果有的话,输出也是同样有空格

下面看几个例子:

echo -e "\033[30m 黑色字 \033[0m"

echo -e "\033[31m 红色字 \033[0m"

echo -e "\033[32m 绿色字 \033[0m"

echo -e "\033[33m 黄色字 \033[0m"

echo -e "\033[34m 蓝色字 \033[0m"

echo -e "\033[35m 紫色字 \033[0m"

echo -e "\033[36m 天蓝字 \033[0m"

echo -e "\033[37m 白色字 \033[0m"

 

echo -e "\033[40;37m 黑底白字 \033[0m"

echo -e "\033[41;37m 红底白字 \033[0m"

echo -e "\033[42;37m 绿底白字 \033[0m"

echo -e "\033[43;37m 黄底白字 \033[0m"

echo -e "\033[44;37m 蓝底白字 \033[0m"

echo -e "\033[45;37m 紫底白字 \033[0m"

echo -e "\033[46;37m 天蓝底白字 \033[0m"

echo -e "\033[47;30m 白底黑字 \033[0m"

控制选项说明 :

\33[0m 关闭所有属性

\33[1m 设置高亮度

\33[4m 下划线

\33[5m 闪烁

\33[7m 反显

\33[8m 消隐

\33[30m — \33[37m 设置前景色

\33[40m — \33[47m 设置背景色

\33[nA 光标上移n

\33[nB 光标下移n

\33[nC 光标右移n

\33[nD 光标左移n

\33[y;xH设置光标位置

\33[2J 清屏

\33[K 清除从光标到行尾的内容

\33[s 保存光标位置

\33[u 恢复光标位置

\33[?25l 隐藏光标

\33[?25h 显示光标

 

echo -e "\033[1;40;37m 高亮黑底白字 \033[0m"

echo -e "\033[1;41;37m 高亮红底白字 \033[0m"

echo -e "\033[1;42;37m 高亮绿底白字 \033[0m"

echo -e "\033[1;43;37m 高亮黄底白字 \033[0m"

echo -e "\033[1;44;37m 高亮蓝底白字 \033[0m"

echo -e "\033[1;45;37m 高亮紫底白字 \033[0m"

echo -e "\033[1;46;37m 高亮天蓝底白字 \033[0m"

echo -e "\033[1;47;30m 高亮白底黑字 \033[0m"

 

 

其它学习的小命令:

 

Cal –显示日历,特殊日子: 9  1752

Nano – 文本编辑

rpm -i 安装RPM安装包

   /etc/issue

配置文件可以修改登录提示信息 :可以修改欢迎界面文字!

原创文章,作者:linux_root,如若转载,请注明出处:http://www.178linux.com/27676

(0)
linux_rootlinux_root
上一篇 2016-08-04
下一篇 2016-08-04

相关推荐

  • 六步建立yum仓库

    建立yum仓库

    Linux干货 2018-03-26
  • N25第九周博客作业

    1、 写一个脚本,判断当前系统上所有用户的shell是否为可登录shell(即用户的shell不是/sbin/nologin);分别这两类用户的个数;通过字符串比较来实现; #!/bin/sh lg=0 nlg=0 while read line;do   if [[ “${line}” =~“/sbin/nol…

    Linux干货 2017-03-06
  • Linux软件包安装

    Linux系统和Windows系统在软件包安装上区别很大:     软件运行环境:         API: Application Programming Interface    POSIX: P…

    Linux干货 2016-08-21
  • 程序包管理之编译安装apache

    编译就是讲开发者提供的源代码,通过编译器,汇编器,连接器转换成可以直接在操作系统上运行的二进制指令的过程。C/C++源码的编译通常包括以下几个过程:     预处理(Preprocessing)     编译(Compilation)    &nbs…

    Linux干货 2016-08-24
  • 安装CentOS 6.9与CentOS7.3

    今天学习了如何安装CentOS6.9与CentOS7.3. 安装CentOS6.9 首先打开虚拟机如下如所示: 然后点击创建新的虚拟机: 选择典型,然后点击下一步: 一般会选择稍后安装操作系统,然后点击下一步 客户机操作系统有很多,因为今天只安装CentOS 所以选择Linux 版本则选择CentOS 64 位 (因为CentOS7以上没有32位版本,只有C…

    2017-07-14
  • 一波三折的尝试,windows下通过VMware虚拟机安装windows操作系统

    已经尝试过多次VMware下linux系统的安装,均安装正常,同样环境下安装windows系统会发生什么情况,首先选择的是windows10系统,然而在安装过程中,iso镜像光盘一直无法挂载,在经历更换iso镜像,更换另一台电脑之后,初步判定问题为win10系统iso镜像顺坏,因为同样环境用win7的镜像却能正常挂载,且正常启动到安装系统界面…..
    但是,问题真的会是这样吗?

    2018-03-27