一、shell如何处理命令

  • 1.shell会根据在命令中出现的空格字符,将命令划分为多个部分
  • 2.判断第一个字段是内部命令还是外部命令
内部命令:内置于shell的命令(shell builtin)
外部命令:通过安装其他应用程序或服务而安装来的命令 路径:为了查找或定位某个文件所必需经过的目录的层次结构
相对路径:从工作目录开始查找的路径
. 当前的工作目录
.. 当前的工作目录的父目录
根的父目录还是根
绝对路径:从根(/)开始查找的路径 变量:内存空间
变量值:存放在内存空间中的数据
空变量:NULL
环境变量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
列表显示目录的内容
用法: ls [OPTION]... [FILE]...
[]:可选的内容
{}:必选的内容
|:多选一 默认的参数就是工作目录 选项: -l: 长格式输出
-rw-------. root root May : anaconda-ks.cfg 第一位表示文件的类型:
-:表示普通文件(f,file)
b:表示块设备文件(block)
c:字符设备文件(charact)
d:目录文件
l:符号链接文件(symbol link)
p:管道文件(pipe)
s:套接字文件(socket)
第二到第十位:文件的权限位,三组权限位,每组包括三个权限字符,rwx,读写执行。若没有权限就使用-代替
第二段的数字1:表示文件被硬链接的次数
第三段:文件的所有者,root
第四段:文件见的所属组,root
第五段:文件的大小,默认以byte为单位进行显示
第六段:时间戳(访问时间,修改时间,改变时间)
访问时间:access timestamp
修改时间:modified timestamp(改的是数据内容,对数据的内容进行编辑,叫修改)
改变时间:change timestamp(metadata,元数据,对元数据的编辑叫改变)
第七段:文件名
在linux中,以.字符作为文件名第一个字符的文件,就是隐藏文件 -a: 显示所有文件,包括隐藏文件 -A: 显示所有文件,包括隐藏文件,但不包括.和.. -h: 以人类方便读的方式显示 -d: 以文件夹的属性代替内部子文件的属性输出 -r: 倒序显示 -R: 递归显示(recursive) -Z: 显示文件安全上下文
  • cat
查看文件
-n:给所有行编号
-b: 不对空白行编号
tac cat的倒序显示
  • head
从头开始查看,默认前十行
head -n :查看前三行 还可以直接写成 head -
head -c :查看50字节
head -c 1b:查看一个扇区512字节的内容
  • tail
从结尾开始查看。选项类比head
-f :实时监控的文件末尾的内容变化
  • more
分页显示文件内容 只能往后看
  • less
  • whereis
显示命令的二进制文件,帮助手册路径
  • which
查看文件在哪,只显示二进制文件路径
  • whatis
只显示帮助手册路径
  • stat
查看文件属性(访问时间,修改时间,改变时间)

2、目录操作

  • pwd

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

  • cd

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

  • mkdir

创建目录

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

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

  • rm

移除

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

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

获得帮助
内部命令:help 内部命令
外部命令:
man 外部命令
info
--help

3、文件编辑

  • echo

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

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

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

4、时间命令

  • clock

硬件时间

  • date

系统时间

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

5、文本处理

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

三、文件类型介绍

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

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

file命令 查看文件类型

FHS:文件系统层级标准

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

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

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

库文件分为两类:
静态库:.a
动态库:.so
内核专用库:.ko 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:自主访问控制

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

chmod 权限位值 文件名
权限位值有两种表示方式:
符号标识:
权限位标识:
u:表示所有者
g:所属组
o:其他人
a:u+g+o
赋值标识:
+:在原有的权限基础上添加新的权限
-:在原有的权限基础上删除权限
=:不管原有的权限如何,直接设定新的权限
权限标识:
r w x
举例:
chmod u+x textfile 在原有的权限基础上给所有者添加执行的权限
chmod g+x,o+x textfile
chmod a+x textfile 可以写成 chmod +x textfile 数字标识:
r:
w:
x: 1
r-x:5 chmod 500 testfile 若使用符号标识法,可以针对某个权限位单独设置
使用数字标识法,必须完整的写出三个权限位的权限值
  • umask 权限遮罩码 002 022

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

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

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

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

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

补充:

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

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

【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. 拿到List<Map<String,String>>对用属性的值。。。。。。。

    list.get(i).get("orderNumber") 来拿到下面的对应属性的值

  2. 设置Sql server用户对表、视图、存储过程、架构的增删改查权限

    根据数据库Schema限制用户对数据库的操作行为 授予Shema dbo下对象的定义权限给某个用户(也就是说该用户可以修改架构dbo下所有表/视图/存储过程/函数的结构) use [Your DB N ...

  3. 非阻塞式的原子性操作-CAS应用及原理

    一:问题抛出 假设在出现高并发的情况下对一个整数变量做依次递增操作,下面这两段代码是否会出现问题? 1. public class IntegerTest { private static Integ ...

  4. JS高级用法

    1.重复定时器 setTimeout(function() { // 处理中 setTimeout(arguments.callee, 1000); }, 1000) 这种模式链式调用了 setTim ...

  5. html dl dt dd标签元素语法结构与使用

    dl dt dd认识及dl dt dd使用方法 标签用于定义列表类型标签. dl dt dd目录 dl dt dd介绍 结构语法 dl dt dd案例 dl dt dd总结 一.dl dt dd认识 ...

  6. destoon各栏目调用汇总

    ================================================================== destoon各栏目调用汇总 ================== ...

  7. webpack模块机制浅析【一】

    webpack模块机制浅析[一] 今天看了看webpack打包后的代码,所以就去分析了下代码的运行机制. 下面这段代码是webpack打包后的最基本的形式,可以说是[骨架] (function(roo ...

  8. Mysql执行计划说明

    Mysql执行计划翻译: 官网原文请见http://dev.mysql.com/doc/refman/5.6/en/explain-output.html:5.6 EXPLAIN语句提供有关SELEC ...

  9. i2c总线的oled12864屏的u8x8运用总结

    github网址链接 https://github.com/olikraus/u8g2/wiki/u8x8reference#print 用到的库文件 #ifdef U8X8_HAVE_HW_SPI ...

  10. 两层嵌套list,选取list中最长的list的长度

    # coding=utf-8 import pandas as pd file_path = "test_aa.xlsx" dt = pd.read_excel(file_path ...