LinuxLinux下的基本指令与权限

Posted Suk_god

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LinuxLinux下的基本指令与权限相关的知识,希望对你有一定的参考价值。

基本指令

1.ls指令

语法 :ls[选项][目录或文件]
功能 :对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息。
ls
· 代表当前目录
默认只输入ls时也表示当前目录

·· 代表上一级目录

/ 代表Linux操作系统的根目录

常用选项

  • -a 列出目录下的所有文件,包括以 · 开头的隐藏文件
  • -l 列出文件的详细信息
  • -t 以时间排序
  • -r 对目录反向排序。
  • -h 文件大小以k/M/G来表示

当然,这些选项常常以组合的形式出现:
比如说:
-al: 既罗列详细信息,也罗列隐藏文件
-lrt: 对文件进行排序,最新修改的文件在最下面

下面就来展示一下吧~~

ls -l //显示当前目录下的文件的详细信息


此图表明我创建了两个文件夹,分别为AA何Linux_test,创建了一个文件,文件名为test.c
那么test.c是什么类型的文件呢??是我们之前C语言学习的.c文件吗??

敲重点了!!! 它不是,那么我们应该如何理解Linux下的文件类型呢?
画图理解


结论:在Linux操作系统下,不是以文件的后缀来区分文件类型的。

2. pwd命令

语法: pwd
功能:显示用户当前所在的目录
注:输出的路径是绝对路径(从根目录开始计算的路径)

演示

3.cd指令

Linux系统中,磁盘上的文件和目录被组成一棵目录树,每个节点都是目录或文件。如下图所示

语法: cd 目录名
功能: 改变工作目录,将当前目录改到 指定的目录下。
cd后可以跟相对路径,也可以跟绝对路径
相对路径:从某个文件夹开始计算的路径
绝对路径:从根目录开始的路径

  • cd ~ 回到用户的家目录
  • cd / 回到根目录
  • cd [相对路径]
  • cd [绝对路径]

4.touch 命令

语法:touch [选项]… 文件…
功能:touch命令参数可更改文档或目录的日期时间,包括存取时间和更改时间,或者新建一个不存在的文件。
演示:

5.mkdir 命令

语法:mkdir [选项] dirname…
功能:在当前目录下创建一个名为 “dirname”的目录
常用选项

-p, --parents 可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立 好那些尚不存在的目录,即一次可以建立多个目录;

举例

mkdir –p AA/test1 : 递归建立多个目录

来一个小测试~
要求:在用户家目录下创建Test文件夹,Test文件夹内创建my_test 文件!

6…rmdir指令 && rm 指令(重点)

注意:极其危险的操作,千万不要在用户的机器当中使用。

rmdir是一个与mkdir相对应的命令。mkdir是建立目录,而rmdir是删除命令。
语法:rmdir [-p][dirName]
适用对象:具有当前目录操作权限的所有使用者
功能:删除空目录
常用选项

  • -p 当子目录被删除后如果父目录也变成空目录的话,就连带父目录一起删除

rm命令可以同时删除文件或目录
语法:rm [-f-i-r-v][dirName/dir]
适用对象:所有使用者
功能:删除文件或目录
常用选项

  • -f 即使文件属性为只读(即写保护),亦直接删除(不用询问)
  • -i 删除前逐一询问确认
  • -r 删除目录及其下所有文件(递归删除)

删除文件:
rm [filename]

rm * <====> rm ./*:删除当前目录下的所有内容
注意
rm / * 千万不能使用!!!(禁用操作)
它一旦被执行,那么Linux操作系统根目录下所有内容都将会被直接删除,操作系统将会处于瘫痪状态。

例如:
目前我的目录下有3个文件夹,4个文件。

1.现在我想要删除文件aa
只需要执行:rm aa 命令

2.我想删除文件bb,cc,dd,应该怎么操作呢?像上面一样,一个一个的删除,没问题,但是太麻烦。我们可以直接一次性删除多个文件!
与创建文件一样,可以命令后跟多个文件名

3.现在要求你删除AA文件夹,应该怎么操作?

由于AA文件夹下还有BB文件,我们可以选择-r命令。


-ri命令:递归删除,每次删除时会进行询问

7.man指令

Linux的命令有很多参数,我们不可能全记住,我们可以通过查看联机手册获取帮助。访问Linux手册页的命令是man
语法: man [选项] 命令
常用选项

-k 根据关键字搜索联机帮助 num 只在第num章节找
-a 将所有章节的都显示出来,比如 man printf 它缺省从第一章开始搜索,找到就停止,用a选项,当按 下q退出,他会继续往后面搜索,直到所有章节都搜索完毕。

“有问题,找男人~”

1 是普通的命令
2 是系统调用,如open,write之类的(通过这个,至少可以很方便的查到调用这个函数,需要加什么头文件)
3 是库函数,如printf,fread4是特殊文件,也就是/dev下的各种设备文件
5 是指文件的格式,比如passwd, 就会说明这个文件中各个字段的含义
6 是给游戏留的,由各个游戏自己定义
7 是附件还有一些变量,比如向environ这种全局变量在这里就有说明
8 是系统管理用的命令,这些命令只能由root使用,如ifconfig

其中2 3我们以后经常会用到~~

在3号手册查看strlen函数

8.CP指令

cp -rf [源] [目标]

cp 既可以将文件拷贝到某一个文件夹下,也可以在拷贝的时候进行重命名

如果要拷贝文件夹,加上-r命令行参数
-f 强制拷贝

拷贝只是将要拷贝的内容复制一份按照要求放到目标目录下,但是原有的文件或文件夹依旧存在

比如:
我现在有一个文件test.c,两个文件夹AA和Linux_test,AA中有文件abc,Linux_test是一个空文件夹

现在要求:
1.将test.c文件拷贝到Linux_test文件夹下

2.将AA文件夹及其内容拷贝到Linux_test文件夹下

3.将AA文件夹及其内容拷贝到Linux_test文件夹下,并将其重命名为BB

9.mv命令

mv [源] [目标]

功能:
1.移动文件或文件夹到指定目录下
2.重命名(常用的替换删除的手段)

移动会改变原有文件或文件夹的路径

展示一个例子

前提:当前有路径下有test.c文件,两个文件夹,AA和Linux_test,前者里面有一个文件abc,后者是一个空文件夹

要求:
1.将test.c 移动到Linux_test文件夹下,并且重命名为my_test.c

2.将文件夹AA重命名为BB
mv AA BB

10.echo 重定向

1.向屏幕中输出字符串
2.echo “字符串” >[目标文件]
作用: 将字符串重定向到目标文件

11.cat命令

  • cat [文件名]
    查看文件内容
  • -n 输出行号

12.more 命令

  • 查看文件内容(在最底部会显示一个百分比,表示当前阅读内容占文件的百分比)
  • b:向前翻看
  • f:向后翻看

13.less 命令

  • -i 忽略搜索时的大小写
  • -N 显示每行的行号
  • /字符串:向下搜索“字符串”的功能
  • ?字符串:向上搜索“字符串”的功能
  • n:重复前一个搜索,与/匹配
  • N:反向重复前一个搜索, 与?匹配
  • q:quit

14.head 命令

head [-数字] 文件名
查看文件头部的内容,默认10行

15.tail命令

tail [-数字] 文件名

查看文件末尾的内容,默认10行

注意:有一个命令行参数,-f 循环读取

16.find命令

  • 作用: 在Linux操作系统下查找文件
  • find [搜索的路径/目录] -name [文件名] 支持模糊匹配:
  • *.abc


17.grep 命令

  • 作用:在文件中查找字符串,如果找到了,就输出
  • grep “待搜索的字符串” 从哪个目录开始搜索 -R

18.history 命令


想要执行历史命令,可以使用向上箭头,也可以使用==![以往执行命令的编号]==

19.zip 指令

  • zip XXX.zip [需要压缩的文件或文件夹]
    注意:若果是文件夹,一定要递归压缩(-r)
  • 解压缩 unzip XXX.zip [-d] [path]

1.文件压缩与解压缩


2.文件夹的压缩与解压缩
前提:压缩一个BB文件夹,该文件夹下有文件abc,文件内容为hello

将BB压缩,并删除该目录下的BB文件夹

对BB.zip进行解压缩

正确示范
压缩

解压缩

20.tar 压缩

  • -z :是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩?
  • -c :建立一个压缩文件的参数指令(create 的意思)
  • -x :解开一个压缩文件的参数指令!
  • -v :压缩的过程中显示文件!这个常用,但不建议用在背景执行过程!
  • -f :使用档名,请留意,在 f 之后要立即接档名喔!不要再加参数!
  • -j :是否同时具有 bzip2 的属性?亦即是否需要用 bzip2 压缩?
  • gzip压缩
    压缩:tar -zcvf xxx.tar.gz[待压缩的文件或者文件夹]
    解压缩:tar -zxvf xxx.tar.gz
  • bz2 压缩
    压缩:tar -jcvf xxx.tar.bz2[待压缩的文件或者文件夹]
    解压缩:tar -jxvf xxx.tar.bz2

shell

命令行解释器

  1. 用户输入的命令并不是直接和操作系统打交道,而是将命令传给了shell,由命令行参数和Linux操作系统打交道,并且将Linux操作系统的执行结果返回给用户
  2. 命令解释器(shell)是一个统称,centos使用的shell 名称是bash
  3. bash:上传下达

权限

1.Linux下的用户分类

超级用户(root):权限最高
普通用户(自定义用户名) :只有root用户的部分权限
添加用户; useradd [username]

用户之间的切换:
su -[用户名]
su [用户名]

2.文件访问者的分类

①文件和文件目录的所有者:u—User
②文件和文件目录的所有者所在的组的用户:g—Group
③其它用户:o—Others

-表示没有对应权限

3.权限的分类

可读—>r
可写—>w
可执行—>x(是否拥有执行文件内容的权限)

4.权限的表示形式

①字符表现形式

②八进制数值表示

5.修改权限

①字符修改方式
chmod [u/g/o] [+/-] [r/w/x] [文件名称]

没有指定给哪一类用户增加(删除)某项权限时,默认给所有用户都执行该操作

也可以对指定用户增加指定权限
比如
对u增加x权限

②八进制数字修改
chmod xxx [文件名]

注意:更改用户对文件操作的权限是一般不会直接给777,这里只是举例说明

6.不同的权限针对文件或文件夹的作用

文件:
可读权限:读取文件内容的权限
可写权限:修改文件内容的权限
可执行权限:执行文件的权限

注意:对于可执行来说,我们应该理清楚这两点的区别
①用户有无可以执行文件的权限是由x这一权限位决定的
②执行文件能否成功取决于文件内的内容能否经过编译链接等操作进而运行起来
①②两者各是各的

文件夹:
可读权限:具有浏览该目录的权限

可执行权限:对用户来说,具有进入目录的权限

可写权限:对目录来说,具有删除、移动目录内文件的权限

注意: 既然可写权限具有删除、移动目录内文件的权限,那么是不是用户拥有了文件夹的写权限就能够删除文件??

理论上看起来是,但是我们仔细想想,如果是这样的话,假设root用户创建了一个文件夹,里面有若干个文件,而一个普通用户有了该文件夹的w权限!是不是意味着这个普通用户也可以将该文件夹下的文件删除!!那这与我们认知的root用户权限最高相违背。显然是不合适的,那么应该如何解决呢?这就是我们的粘滞位所起到的作用了。

7.粘滞位

chmod + t [文件夹]
当一个目录被设置为粘滞位,则该目录下的内容有以下特点:
只有以下用户可以删除
①由超级管理员删除
②该目录的所有者删除
③该文件的所有者删除

8.其他

设置 sudo
权限提升

sudo + 命令
使用root权限执行该命令

更改文件或文件夹的所属用户
chown [用户] [文件名]
chown -R [用户] [文件名]

更改文件或文件夹的所属用户组
chgrp [用户] [文件名]
chgrp -R [用户] [文件名]

Ctrl +c
a.终止当前输入的命令
b.结束执行的前台进程

Ctrl + a
命令行的光标跳转到行首

table
补全命令~

以上是关于LinuxLinux下的基本指令与权限的主要内容,如果未能解决你的问题,请参考以下文章

LinuxLinux系统下find指令详细用法与示例

linuxlinux下find指令的用法总结

LinuxLinux基本指令(下)

linuxLinux基本指令(上)

Linuxlinux常用基本命令

Linuxlinux常用基本命令