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)
上一篇 2016-08-04 14:42
下一篇 2016-08-04 14:42

相关推荐

  • GREP命令学习笔记

    GREP命令,全称:Global search REgular expression and Print out the line. 是一个非常强大的文本搜索命令,与SED(stream editor,文本编辑工具)和AWK(文本分析、报告生成器)并称文本处理三剑客。 一.GREP命令基本使用格式 grep [OPTIONS] PATTERN [FILE&#…

    Linux干货 2016-06-22
  • Linux进程管理

    一:进程的概念     1)进程:process,运行中的程序的一个副本的某部分,之所以说是副本的一部分是因为一个程序可以多个用户同时以不同格式运行,如两个用户都在运行ls,一个运行的是ls -h ,另一个运行的是ls -l,那么这两个用户运行的程序代码肯定是不一样的而且不是程序的所有代码;进程有生命周期; &nbsp…

    2017-03-26
  • 第四周

    查看链接:http://note.youdao.com/noteshare?id=317ec635a5f28f2681421fd7c9a60f27

    Linux干货 2016-09-19
  • 关于大型网站技术演进的思考(一):存储的瓶颈(1)

    原文出处: 夏天的森林  前不久公司请来了位互联网界的技术大牛跟我们做了一次大型网站架构的培训,两天12个小时信息量非常大,知识的广度和难度也非常大,培训完后我很难完整理出全部听到的知识,今天我换了个思路是回味这次培训,这个思路就是通过本人目前的经验和技术水平来思考下大型网站技术演进的过程。 首先我们要思考一个问题,什么样的网站才是大型网…

    Linux干货 2015-02-26
  • 优云老王(三)谈埋点:人生处处有埋点

    说到埋点,的确是用户最感兴趣的话题之一,优云Web产品在内测阶段便收到了用户的各种反馈,反复问我无码埋点是怎么做的。在此我专门与大家聊聊埋点以及各种实现方案的利弊。 1、埋点的来历 先说下埋点的来历,其实在互联网没流行起来之前,埋点并不是用来分析用户行为的,技术人员为了解决某些问题,就在代码里面加入了些行为逻辑代码,如果用户使用产品的过程中出了问题,就生成一…

    2016-09-19
  • 磁盘配额的操作步骤

    磁盘配额 操作步骤: 1、创建一个10G的分区 /dev/sdd1并将其格式化,挂载 2、如果是新硬盘便不存在同步问题。旧硬盘得使用命令partx  -a /dev/sdd1 3、临时创建挂载文件夹 /mnt/home    4、将/home/*  mv  到 /mnt/home 中,再将/dev/…

    Linux干货 2016-09-01