hexdump -C f1 查看文件里面的16进制的显示,
linux和win的记事本二进制格式是不同的,这样就会有些人把在windwos上面写好的脚本文档,直接移动到linux上面来,shell脚本没有问题,但是总是报错,这就是二进制格式不同造成的,我们可以通过一个命令doc2unix来在不同系统上面转换文档
[[email protected] tmp]# cat abc 这个abc是在linux上面建立的正常文档
a
b
c
我们通过hexdump可以查看文件里面每一个字符的16进制的显示信息
[[email protected] tmp]# hexdump -C abc
00000000 61 0a 62 0a 63 0a |a.b.c.|
00000006
这里的0000006代表的是偏移量 其中61是a 62是b 63是c 其余的0a代表换行符
下面将这个abc转移成windows上面正常的txt文档
使用命令 unix2dos abc 这个命令明显可以看得出unix to dos 由linux转移成windows格式的文件
[[email protected] tmp]# unix2dos abc
unix2dos: converting file abc to DOS format ...
[[email protected] tmp]# hexdump -C abc
00000000 61 0d 0a 62 0d 0a 63 0d 0a |a..b..c..|
00000009
同一个文档,windows格式的ASCII文件明显与linux不同
同样上面的一串0以及尾部的9代表的是偏移量,可以看出windows上面的ASCII还是有很大不同的,尤其是换行,windows上面是 od oa 的
如果想把win上面的文件转译成linux上面的ASCII上面的文档
使用命令 dos2unix 明显可以看出dos to unix
[[email protected] tmp]# dos2unix abc.txt
dos2unix: converting file abc.txt to UNIX format ...
windows和linux装换的文本工具:上面我们已经说了是
unix2dos 和 dos2unix
之后通过hexdump -C Filename 查看字符格式
reset 当屏幕出现乱码的情况的时候,执行这个命令可恢复正常
快捷键:
crtl+l 清屏
crtl+c 取消命令的执行
crtl+a 将光标移动到命令的最前面
crtl+e 将光标移动到命令的最后面
crtl+u 删除光标前的多有字符
crtl+k 删除光标后的所有字符
crtl+b 左移动一个位置
crtl+f 光标向右移动一个字符
esc 松手 按b 向左移动一个单词
esc 松手 按f 向右移动一个单词
图形化的终端的快捷键
ctrl+shift +t 打开一个新的终端
w 退出当前一个
q 退出所有终端
crtl+PgUp/PgUn 切换到下一个/上一个标签页
crtl+shift+c 复制选中文本
crtl_shift+v 粘贴到光标后
文件管理 www.pathname.con/fhs下载帮助文档
文件系统是文件在系统上的存方式,是硬盘存储数据的范式
fat 不支持单个文件大于4G,不支持加密、压缩
ntfs 支持
文件结构 (文件分成结构 LSB: linux standard base)
FHS文件系统分层标准
/ 整个文件系统的起始
/bin 系统最基本的程序,二进制程序
/sbin 管理员的基本程序
/boot 存放启动程序,入内和vmlinuz..
/dev 设备 b块文件,摸得着的设备,具有缓存
c 字符设备,线性,顺序读写,是逻辑的设备,没有缓存
/etc 配置文件
opt /opt相对应的配置文件
X11 桌面
sgml 标记语言
/lib 库,程序运行时需要的共享库,在7上是lib64
/media 移动设备挂载点
/mnt 临时文件系统的挂在点
/opt 第三方软件的安装目录
/srv 服务器的数据
/tmp 临时文件,系统自动清除
/usr 小系统,大部分数据在这里面,
bin 保证系统拥有完整功能而提供的应用程序,在7版本上二进制程序是这个位置,/bin软连接到这个位置
sbin /sbin软连接到这个位置,管理的二进制程序
lib 32位使用的库 /lib 软连接到这个位置
lib64 只存在64位系统上面 /lib64软连接到这个位置
include C程序的头文件(header files)
share 结构化独立的数据 如doc,man等
local 第三方程序安装位置,其下的目录有:
bin
sbin
lib
lib64
etc
share
以上都是第三方的软件安装生成的
/var 变化数据,web网页等
cache 应用程序缓存目录
local 为/usr/local下的应用程序存储可变数据
lock 锁文件
log 日志
opt 为/opt下的应用程序存储可变数据
run 运行相关进程数据,常存储进程pid文件
spool 应用程序数据池
tmp 保存系统两次重启之间产生的临时数据
/home
假目录文件
/proc 内存中的一些信息,内存中的分区表,大小为0,是模拟的
process的简称
cat /proc/cpuinfo cpu信息
cat /proc/swaps 交换分区
cat /proc/partions 分区
/sys 存放硬件相关的信息,
/selinux 权限加强linux,安全策略相关的信息存储位置,root是王,也要在这个法律的规范下活动
在7上/usr不可以做挂载点
/usr/sbin, bin是不可以挂载的,是系统启动的过程中就要用的,/usr里面有bin,因此也不支持挂载
版本6和版本7的目录变化为/bin /sbin /lib /lib64
都跑到/usr的目录下面去了
lrwxrwxrwx. 1 root root 7 2月 26 02:04 bin -> usr/bin
dr-xr-xr-x. 4 root root 4096 2月 26 02:09 boot
drwxr-xr-x. 20 root root 3200 5月 13 16:54 dev
drwxr-xr-x. 75 root root 8192 5月 14 02:27 etc
drwxr-xr-x. 5 root root 37 5月 10 22:38 home
lrwxrwxrwx. 1 root root 7 2月 26 02:04 lib -> usr/lib
lrwxrwxrwx. 1 root root 9 2月 26 02:04 lib64 -> usr/lib64
drwxr-xr-x. 2 root root 6 8月 12 2015 media
drwxr-xr-x. 2 root root 6 8月 12 2015 mnt
drwxr-xr-x. 2 root root 6 8月 12 2015 opt
dr-xr-xr-x. 360 root root 0 5月 13 16:54 proc
dr-xr-x---. 4 root root 4096 5月 14 02:43 root
drwxr-xr-x. 22 root root 620 5月 13 16:54 run
lrwxrwxrwx. 1 root root 8 2月 26 02:04 sbin -> usr/sbin
drwxr-xr-x. 2 root root 6 8月 12 2015 srv
dr-xr-xr-x. 13 root root 0 5月 13 16:54 sys
drwxrwxrwt. 12 root root 4096 5月 14 03:21 tmp
drwxr-xr-x. 13 root root 4096 2月 26 02:04 usr
drwxr-xr-x. 19 root root 4096 5月 13 16:54 var
linux上的应用程序的组成部分
二进制程序
/bin
/sbin
/usr/bin
/usr/sbin
/usr/local/bin
/usr/local/sbin
库文件:
/lib
/lib64
/usr/lib
/usr/lib64
/usr/local/lib
/usr/local/lib64
配置文件:
/etc
/etc/Diectory
/usr/local/etc
帮助文件:
/usr/share/man
/usr/share/doc
/usr/local/share/man
/usr/local/share/doc
linux下的文件类型
- 普通
p 管道
l 软连接
b 块
c 字符
s 套接字
d 目录
使用file File_name 去查看文件的类型
定义文件,文件名命令规则
包括路径在内文件命长对为4095个字节,用/分隔的路径不能超过255个字节
不能用 / 作为文件里面的名字字符
文件名一般区分大小写,这是和文件系统有关的xfs为区分大小写(fat不区分大小写)
当文件名就叫 -a 的时候,就需要使用绝对路径或者相对路径了
df -T 显示样式
[[email protected] ~]# df -T
文件系统 类型 1K-块 已用 可用 已用% 挂载点
/dev/mapper/centos-root xfs 18307072 922400 17384672 6% /
devtmpfs devtmpfs 490452 0 490452 0% /dev
tmpfs tmpfs 500668 0 500668 0% /dev/shm
tmpfs tmpfs 500668 6828 493840 2% /run
tmpfs tmpfs 500668 0 500668 0% /sys/fs/cgroup
/dev/sda1 xfs 508588 125600 382988 25% /boot
tmpfs tmpfs 100136 0 100136 0% /run/user/0
pwd 显示当前用户工作的目录
PWD 当前的共组目录
OLDPWD 上一个工作目录
相对路径
绝对路径
cd ~wang 到隔壁老王家
ls list列出目录内容
-r 按照字母逆序显示
-1 数字1,一个文件一行显示
-S 大S排序,以文件大小排序
-U 就是按照文件存储的顺序来排序
-u 按照修改时间排序
-X 按照文件的扩展名来排序
-i 显示inode的数量
-ld 目录和符号链接的信息
-R 递归显示
-a 显示隐藏文件
-l 显示更多的信息
文件通配符
* 0或多个任意字符
? 1个任意字符,必须有一个字符,不能为空
~zou zou的家目录
~+ 当前目录,相当于.
~- 前一个目录
[1-3] 1到3的一个个数
[13] 1或者3
[12][34] 笛卡尔乘积,但是{12}{34}不用的是,后者必须要有,前者没事
[a-z] aAbBcCdD....xXyYz 在这里面是这样排序的大写和小写字母,少一个Z
[A-Z] AbBcC.....yYzZ 少一个a
预定义的字符: man 7 glob
[:digit:] 数字
[:lower:] 小写字母
[:upper:] 大写字母
[:alpha:] 字母
[:alnum:] 字母和数字
[:space:] 空格
[:punct:] 标点符号
元数据netadata:
在系统当中记录文件的,使用ll显示出来的东西就是元数据:权限,所有者(数主,属组),文件大小,创建时间
文件元数据的时间
--atime 访问时间,文件最后一次读时间,默认读取,如使用了cat命令查看
--ctime 状态更改时间,文件属性,文件空间大小,文件名等 如chmod chown mv改名,移动位置,
--mtime 修改改动时间,就是利用vim echo sed等编辑了这个文件,使这个文件里面的内容与以前不一样,
当我们使用vim编辑了文件,它的atime,ctime和mtime会同时发生变化,atime在你进入编辑界面发生变化,之后编辑完成之后,保存退出ctime和mtime再变化,如果只是vim进去,直接q退出,那么只有atime变化
当使用echo 增加文章里面的内容,只有ctime和mtime变化
web服务器上面禁用--atime可以提高近5%的性能
默认显示文件内容的时间,
ll --time=atime /etc/issu 这里的atime可以换成另两个
state File_name 查看文件的三个时间
[[email protected] ~]# ll --time=atime test
-rw-r--r--. 1 root root 0 5月 13 19:46 test
[[email protected] ~]# stat test
File: "test"
Size: 0 Blocks: 0 IO Block: 4096 普通空文件
Device: fd00h/64768d Inode: 134651 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2016-05-13 19:46:57.714519785 +0800
Modify: 2016-05-13 19:46:57.714519785 +0800
Change: 2016-05-13 19:46:57.714519785 +0800
touch 如果文件名没有存在将会新建文件,如果文件存在,将会把3个时间给刷新了
-a 仅修改atime ctime也会同时变化
-m 修改mtime ctime也会同时变化
-t [[CC]yy]MMDDhhmm[.ss] 时间格式
-c 如果文件不存在,不会创建,只刷新那三个时间
touch -t 201608081000.30 --time=mtime test 年月时分秒 修改test文件的mtime
> file_name 新建一个文件,会刷新时间,如果文件存,则会覆盖
>> file_name 可以新建一个目录,不会刷新时间,慎用,文件存在就附加
cp copy文件
格式:
cp option [-T] source dest
cp /etc/issue /mnt/a
cp option source directory
cp /etc/issue /tmp/a /mnt
cp option -t directory source
cp -t /mnt /etc/issue /tmp/a 源和目的反过来
src是文件,如果目标不存在,新建dest,并将src中内容填充至dest中
如果目标文件存在,
1.dest为文件,这个时候源只能有一个,src中的内容会覆盖dest当中的内容,当然这个需要再经过你同意,敲了y之后才会覆盖,当然普通用户不会,你可以处于安全考虑使用cp -i 命令别名
2.如果dest是个目录,的dest下面新建一个src一样的文件名的文件,并将src中内容填充进去,这时源文件可以是多个