文件系统
ls -lhi
i inode 相当于文件在磁盘里的唯一标示,index node
h 代表文件大小k,m [root@masters ~]#
[root@masters ~]# ls -lhi
total 98M
405228 -rw-------. 1 root root 2.6K Oct 18 2014 anaconda-ks.cfg
405304 drwxr-xr-x. 9 root root 4.0K Oct 31 2014 apache-tomcat-6.0.41
394809 -rwxrwxrwx. 1 root root 6.9M Oct 31 2014 apache-tomcat-6.0.41.tar.gz
408550 drwxr-xr-x 2 root root 4.0K Jan 12 2015 class
408546 drwxr-xr-x 2 root root 4.0K Mar 6 2015 Desktop
409555 -rw-r--r-- 1 root root 413 May 23 06:42 dir.txt
408552 drwxr-xr-x 2 root root 4.0K Mar 6 2015 Documents
408547 drwxr-xr-x 2 root root 4.0K Mar 6 2015 Downloads
408417 drwxrwxrwx 13 zp zp 4.0K Nov 14 2014 hadoop-0.20.2 第三列
文件的硬连接数,硬链接是文件的又一个入口
inode 存放文件的属性,rwxr-xr-x. 9 root root 4.0K Oct 31 2014 apache-tomcat-6.0.41
指向文件块 ----------------------------------------------------
链接
ln localfile lkfile
硬链接
文件有两个入口,两个文件指向同一个inode,如果有多个硬链接,删除一个文件不会删除
硬链接以及源文件全删除之后,文件会被系统回收
rm 删除只是删除链接文件
如果进程在使用这个文件,删除之后实际上文件没丢
xx.log
ln xx.log xx_link.log
rm xx.log
删除这个之后,文件不会删除
再把xx_link.log删除之后实际文件才回删除 df -i
查看inode使用情况 以点开头的代表隐藏文件,ls -a 显示隐藏问价 .代表目录,就是因为.的inode和上级目录的一样,互为硬链接文件
..也只同样道理 -----------------------------------------------------------
软连接
类似于win的快捷方式,包含了源文件的绝对路径
ln -s localfile lnkfile
如果先把源文件删掉,软连接就会失效
目录可以创建软连接 -------------------------------------------------------------
用户和用户组 uid 用户id
gid 组id
用户分3类
1,root
uid=0
gid=0 2,虚拟用户
存在linux中,满足程序运行的需要创建的
uid gid 1--499
3,普通用户,root创建的目录
uid gid 500开始 /etc
/passwd
/group
/shadow ---------------------------------------
ls -l --time-style=long-iso xx.log
显示友好的长格式
[root@masters shelltest]# ls -l --time-style=long-iso
total 20
drwxr-xr-x 2 root root 4096 2016-05-23 06:41 image
-rw-r--r-- 1 root root 292 2016-05-22 07:35 seq.txt
lrwxrwxrwx 1 root root 9 2016-06-05 06:45 test -> lnkxx.log
-rw-r--r-- 1 root root 35 2016-05-23 06:49 xx.txt
-rw-r--r-- 1 root root 35 2016-05-23 06:49 xx.txtr Access:访问时间 -atime
Modify: 修改时间 -mtime
Change: -ctime stat 查看时间等属性,显示文件或文件系统的状态
netstat -an 查看端口 [root@masters shelltest]# stat xx.txt
File: `xx.txt'
Size: 35 Blocks: 8 IO Block: 4096 regular file
Device: 802h/2050d Inode: 409543 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2016-06-05 02:03:33.830049740 -0700
Modify: 2016-05-23 06:49:18.160567373 -0700
Change: 2016-06-05 06:49:50.471050109 -0700 ------------------------------------------
日期
[root@masters ~]# date +%F -d "-3day"
2016-06-06 ---------------------------
ctrl+u 清除光标之前的内容
ctrl+k 清除光标之后的内容 --------------------------------------------------------------------------
linux的文件系统的权限体系
r 4
w 2
x 1
- 0 groupadd grouphicloud 增加一个组
useradd -g grouphicloud hicloud 增加用户,指定组
chown hicloud grouphicloud test.sh 更改文件的文件用户和组 如果没有r的权限,vi无法编辑。强制执行的话会覆盖,echo可以追加 删除普通文件的时候,如果上层目录权限不够也是删不掉的 rm -f test.sh 因为test.sh 文件名保存在上一级目录的block里面,所以删除的时候受上一级目录的影响 inode inode(保存文件属性)
| |
---------
|
|
BLOCK(文件内容,下一级文件名,目录名) 生产上权限设置
目录 755 root root
文件 644 root root 默认权限:
umask
控制文件和目录默认权限的值
[root@masters ~]# umask
0022 file 666-umask 就是文件的默认权限,umask第一个不算
如果umask是奇数,每个奇数要加1
666
032
1
624 dir 777-umask 就是目录的权限 [root@masters ~]# ls -l /usr/bin/passwd
-rwsr-xr-x. 1 root root 25980 Feb 17 2012 /usr/bin/passwd
----- 特殊权限位(suid),其他用户在执行这个命令的时候,临时拥有这个目录所属用户的权限 -------------------------------------------------------------
chgrp (change group) chgrp grouphicloud test.sh
chgrp +R grouphicloud /root chown 改变用户,也可以改变组 chown hicloud xx.sh chown hicloud:grouphicloud xx.sh 改变用户和组
chown :grouphicloud xx.sh
chown -R :/grouphicloud /root [root@masters ~]# ls -l /usr/bin/passwd
-rwsr-xr-x. 1 506 506 25980 Feb 17 2012 /usr/bin/passwd 这里面显示数字是因为吧原来的用户删了
可以创建对应的用户和组,然后指定506
groupadd groupName -g 506
useradd userName -u 506 ========================================================================
定时任务
crond
检查时间是每分钟
crontab -l 定时任务列表
crontab -e [root@masters shelltest]# cat /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/ # For details see man 4 crontabs
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed 路径:
[root@masters cron]# cd /var/spool/cron/
[root@masters cron]# pwd
/var/spool/cron * 每的意思
- 范围
, 枚举的意思 30 17,18,19 * * * /bin/echo sss
/n 每单位时间的意思,*/2 每2分钟或者每两小时 定时任务中一定要写绝对路径
定时任务后面要加上
>/dev/null 2>&1
&>/dev/null
1>/dev/null 2>/dev/null
如果不加的话,会给管理员发邮件,占满inode [root@masters shelltest]# cat print.sh
#! /bin/sh
echo $(date "+%Y-%m-%d %H:%M:%S") >> /root/shelltest/xd.log 系统环境变量问题
cronta执行shell的时候只能识别不多的环境变量,如果在编写的脚本中
使用这些变量,最好export重新声明这些变量
eg: export HADOOP_HOME=/root/hadoop-0.20.2
export PATH=$HADOOP_HOME/bin:$PATH export JAVA_HOME=/usr/java/jdk1.8.0_25
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOMR/bin ----------------------------------------
用户管理
usermod 修改用户
usermod -g root zp 把用户的组修改为root,会覆盖原来的
usermod -aG oldboy zp 把oldboy组追加给zp [root@masters skel]# usermod -g zp zp
[root@masters skel]# id zp
uid=500(zp) gid=500(zp) groups=500(zp),0(root)
[root@masters skel]# usermod -aG oldboy zp
[root@masters skel]# id zp
uid=500(zp) gid=500(zp) groups=500(zp),0(root),503(oldboy) 新加用户的配置
[root@masters skel]# cat /etc/default/useradd
# useradd defaults file
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes SKEL=/etc/skel 改目录下的文件,新增用户的时候会copy到新用户home下面 修改密码:
echo 123| passwd --stdin hicloud 修改密码,可以放在脚本里面 groups zp,查看zp所属的组,第一个是正房
[root@masters skel]# groups zp
zp : zp root oldboy w 查看机器登陆用户
[root@masters skel]# w
02:06:25 up 1 day, 15:33, 4 users, load average: 0.00, 0.00, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root tty1 - 21May16 6days 0.36s 0.36s -bash
zp pts/2 192.168.1.101 00:35 42:17 0.43s 0.43s -bash
root pts/3 192.168.1.101 23:20 1.00s 0.32s 0.03s w
root pts/4 192.168.1.101 23:26 2:20m 0.15s 0.02s tail -f xd.log last 曾经登陆的
[root@masters skel]# last
zp pts/2 192.168.1.101 Sat Jun 11 00:35 still logged in
root pts/2 192.168.1.101 Fri Jun 10 23:47 - 00:01 (00:13)
root pts/4 192.168.1.101 Fri Jun 10 23:26 still logged in
root pts/3 192.168.1.101 Fri Jun 10 23:20 still logged in
root pts/2 192.168.1.101 Fri Jun 10 23:19 - 23:37 (00:18)
root pts/0 192.168.1.101 Fri Jun 10 08:41 - 01:18 (16:37) lastlog 用户是否登陆过
[root@masters skel]# lastlog
Username Port From Latest
root pts/2 192.168.1.101 Fri Jun 10 23:47:21 -0700 2016
bin **Never logged in**
daemon **Never logged in**
adm **Never logged in**
lp **Never logged in**
sync **Never logged in**
shutdown **Never logged in**
h --------------------------------------
用户切换
su - oldboy -c "/bin/sh /oldboy/start.sh" 使用某个用户运行服务 sudo :
首先root需要设置其他用户能够使用哪些命令
/etc/sudoers sudo -l 查看该用户可用哪些命令 sudo rm -rf /tmp/xx.log

linux学习笔记--文件的更多相关文章

  1. Linux学习笔记—文件与文件系统的压缩与打包(转载)

    压缩文件的用途与技术 例如,计算机都是以byte单位来计量的,1byte占8bit.如果存储数字1,那么1byte就会空出7bit.采用一定的计算方式,压缩这些空间可以大大降低文件存储. Linux系 ...

  2. Linux 学习笔记 文件权限

    * Linux系统会为各种各样的功能创建不同的用户账户,而这些账户并不是真的用户.这些账户称作系统账户,是系统上运行的各种服务进程访问资源用的特殊账户. 所有运行在后台的服务都需要用一个系统用户账户登 ...

  3. linux学习笔记----文件与目录管理

    一.目录处理命令 cd:切换目录 pwd:显示当前目录 mkdir:新建一个新的目录 rmdir:删除一个空的目录 1)pwd:显示当前目录 pwd [-P] P:显示出当前的路径,而非使用连接(li ...

  4. linux学习笔记-文件相关知识

    我的邮箱地址:zytrenren@163.com欢迎大家交流学习纠错! 一.文件属性 在当前用户家目录下以ls -al命令输出为例: -rw-r--r--     1          renren  ...

  5. linux 学习笔记 文件权限管理篇

    chown chown -R mysql. /usr/local 把/usr/local/以及其下的所有的文件和子目录属主改为mysql ls -al * <---用这条命令查询 chgrp c ...

  6. Linux学习笔记-文件处理和权限命令

    目录 文件处理命令 touch cat tac more less head tail 链接命令 ln 权限命令 chmod 权限管理命令 chown chgrp umask 文件处理命令 touch ...

  7. Linux学习笔记 -- 文件包含

    简述 简单来讲,shell 中的文件包含指的是在一个文件中引用另外一个文件.通过这种方式,我们可以将一些公用的代码封装为一个独立的文件,并在需要的时候引用它即可. 语法 . filename # 注意 ...

  8. Linux学习笔记--文件夹结构

    暂时先上一张图学习吧,先大致了解好,再进行深入的学习.

  9. Linux学习笔记(7)CRT实现windows与linux的文件上传下载

    Linux学习笔记(7)CRT实现windows与linux的文件上传下载 按下Alt + p 进入SFTP模式,或者右击选项卡进入 命令介绍 help 显示该FTP提供所有的命令 lcd 改变本地上 ...

随机推荐

  1. (Array)169. Majority Element

    Given an array of size n, find the majority element. The majority element is the element that appear ...

  2. 01-C#入门(调试和错误处理)

    老实说,这一章没有什么要写的,很多都是实操性的东西. 调试方法 可以使用Debug.WriteLine().Trace.WriteLine()输入调试信息到窗体下的输出窗口,不过没怎么用过,比较有用的 ...

  3. Android单元测试与模拟测试详解

    测试与基本规范 为什么需要测试? 为了稳定性,能够明确的了解是否正确的完成开发. 更加易于维护,能够在修改代码后保证功能不被破坏. 集成一些工具,规范开发规范,使得代码更加稳定( 如通过 phabri ...

  4. python 实现树结构的打印

    class TreeNode: def __init__(self,value): self.children = [] self.value = value def add_child(self,* ...

  5. AES加密算法实现

    AES算法是一种对称加密算法,是美国国家标准技术研究所NIST旨在取代DES的21世纪的加密标准. 下文实例中,密钥采用了直接写死的方式,实际使用中可以配合RSA加密算法加密密钥,从而达到更好的安全效 ...

  6. Android 软引用

    2013-08-13 13:56 佚名 eoe Android开发者社区 字号:T | T   可能对于Android开发者来说,软引用这个词有的会不是很熟悉,软引用在Java开发中用的比较多,但是, ...

  7. ant批量执行Jmeter脚本

    JDK,Jmeter默认已经装了 ANT下载:http://ant.apache.org/bindownload.cgi ant环境变量需要配置 ant_home,你解压之后的地址 然后PATH环境变 ...

  8. socket 网络编程

    1. 基础socket库 socket.h: /** * 网络套接字库 */ #ifndef Socket_h #define Socket_h #include <stdio.h> #i ...

  9. (windows)mongoDB3X+Robomongo的安装与基础配置

    一开始安装的时候还觉得很简单真正装了时候发现网上的资料参差不齐再次整理一份安装方法 ---------------------------------------------------------- ...

  10. echarts学习网站

    echarts : http://echarts.baidu.com/echarts2/doc/example.html 相关脚本学习网站:http://www.jb51.net/html/list/ ...