Linux文件管理必会的40个常用命令

1.文件管理

1.1 basename
1.1.1功能说明
从文件名中去掉路径
例1.
[root@mysql ~]# basename /etc/hosts
hosts
输出是 hosts

并没有从文件名中去点扩展名
例2
[root@mysql home]# basename ~/hegx.log 
hegx.log

1.1.2 选线

--help  现实帮助信息并离开

--version 显示版本信息并离开

1.2 cat

1.2.1 功能说明
把档案串连接后传到几本输出(屏幕或加>filename到另一个档案)
1.2.2 语法
cat [-AbeEnstTuv] [--help] [--version] filename
1.2.3 参数
-n 或 --number 由 1 开始对所有输出的行数编号
-b 或 --number-nonblank 和 -n 相似,只不过对于空白行不编号
-s 或 --squeeze-blank 当遇到有连续两行以上的空白行,就代换为一行的空白行
-v 或 --show-nonprinting

范例:
cat -n textfile1 > textfile2 把 textfile1 的档案内容加上行号后输入 textfile2 这个档案里
cat -b textfile1 textfile2 >> textfile3 把 textfile1 和 textfile2 的档案内容加上行号(空白行不加)
之后将内容附加到 textfile3 里。

1.3 cd

1.3.1 功能说明
切换目录
1.3.2 语法
cd [目的目录]
1.3.3 补充说明
cd指令可以让用户在不同的目录切换 但该用户必须有足够的权限进入目的目录

1.4 chgrp

1.4.1 功能说明
变更文件或目录的所属群组
1.4.2 语法
chgrp [-cfhRv][--help][--version][所属群组][文件或目录...]
或chgrp [-cfhRv][--help][--reference=<参考文件或目录>][--version][文件或目录...]
1.4.3 补充说明
在unix系统家族里,文件或目录权限的掌控以拥有者及群组来管理,您可以使用chgrp指令来修改文件或目录的所属群组,设置方式使用群组名称或者群组识别码均可以。
1.4.4
-c或--changes 效果类似"-v"参数,但仅回报更改的部分。
-f或--quiet或--silent 不显示错误信息。
-h或--no-dereference 只对符号连接的文件作修改,而不更动其他任何相关文件。
-R或--recursive 递归处理,将指定目录下的所有文件及子目录一并处理。
-v或--verbose 显示指令执行过程。
--help 在线帮助。
--reference=<参考文件或目录> 把指定文件或目录的所属群组全部设成和参考文件或目录的所属
1.4.5 实战
首先我们来新建三个用户(默认方式创建用户,改用户被创造出来的时候默认是按自己的名字来命名所属群组的,如下 最靠左边的是用户名,其次是所属组名 )



使用指令 chgrp 修改上面三个文件的所属组

指令格式:chgrp 指定组名 指定用户名

[root@hadoop02 home]# chgrp hadoop chenlip
[root@hadoop02 home]# chgrop hadoop hegx
[root@hadoop02 home]# chgrp hadoop hadoop

total 12
drwx------ 2 chenlip hadoop 4096 Sep  5 08:25 chenlip
drwx------ 2 hadoop  hadoop 4096 Aug 31 21:49 hadoop
drwx------ 2 hegx    hadoop 4096 Sep  5 08:24 hegx
[root@hadoop02 home]# 

1.5 chmod 

1.5.1 功能说明
变更文件或目录的权限
1.5.2  语法
chmod [-cfRv][--help][--version][<权限范围>+/-/=<权限设置...>][文件或目录...]
或chmod [-cfRv][--help][--version][数字代号][文件或目录...]
或chmod [-cfRv][--help][--reference=<参考文件或目录>][--version][文件或目录...]
1.5.3 补充说明
在UNIX系统家族里,文件或目录的权限的控制分别以读取,写入,执行3种一般权限来区分,另外有3种特殊权限可供运用,再搭配拥有者与所属群组管理权限范围。您可以使用chwon指令去变更文件或目录的权限,设置方式采用文字或数字代号皆可以。 符号链接的权限无法变更,如果您对符号链接修改权限,其修改会作用在被链接的原始文件,权限范围的表示如下:
u : User 即文件或目录的拥有者
g :Group,即文件或目录的所属组
o : Other,除了文件或目录拥有者或群组之外,其他用户皆属于这个范围
a : All,即全部用户,包括拥有者,所属群组以及其他用户。

有关权限代号的部分,列表于下:
r : 读取权限,数字代号为“4”
w : 写入权限,数字代号为“2”
x : 执行或切换权限,数字代号为“1”
- : 不具任何权限,数字代号为“0”
1.5.4 参数
-c或--changes 效果类似"-v"参数,但仅回报更改的部分。
-f或--quiet或--silent 不显示错误信息。
-R或--recursive 递归处理,将指定目录下的所有文件及子目录一并处理。
-v或--verbose 显示指令执行过程。
--help 在线帮助。
--reference=<参考文件或目录> 把指定文件或目录的权限全部设成和参考文件或目录的权限相同
--version 显示版本信息。
<权限范围>+<权限设置> 开启权限范围的文件或目录的该项权限设置。
<权限范围>-<权限设置> 关闭权限范围的文件或目录的该项权限设置。
<权限范围>=<权限设置> 指定权限范围的文件或目录的该项权限设置。
1.5.5 实战
例1.

(1)首先我们在root权限下面给目标用户设置sudo的权限,为了后面的操作简便,然后切换到改普通用户,用改用创建一个HelloWord.java的一个普通文
public class HelloWord {

    public static void main(String[] args) {
        String hello = "美女你好";

        String word = "我是永远爱你的!";

        System.out.println(hello+word);
    }

}




(2)因为我们是用hadoop用户创建了给文件,所有用指令ll可以查看该文件的的拥有者hadoop和群组hadoop,并且他们都拥有读写执行的权限
[hadoop@hadoop02 ~]$ chmod -x test.sh 
[hadoop@hadoop02 ~]$ ll
total 12
-rw-rw-r-- 1 hadoop hadoop 627 Sep  6 08:43 HelloWord.class
---------- 1 hadoop hadoop 234 Sep  6 08:38 HelloWord.java
-rw-r--r-- 1 hadoop hadoop  20 Sep  6 09:19 test.sh
[hadoop@hadoop02 ~]$ sh test.sh 
Hello word!

备注:javac跟java此处是执行的操作(其实这并不是一个很好的例子,因为JVM是不受Linux系统限制的,跟java最初的原则一样,一次编译,随处执行!)



例2
这里在聚一次例是为了弥补例一的不足
首先我们来创建一个test.sh文件,并查看该文件(文件被创建出来的时候默认带有读写的权限)
[hadoop@hadoop02 ~]$ vi test.sh
-rw-rw-r-- 1 hadoop hadoop  20 Sep  6 09:19 test.sh
[hadoop@hadoop02 ~]$ cat test.sh 
echo "Hello word!";
下面我们来执行该文件
[hadoop@hadoop02 ~]$ ./test.sh
-bash: ./test.sh: Permission denied
权限拒绝!这是很正常的因为该文件并没有执行的权限,下面给改文件加上执行的权限并执行,提示执行成功!
[hadoop@hadoop02 ~]$ chmod 755 test.sh 
[hadoop@hadoop02 ~]$ ll
total 12
-rw-rw-r-- 1 hadoop hadoop 627 Sep  6 08:43 HelloWord.class
---------- 1 hadoop hadoop 234 Sep  6 08:38 HelloWord.java
-rwxr-xr-x 1 hadoop hadoop  20 Sep  6 09:19 test.sh
[hadoop@hadoop02 ~]$ ./test.sh 
Hello word!
[hadoop@hadoop02 ~]$ 
同样,SH虚拟机也不受Linux系统的权限控制的,同样我们把文件的执行权限给去除,sh也可以去执行该文件的,所以这里需要注意这个问题!
[hadoop@hadoop02 ~]$ chmod -x test.sh 
[hadoop@hadoop02 ~]$ ll
total 12
-rw-rw-r-- 1 hadoop hadoop 627 Sep  6 08:43 HelloWord.class
---------- 1 hadoop hadoop 234 Sep  6 08:38 HelloWord.java
-rw-r--r-- 1 hadoop hadoop  20 Sep  6 09:19 test.sh
[hadoop@hadoop02 ~]$ sh test.sh 
Hello word!





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值