0 linux文件系统目录简介:
文件系统: rootfs: 根文件系统 FHS:Linux /boot: 系统启动相关的文件,如内核、initrd,以及grub(bootloader) /dev: 设备文件 设备文件: 块设备:随机访问(磁盘 硬盘, 随机访问,比如文件A,B,C访问时直接访问B,而不需要经过顺序A),数据块 字符设备:线性访问(有次序的 eg:键盘),按字符为单位,一个字符一个字符来读取 设备号:主设备号(major)和次设备号(minor) /etc:配置文件 /home:普通用户的家目录,每一个用户的家目录通常默认为/home/USERNAME /root:管理员的家目录,在将来操作中,千万不要拿root用户登录,此时的任何一个操作都可能是致命的,因为root用户拥有所有权限。 /lib:库文件 静态库, linux下是.a 结尾 , 直接链接到程序地址空间中,并作为程序一部分运行。 动态库, window下叫.dll, linux下是.so (shared object),动态库是加载到内存中供程序共享使用的工具集 /lib/modules:内核模块文件 /media:挂载点目录,常用于挂载移动设备, 挂载含义: 某个设备想要被linux识别,必须放在linux文件系统某个节点下(linux下所有东西都是文件/节点) /mnt:挂载点目录,常用于挂载额外的临时文件系统 eg:第二块硬盘 /opt:可选目录,第三方程序的安装目录 /proc:伪文件系统,里面放着内核映射文件,在系统启动后里面才有内容 /sys:伪文件系统,跟硬件设备相关的属性映射文件 /tmp:临时文件, /var/tmp /var:可变化的文件 /bin: 可执行文件, 用户命令 /sbin:管理命令 /usr:unify shared, read-only /usr/bin /usr/sbin /usr/lib /bin, /sbin是跟系统启动相关的 /usr/bin, /usr/sbin 系统本身正常提供功能相关的 /usr/local: 第三方软件外围需要的,非必须,非关键性, eg: 将hadoop安装在 /usr/local目录下 /usr/local/bin /usr/local/sbin /usr/local/lib
1 ls:
ls -l:长格式 drwxr-xr-x 2 root root 4096 Jul 16 20:40 Desktop 文件类型: -:普通文件 (f) d: 目录文件 b: 块设备文件 (block) c: 字符设备文件 (character) l: 符号链接文件(symbolic link file) p: 命令管道文件(pipe) s: 套接字文件(socket) 文件权限:9位,每3位一组,每一组:rwx(读,写,执行), r-- 文件硬链接的次数 文件的属主(owner) 文件的属组(group) 文件大小(size),单位是字节 时间戳(timestamp):最近一次被修改的时间 访问:access 修改:modify,文件内容发生了改变 改变:change,metadata,元数据 -h:做单位转换(human readable) eg: # ls -l -h 或者 # ls -lh 结果: drwxr-xr-x 2 root root 4.0K Jul 16 20:40 Desktop 即显示文件大小时以kb为单位显示 让人看得懂 -a: 显示以.开头的隐藏文件 (a 表示 all,显示所有文件,包括隐藏文件,隐藏文件的前缀是.) . 表示当前目录 .. 表示父目录 -A: (显示所有文件 但是不包括.和..) -d: 显示目录自身属性 eg: # ls -ld /root 则仅显示root的属性,而非显示root文件夹下所有文件属性 -i: 每个文件都对应一个index node 简写为inode, 展示文件索引节点号: # ls -i /root 展示文件夹root下所有文件的文件节点号 结果为: 490570 anaconda-ks.cfg .... -r: 逆序显示(默认按照文件名升序排序展示) eg: # ls -r /root 结果: test1.sh install.log.syslog install.log Desktop anaconda-ks.cfg -R: 递归(recursive)显示
2 cd:
change directory 家目录,主目录, home directory cd ~USERNAME: 进入指定用户的家目录 cd -:在当前目录和前一次所在的目录之间来回切换
3 type:
显示指定属于哪种类型 eg: # type ls 结果: ls is aliased to `ls --color=tty'
4 命令类型
内置命令(shell内置),内部,内建 外部命令:在文件系统的某个路径下有一个与命令名称相应的可执行文件 eg: # which ls 结果: /bin/ls 这个ls就是一个在文件系统中/bin/目录下的命令 就是一个外置命令
5 环境变量
变量赋值 使用# printenv 查看,部分查询结果如下: TERM=vt100 SHELL=/bin/bash HISTSIZE=1000 SSH_CLIENT=192.168.1.156 61052 22 SSH_TTY=/dev/pts/2 USER=root 常用到的外部命令都放在 PATH=内,中间用:隔开。PATH=n:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin , 以ls命令为例,当最开始使用,会去path中找路径并执行路径下的命令,当执行完后,此命令被缓存起来,可以使用命令]# hash来查看 eg: 记录命令执行次数和命名名称 # hash hits command 1 /usr/bin/printenv 14 /bin/ls 这种缓存起来,是通过hash方式缓存,(键--->值,去缓存中查询的速度是O(1)--->衡量程序执行速度的标准,o(1)表示无论多长,都是瞬间找到)
6 date
时间管理 window: rtc real time clock 硬件时钟--->依靠晶体振荡器(需要电来支持,台式机主板的纽扣电池),每次操作系统开机时都是从硬件时钟当中读取的当前时间,然后设置当前系统时间。 Linux: 开机时,会通过rtc来得到硬件时钟,然后内核自身会通过软件方式模拟振荡器,并在系统内部维持一个时钟(系统时钟),我们通过date命令看到的这个时间就是系统时钟,这个时钟肯定 是没有硬件时钟精准。 硬件时钟linux下使用: # clock 来获取 # date --help Usage: date [OPTION]... [+FORMAT] FORMAT controls the output. %% a literal % %a locale's abbreviated weekday name (e.g., Sun) %A locale's full weekday name (e.g., Sunday) %b locale's abbreviated month name (e.g., Jan) %B locale's full month name (e.g., January) %c locale's date and time (e.g., Thu Mar 3 23:05:25 2005) %C century; like %Y, except omit last two digits (e.g., 21) %d day of month (e.g, 01) ...... [root@sliver114 ~]# date +%Y 2014 [root@sliver114 ~]# date +"this year is %Y" this year is 2014 [root@sliver114 ~]# date +%d 25 [root@sliver114 ~]# date +"this year is %Y, %ntoday is %d" this year is 2014, today is 25 [root@sliver114 ~]# date +%T 00:47:05 [root@sliver114 ~]# date +%Y-%m-%d 2014-08-25 修改时间 date [MMDDhhmm[[CC]YY][.ss]]
7 linux中符号的含义
常在 help --commond 或者 man commond中看到如下符号, eg: #man date SYNOPSIS date [OPTION]... [+FORMAT] date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]] 代表含义如下 <>:必选 []:可选 ...:可以出现多次 |:多选一 {}:分组