二、Linux文件系统命令

一、Linux常用文件管理类命令的使用方法

(一)文件目录命令

  • ls [文件或目录] :列出目录

     -a 显示所有文件
     -l 详细信息显示
     -d 查看目录属性
     -h 单位换算后更易阅读,但丢失精度
    
  • cd [目录]:切换目录

     cd ~:切换至自己的家目录
     cd ~USERNAME:切换至指定用户的家目录;
     cd -:在上一次所在目录与当前目录之间来回切换;
     cd ..:切换到上级目录
    
  • pwd:显示目前的目录

  • mkdir [目录名]:创建一个新的目录

     -m :配置文件的权限直接配置,不需要看默认权限 (umask) 
     -p :帮助你直接将所需要的目录(包含上一级目录)递归创建起来
    
  • rmdir [目录名]:删除一个空的目录

     -p:删除某目录后,如果其父目录为空,则一并删除之;
     -v: 显示过程;
    
  • cp [源文件] [目的目录]:复制文件或目录

     -r:复制目录
     -p:连同文件的属性一起复制过去
    
  • mv [源文件或目录] [目的目录]:移动、更名文件或目录

  • rm [源文件或目录] [目的目录]:删除文件或目录

     -f :就是 force 的意思,忽略不存在的文件,不会出现警告信息;
     -i :互动模式,在删除前会询问使用者是否动作
     -r :递归删除,最常用在目录的删除了
    

(二)文件编辑命令

  • touch [文件名]:创建空文件

  • cat [文件名]:由第一行开始显示文件内容

     -n:显示行号
     -E:每行尾显示$
    
  • tac [文件名]:由最后一行开始逆序显示文件内容

  • file [文件名] :判断文件类型

     [root@localhost ~]# file /etc/vimrc
     /etc/vimrc: ASCII text, with escape sequences
    
  • echo [字符串 | $变量]:出字符串或变量提取后的值,例如echo $SHELL

     -e:让转义符生效;
     \n:换行
     \t:制表符
    
  • nl:显示的时候,顺道输出行号

  • more [文件名]:一页一页的显示文件内容

  • less 与 more 类似,但是比 more 更好的是,他可以往前翻页

  • head -num [文件名]:只看头几行

  • tail -num [文件名] :只看尾巴几行

     -f 动态显示
    
  • tr [原始字符] [目标字符]:替换文本文件中的字符

     [root@localhost ~]# cat test.txt 
     hello,world!
     [root@localhost ~]# cat test.txt | tr {a-z} {A-Z}
     HELLO,WORLD!
    
  • ln:产生连接文件

  • ln [源文件] [目的文件]:创建硬链接

  • ln -s [源文件] [目的文件]:创建软连接

     软连接:类似windows快捷方式,可以跨文件系统生成
     硬链接:类似于复制+同步更新,与源文件有相同的iNode,不能跨文件系统生成
    
  • chmod [{ugo}{±=}{rwx}] [文件或目录] 权限修改命令

  • chown [用户] [文件或目录] 改变文件或目录的所有者

  • chgrp [组名] [文件或目录] 改变文件或目录的所属组

  • umask -S 查看默认创建文件的权限,缺省创建的文件没有可执行权限

find [搜索路径] [搜索关键字] 查找文件或目录

		  -name 文件名,可以用*代表匹配任意字符,用?代表匹配任意单个字符
		  -size	文件大小 +204800 查找大于100M的文件
		  -user [用户名]  文件所有者
			时间参数ctime、atime、mtime,天为单位
					 cmin、amin、mmin,分钟为单位
			c-change,改变,表示文件属性被修改过,所有者、所属组、权限
			a-	access,访问,
			m-modify,修改,表示文件内容被修改过
			-之内,+超过
			例如:find /etc -mmin -120  查找120分钟之内etc目录下被修改过的文件
			连接符 -a and逻辑与  -o or 逻辑或
			find …… -exec 命令 {} \;
					-ok (询问确认)
					{} find查询的结构
					\转义符,符号命令使用本身的含义
					;结束
					{} \;是固定格式,不能分开
			例如:find /etc -name inittab -exec ls -l {} /;
			-inum 根据i节点来进行查找
			-type 文件类型 f二进制文件 l软连接文件 d目录
			例如:find /etc -name inittab -a -type f -exec ls -l {} /;
			find . -ium 10  查找i节点是10的文件
  • grep [指定字串] [源文件] 在文件中搜索字串匹配的行并输出

二、命令执行状态返回值
bash通过状态返回值来输出此结果:
成功:0
失败:1-255
命令执行完成之后,其状态返回值保存于bash的特殊变量$?中。

[root@localhost ~]# ls /root
anaconda-ks.cfg  test.txt  webmin
[root@localhost ~]# echo $?
0
[root@localhost ~]# ls /root/1
ls: 无法访问/root/1: 没有那个文件或目录
[root@localhost ~]# echo $?
2
[root@localhost ~]# rm /root/1.txt
rm: 无法删除"/root/1.txt": 没有那个文件或目录
[root@localhost ~]# echo $?
1

三、命令行展开
bash的命令行展开:用{}表示可承载一个以逗号分隔的列表,并将其展开为多个路径
如:/tmp/{a,b}=/tmp/a, /tmp/b
/tmp/{a,b}/c= /tmp/a/c, /tmp/b/c
1.创建/tmp目录下的:a_c, a_d, b_c, b_d

[root@localhost ~]# mkdir /tmp/{a,b}{_c,_d}

2.创建/tmp/mylinux目录下的:
题目

[root@localhost ~]# mkdir -pv /tmp/mylinux/{bin,boot/grub,dev,etc/{rc.d/init.d,sysconfig/network-scripts},lib/modules,lib64,proc,sbin,sys,tmp,usr/local/{bin,sbin},var/{lock,log,run}}
mkdir: 已创建目录 "/tmp/mylinux"
mkdir: 已创建目录 "/tmp/mylinux/bin"
mkdir: 已创建目录 "/tmp/mylinux/boot"
mkdir: 已创建目录 "/tmp/mylinux/boot/grub"
mkdir: 已创建目录 "/tmp/mylinux/dev"
mkdir: 已创建目录 "/tmp/mylinux/etc"
mkdir: 已创建目录 "/tmp/mylinux/etc/rc.d"
mkdir: 已创建目录 "/tmp/mylinux/etc/rc.d/init.d"
mkdir: 已创建目录 "/tmp/mylinux/etc/sysconfig"
mkdir: 已创建目录 "/tmp/mylinux/etc/sysconfig/network-scripts"
mkdir: 已创建目录 "/tmp/mylinux/lib"
mkdir: 已创建目录 "/tmp/mylinux/lib/modules"
mkdir: 已创建目录 "/tmp/mylinux/lib64"
mkdir: 已创建目录 "/tmp/mylinux/proc"
mkdir: 已创建目录 "/tmp/mylinux/sbin"
mkdir: 已创建目录 "/tmp/mylinux/sys"
mkdir: 已创建目录 "/tmp/mylinux/tmp"
mkdir: 已创建目录 "/tmp/mylinux/usr"
mkdir: 已创建目录 "/tmp/mylinux/usr/local"
mkdir: 已创建目录 "/tmp/mylinux/usr/local/bin"
mkdir: 已创建目录 "/tmp/mylinux/usr/local/sbin"
mkdir: 已创建目录 "/tmp/mylinux/var"
mkdir: 已创建目录 "/tmp/mylinux/var/lock"
mkdir: 已创建目录 "/tmp/mylinux/var/log"
mkdir: 已创建目录 "/tmp/mylinux/var/run"
[root@localhost ~]# tree /tmp/mylinux/
/tmp/mylinux/
├── bin
├── boot
│   └── grub
├── dev
├── etc
│   ├── rc.d
│   │   └── init.d
│   └── sysconfig
│       └── network-scripts
├── lib
│   └── modules
├── lib64
├── proc
├── sbin
├── sys
├── tmp
├── usr
│   └── local
│       ├── bin
│       └── sbin
└── var
    ├── lock
    ├── log
    └── run

24 directories, 0 files

三、文件的元数据信息,修改文件的时间戳信息

(一)、元数据信息
元数据包含文件的权限,大小,拥有者,组以及修改时间等信息
(二)、修改文件的时间戳信息

touch [OPTION]... FILE...
		    不跟任何选项a、m、c三个时间戳都会被改成当前时间。
			-c: 指定的文件路径不存在时不予创建;
			-a: 仅修改access time;
			-m:仅修改modify time;
			-t :指定改为某一时刻的时间

四、定义一个命令的别名,在命令中引用另一个命令的执行结果

定义别名:
alias NAME='COMMAND’如果COMMAND之间没有space分隔可以不用‘’
注意:仅对当前shell进程有效,登出再登入就无效了,写入进程中将永久有效。

[root@localhost ~]# type clear
clear 是 /usr/bin/clear
[root@localhost ~]# type cls
-bash: type: cls: 未找到
[root@localhost ~]# alias cls=clear
[root@localhost ~]# type cls
cls 是 `clear' 的别名

撤销别名:
unalias NAME

[root@localhost ~]# unalias cls

命令中引用另一个命令的执行结果:管道
将一个命令的输出传送给另一个命令作为另一个命令的输入

[root@localhost ~]# ps -ef |grep ssh
root       9243      1  0 22:14 ?        00:00:00 /usr/sbin/sshd -D
root       9865   9243  0 22:17 ?        00:00:01 sshd: root@pts/0
root      10786   9867  0 23:51 pts/0    00:00:00 grep --color=auto ssh
[root@localhost ~]# netstat -tunlp | grep httpd
tcp6       0      0 :::80                   :::*                    LISTEN      9246/httpd  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值