一、shell如何处理命令

  • 1.shell会根据在命令中出现的空格字符,将命令划分为多个部分
  • 2.判断第一个字段是内部命令还是外部命令
  1. 内部命令:内置于shell的命令(shell builtin
  2. 外部命令:通过安装其他应用程序或服务而安装来的命令
  3.  
  4. 路径:为了查找或定位某个文件所必需经过的目录的层次结构
  5. 相对路径:从工作目录开始查找的路径
  6. . 当前的工作目录
  7. .. 当前的工作目录的父目录
  8. 根的父目录还是根
  9. 绝对路径:从根(/)开始查找的路径
  10.  
  11. 变量:内存空间
  12. 变量值:存放在内存空间中的数据
  13. 空变量:NULL
  14. 环境变量PATH(路径),绝对路径:PATH=PATH1:PATH2:PATH3:...
  • 3.判断其他的字段是选项还是参数,判断正确与否,如果正确就执行,如果错误就返回错误信息
  • 4.在命令书写过程中按回车键将书写的内容提交给shell执行
  • 5.如果想要在提交shell之前取消命令就用ctrl+C

二、文件查看,操作

帮助类
man,help,info,whereis,which,whatis
目录操作类
ls,pwd,cd,mkdir,rmdir
文件操作类
nano,touch,rm,cp,mv,stat
文件查看类
cat,tac,head,tail,less,more
文本处理
cut,sort,uniq,tr,sed,awk

1、查看

  • ls-->list
  1. 列表显示目录的内容
  2. 用法:
  3.  
  4. ls [OPTION]... [FILE]...
  5. []:可选的内容
  6. {}:必选的内容
  7. |:多选一
  8.  
  9. 默认的参数就是工作目录
  10.  
  11. 选项:
  12.  
  13. -l: 长格式输出
  14. -rw-------. root root May : anaconda-ks.cfg
  15.  
  16. 第一位表示文件的类型:
  17. -:表示普通文件(ffile
  18. b:表示块设备文件(block
  19. c:字符设备文件(charact
  20. d:目录文件
  21. l:符号链接文件(symbol link
  22. p:管道文件(pipe
  23. s:套接字文件(socket
  24. 第二到第十位:文件的权限位,三组权限位,每组包括三个权限字符,rwx,读写执行。若没有权限就使用-代替
  25. 第二段的数字1:表示文件被硬链接的次数
  26. 第三段:文件的所有者,root
  27. 第四段:文件见的所属组,root
  28. 第五段:文件的大小,默认以byte为单位进行显示
  29. 第六段:时间戳(访问时间,修改时间,改变时间)
  30. 访问时间:access timestamp
  31. 修改时间:modified timestamp(改的是数据内容,对数据的内容进行编辑,叫修改)
  32. 改变时间:change timestampmetadata,元数据,对元数据的编辑叫改变)
  33. 第七段:文件名
  34. linux中,以.字符作为文件名第一个字符的文件,就是隐藏文件
  35.  
  36. -a 显示所有文件,包括隐藏文件
  37.  
  38. -A: 显示所有文件,包括隐藏文件,但不包括.和..
  39.  
  40. -h 以人类方便读的方式显示
  41.  
  42. -d 以文件夹的属性代替内部子文件的属性输出
  43.  
  44. -r 倒序显示
  45.  
  46. -R 递归显示(recursive
  47.  
  48. -Z 显示文件安全上下文
  • cat
  1. 查看文件
    -n:给所有行编号
  2. -b: 不对空白行编号
    tac cat的倒序显示
  • head
  1. 从头开始查看,默认前十行
  2. head -n :查看前三行 还可以直接写成 head -
  3. head -c :查看50字节
  4. head -c 1b:查看一个扇区512字节的内容
  • tail
  1. 从结尾开始查看。选项类比head
  2. -f :实时监控的文件末尾的内容变化
  • more
  1. 分页显示文件内容 只能往后看
  • less
  • whereis
  1. 显示命令的二进制文件,帮助手册路径
  • which
  1. 查看文件在哪,只显示二进制文件路径
  • whatis
  1. 只显示帮助手册路径
  • stat
  1. 查看文件属性(访问时间,修改时间,改变时间)

2、目录操作

  • pwd

显示工作目录(绝对路径)默认的工作目录是/root,root用户的家(宿主目录),默认用户登录的第一个目录就是宿主目录

  • cd

切换工作目录
如果没有参数,那么默认的参数是用户的宿主目录
cd ~ :切换到宿主目录
cd - :切换到上一次使用的工作目录

  • mkdir

创建目录

  1. mkdir [OPTION]... DIRECTORY...
  2. 选项: -p :在创建子目录之前,先创建父母录
  3. -v :显示创建文件夹详细的过程
  4. 命令展开功能,使用{},中间用逗号分隔
  • rmdir

删除目录(只能删除空目录)若一个目录只有.和..,那么就认为这个目录为空
rmdir [OPTION]... DIRECTORY...

  • rm

移除

  1. rm [OPTION]... FILE...
  2. 选项:-r:可以删除目录
  3. -f:强制删除
  • type

区分命令为内部命令还是外部命令

  1. 获得帮助
  2. 内部命令:help 内部命令
  3. 外部命令:
  4. man 外部命令
  5. info
  6. --help

3、文件编辑

  • echo

-n:不输出换行符号
-e:使得反斜杠生效

  • nano
  1. 文本编辑工具,增强版的pico
  2. ^:脱字符
  3. .一般在编辑模式中相当于ctrl
  4. .在其他的用途中,有不同的意义,如:可以取反,可以表示行首
  5. 默认有换行符,一个换行符相当于一个字节
  6. ctrl+o保存
  7. ctrl+x退出
  • touch

改变文件的时间戳。当文件不存在时,会创建文件
-a:只修改文件的访问时间
-m:只修改文件的修改时间
-c:不创建文件

4、时间命令

  • clock

硬件时间

  • date

系统时间

  1. 设置时间:
  2. .date 月日时分年.秒
  3. date
  4. Thu Sep :: CST
  5. .date -s ”年/月/日 时:分:秒”
  6. date -s "2015/09/17 15:32:11"
  7. Thu Sep :: CST
  8. .date +%Y
  • hwclock
  1. RTC:实时时钟
  2. -s 把硬件时间同步到系统时间
  3. -w 把系统时间同步到硬件时间
  4.  
  5. touch的时间默认来源于系统时间
  • bc  计算器
  • cal:日历

5、文本处理

  • cut
  1. remove sections from each line of files
  2. -d 指明分隔符号,默认空格
  3. -f 指明操作区域 -f 第一列
  4. egcut -d : -f /etc/passwd
    cut -d : -f 7 /etc/passwd | sort | uniq -c
  • sort
  1. sort lines of text files 排序,默认顺序ASCII编码
  2. -n 按数字大小排列,从小到大
  3. -r 倒序
  4. -t 指明分隔符号
  5. -k 指明操作区域
  6. -u 如果存在多个重复的内容则显示为一行,相当于uniq命令
  7.  
  8. sort -n -t : -k /etc/passwd
  • uniq
  1. 类似于 sort -u
  2. -c :统计连续的重复行的数量
  3. -u :只输出唯一的行,(不连续重复出现的)
  • tr
  1. 字符集转换
  2. tr 'ab' 'AB' < /etc/passwd 对位替换
  • wc
  1. 字计数器
  2. wc - print newline, word, and byte counts for each file
  3. -l 只显示行数
  4. -w 只显示字数
  5. -c 只显示字符数
  6. wc /etc/passwd
  7. /etc/passwd

三、文件类型介绍

  • 通过颜色来区分文件类型

黑色或白色:普通文件
黄色:设备文件
深蓝色:目录文件
浅蓝色:符号链接
棕色:管道
紫色:套接字文件
红色:软件包,压缩包
绿色:可执行文件FI

file命令 查看文件类型

FHS:文件系统层级标准

/:根目录
/bin:通常存放普通的命令,这些命令可以被所有用户执行,二进制文件
/sbin:超级用户的bin,通常存放管理类命令,只有root才可以执行
/boot:存放着跟系统启动有关的文件,引导系统的程序,内核,ramfs镜像
/dev:存放设备文件目录

  1. 每个设备文件都有俩个设备号:主设备号,次设备号
  2. 主设备号:当前设备所使用的驱动程序的数字编号,MAJOR
  3. 次设备号:使用相同驱动程序的不同设备编号,MINO
  4.  
  5. 设备文件又分为两类:
    块设备文件:用于进行数据的存储和交换的设备,随机访问,比如:硬盘,光驱,内存
    字符设备文件:用于进行数据的传输和处理的设备,线性访问,比如:网卡,总线,键盘

/etc:配置文件
/home:所有普通用户的家目录的根目录,每个用户的家目录名称都默认与用户名相同,
但是此目录不包括root用户的家目录
/root:root用户的家目录,宿主目录
/lib:库文件存放目录
/lib/modules:内核专用的库

  1. 库文件分为两类:
  2. 静态库:.a
  3. 动态库:.so
  4. 内核专用库:.ko
  5.  
  6. ldd 查看命令用了哪些库

/media:挂载点,常用块文件的默认挂载点,光驱、硬盘、软驱等设备的默认挂载点
/mnt:挂载点,常用的其他外部设备的自定义挂载点
挂载点:用来链接或者存放分区的文件夹
/proc:伪文件系统,内存信息中的映射
/sys:伪文件系统,将/proc里面的有关硬件设备的信息进行映射
/tmp:临时文件夹,缓存数据的存放地
/var:可变化的文件,如:日志、文件锁等
/usr:通用共享资源,第三方软件的安装目录
/usr/bin
/usr/sbin
/usr/etc
上述目录一般是安装二进制软件包时候使用的

/usr/local/etc/
/usr/local/bin
/usr/local/sbin
上述目录一般是编译源代码安装软件包时候使用的

四、文件权限

  • DAC:自主访问控制

  1. 文件 目录
  2. r:读 获得文件的内容 查看目录中的文件
  3. w:写 编辑文件的内容 创建,修改删除文件名
  4. x:执行 将文件当作命令执行 可以进入,引用目录,查看详细信息
  5.  
  6. rwxrwxrwx
  7. 第一段:所有者权限
  8. 第二段:所有组权限
  9. 第三段:其他人权限
  • chmod 修改指定文件的权限位值

  1. chmod 权限位值 文件名
  2. 权限位值有两种表示方式:
  3. 符号标识:
  4. 权限位标识:
  5. u:表示所有者
  6. g:所属组
  7. o:其他人
  8. au+g+o
  9. 赋值标识:
  10. +:在原有的权限基础上添加新的权限
  11. -:在原有的权限基础上删除权限
  12. =:不管原有的权限如何,直接设定新的权限
  13. 权限标识:
  14. r w x
  15. 举例:
  16. chmod u+x textfile 在原有的权限基础上给所有者添加执行的权限
  17. chmod g+x,o+x textfile
  18. chmod a+x textfile 可以写成 chmod +x textfile
  19.  
  20. 数字标识:
  21. r
  22. w:
  23. x: 1
    r-x5
  24.  
  25. chmod 500 testfile
  26.  
  27. 若使用符号标识法,可以针对某个权限位单独设置
    使用数字标识法,必须完整的写出三个权限位的权限值
  • umask 权限遮罩码 002 022

  1. 创建新的目录,目录的默认权限 -umask
  2. 创建新的文件,文件的默认权限 -umask
  3. 注意:
  4. 文件的最高权限为666,目录的最高权限是777
  5. 权限不能使用数字进行换算,必须使用字母;
  6. umask定义的权限是系统默认权限准备丢弃的权限
  1. Umask的来源
  2. cat /etc/bashrc
  3. f [ $UID -gt ] && [ "`id -gn`" = "`id -un`" ]; then
  4. umask
  5. else
  6. umask
  7. fi
  • chown 改变文件的所有者和所属组

  1. -R 递归修改目录的所有权以及目录中子文件、子目录的所有权
  2. chown USERNAME FILE 只修改文件的所有者
  3. chown :GROUPNAME FILE 只修改文件的所属组
  4. chown USERNAME: FILE 同时修改文件的所有者和所属组,所属组就是用户的主要组
  5. chown USERNAME:GROUPNAME FILE 修改文件的所有者和所属组,所有者是USERNAME,所属组是GROUPNAME
  • chgrp 改变文件的所属组

  • facl 文件系统访问控制列表,对于权限的扩展属性的设定

  • getfacl 查看文件的扩展属性列表
    setfacl 设置文件的扩展属性列表

  1. -m:修改
  2. setfacl -m u:UID或用户名:权限 FILE
  3. setfacl -m g:GID:权限 FILE
  4. -x:撤销修改
  5. setfacl -x u:UID FILE
  6. setfacl -x g:GID FILE
  1. 特殊权限
  2. SUID:超级用户权限 sS (出现在所有者的执行权限位置)
  3. SGID:超级组权限 sS (出现在所属组的执行权限位置)
  4. Sticky:粘滞位 tT (出现在其他人的执行权限位置)
  5. 如果在设置特殊权限位之前,文件具有执行权限,那么特殊权限就是小写字母,反之大写字母
  6.  
  7. 文件 目录
  8.  
  9. SUID 在执行一个具有SUID命令时,执行者会 没有意义
  10. 以该命令的所有者身份来执行
  11. SGID 在执行一个具有SGID命令时,执行者会 具有这样权限的目录,在其中
  12. 以该命令的所属组身份来执行(几乎不用) 建立的所有文件,所属组自动继承目录的所属组
  13. Sticky 没有意义 如果用户对于一个有sticky权限的目录有写权限,用户只能修改
  14. 那些所有者为自己的文件

补充:

  • ln:创建链接文件,默认创建硬链接

  1. 链接文件的类型:
  2. 硬链接:
  3. 一个文件的多个文件名
  4. 软连接(符号链接):快捷方式(访问路径)
  5. -s:创建符号链接
  6. -v:显示链接创建过程
  7. 注意:创建链接时,最好写绝对路径

【linux之文件查看,操作】的更多相关文章

  1. 【linux之文件查看,操作,权限管理】

    一.shell如何处理命令 1.shell会根据在命令中出现的空格字符,将命令划分为多个部分 2.判断第一个字段是内部命令还是外部命令 内部命令:内置于shell的命令(shell builtin) ...

  2. linux 设备文件的操作

    文件:包含数据,具有属性,通过目录中的名字被标识, 可以从文件读数据,可以向文件写数据. 设备也支持文件的操作. 每个设备都被当作一个文件,具有文件名,i-节点号,文件所有者,权限位的集合,最新修改时 ...

  3. Linux命令-文件文本操作grep

    文件文本操作 grep 在文件中查找符合正则表达式条件的文本行 cut 截取文件中的特定字段 paste 附加字段 tr 字符转换或压缩 sort 调整文本行的顺序,使其符合特定准则 uniq 找出重 ...

  4. Linux 基本操作--文件查看 (day3)

    一.查看文件-----cat (详情参考:http://blog.sina.com.cn/s/blog_52f6ead0010127xm.html) 语法结构: cat 查看方式 文件 cat  -A ...

  5. linux中普通的文件查看操作(cat、more、less、head、tail)

    cat:基本是最常用的查看文件内容的linux命令. more 也是用来查看一个文件的内容.当文件内容太多,一屏幕不能占下,而你用cat肯定是看不前面的内容的,那么使用more就可以解决这个问题了.当 ...

  6. Linux命令文件查看过滤

    Linux命令篇 1.查看一个文件的后100行的命令: tail -n 100 Linux下查看文件前几行一般用head -n xx,查看后面几行用tail -n xx.除此之外,还有: tail - ...

  7. Linux日志文件查看和搜查命令(错误日志排查定位)

    一.cat命令 cat 命令用于连接文件并打印到标准输出设备上,主要用来查看文件内容,创建文件,文件合并,追加文件内容等功能. 语法格式 cat [-AbeEnstTuv] fileName 参数说明 ...

  8. linux 日志文件查看

    记录下日志中常用的日志查看命令. 1.  tail -n 10 -f  **.log 显示日志文件尾部10行日志,当有新日志产生,会追加显示. 2. tail 命令 现ff.sh中有如下信息: [ro ...

  9. linux~大文件相关操作的总结

    1.生成指定大小的文件 在当前目录下生成一个50M的文件: dd if=/dev/zero of=50M.file bs=1M count=50  truncate -s 2G ~/big.log.t ...

随机推荐

  1. SpringMVC框架学习笔记(4)——结果跳转方式

    1.设置ModelAndView对象.根据View和视图解析器跳转到指定页面(视图解析器前缀+viewname+视图解析器后缀) @Override public ModelAndView handl ...

  2. css3滤镜Filter使用

    Filter主要用于图片,SVG等元素上,其默认值是none,有以下10个filter-function值可选: grayscale(灰度)效果类似于PS中的去色或者黑白 blur(模糊)效果类似于P ...

  3. windows下github 出现Permission denied (publickey).解决方法

    今天在学习github的时候遇到了一些问题,然后爬了一会,找到了解决方法记录下来,以防忘记,当然能帮助别人最好啦! github教科书传送门:http://www.liaoxuefeng.com/wi ...

  4. ExtJS是一种主要用于创建前端用户界面,是一个基本与后台技术无关的前端ajax框架。

    ExtJS是一种主要用于创建前端用户界面,是一个基本与后台技术无关的前端ajax框架.

  5. SpringMVC图片上传与显示

    @RestController @Scope("prototype") @RequestMapping("/xxxx/xxx/main") public cla ...

  6. mysq开启慢查询

    1 将未建立索引的sql放到慢查询日志中 查看 log_queries_not_using_indexes 是否为on show variables like 'log%'; 将 log_querie ...

  7. intellij-项目目录隐藏无用的文件和文件夹

    File-->Editor-->File Types

  8. 通过psping测试结果,初步判断远端服务器的状态

    1.psping的输出结果为如下正常显示时,说明远端服务器的IP及端口可用 C:\Users\he.liming>psping 139.219.66.205:4352 PsPing v2.10 ...

  9. CSS深入理解学习笔记之line-height

    1.line-height的定义 定义:两行文字基线之间的距离. 注:不同字体之间的基线是不同的. 2.line-height与行内框盒子模型 行内框盒子模型: ①内容区域(content area) ...

  10. Linxu指令--date,cal

    在linux环境中,不管是编程还是其他维护,时间是必不可少的,也经常会用到时间的运算,熟练运用date命令来表示自己想要表示的时间,肯定可以给自己的工作带来诸多方便. 1.命令格式: date [参数 ...