文件系统
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. 01-C#入门(函数一)

    只有在动手写代码的时候,才能真正理解到代码的逻辑思想,所以,开始写代码吧. 函数的意义:降低相同功能的代码重复编写,提高重复代码的维护效率. 函数 一个文件由命令空间(namespace).类(cla ...

  2. PHP常用功能

    1.PHP字符串 字符串声明 变量=''或者""(一般情况会使用单引号,因为写起来会比较方便) $str = 'Hello PHP'; echo $str; strpos 计算字符 ...

  3. TCP/IP详解 (转)

    TCP/IP详解学习笔记(1)-基本概念 为什么会有TCP/IP协议 在世界上各地,各种各样的电脑运行着各自不同的操作系统为大家服务,这些电脑在表达同一种信息的时候所使用的方法是千差万别.就好像圣经中 ...

  4. python 2.7 rsa 离线安装 和使用示例

    离线安装方法 http://blog.csdn.net/monsion/article/details/8679847 >>> import rsa >>> (pk ...

  5. U盘快捷方式中毒处理办法

    这是网上某位大神的,对于我这个U盘总中毒的人真的很好用,太开心啦啦 http://blog.csdn.net/jzwong/article/details/51002568

  6. linux 进程的创建

    1. 进程号: 每个进程在被初始化的时候,系统都会为其分配一个唯一标识的进程id,称为进程号: 进程号的类型为pid_t,通过getpid()和getppid()可以获取当前进程号和当前进程的父进程的 ...

  7. HandlerThread和IntentService

    HandlerThread 为什么要使用HandlerThread? 我们经常使用的Handler来处理消息,其中使用Looper来对消息队列进行轮询,并且默认是发生在主线程中,这可能会引起UI线程的 ...

  8. 通过Robocopy+DOS 命令+Windows排程实现自动备份(将特定文件/目录备份至自动创建的以年月日命名的目标目录)

    1. Software Requirement: 1.1.mirror.bat .mirror_SERVICE_BEGIN.mirror_SERVICE_END.robocopy.exe 1.2. C ...

  9. js的倒计时在ie下显示NAN的最佳解决办法

    写了一个倒计时,原代码如下: var times = new Date(); var timesout = new Date("2016-6-7"); var timesg = t ...

  10. DataTable转List<dynamic>

    DataTable转List<dynamic> 最近做的一个项目,MVC+Ado.net.没有ORM很不习惯.找到一个办法,DataTable转List<dynamic>,这样 ...