【系统】Linux常用命令总结(新手友好)
备注
2020/9/22 星期二
很久没有写过博客了,今天心血来潮决定把用了很久的Linux命令做一个总结。
一、目录命令
1.ls
ls
这是我们在Linux中使用最多的一条命令,用来显示当前位置的文件。他会简单的罗列出当前目录下的文件。
但是有的时候我们想要查看文件更多的详细信息,这个时候我们可以对ls添加-l的参数
ls -l
有些Linux版本中会提供ll作为ls -l的缩写用法
ll
有的时候我们想要查看系统的隐藏文件,我们只需要使用ls -a即可。
ls -a
1.cd
用ls查看了目录之后我们一般都要进行目录位置的切换,这个时候会用到cd命令,cd命令是用来进入到某个文件夹的命令,我们只需要cd刚刚ls列出的文件夹名称即可。我们称这种方式为相对路径。
cd [文件夹]
在Linux中,用 . 表示当前所在位置,用..表示当前位置的上一层目录。所以想要返回到上一层目录的时候要用cd ..
cd ..
理论上,只需要用cd命令配合ls命令我们就可以到达Linux中的任何文件夹,但实际中这可能会浪费很长的时间,所以Linux还提供了另一种更加直接的方式,绝对路径。
在讲绝对路径之前我们首先需要简单了解一下Linux目录的基本结构。
与Windows不同,Linux并没有c盘、d盘等磁盘目录,Linux的一切文件都在 / 下,/ 被称为根目录,根目录下一般会有以下目录
bin | boot | dev | home | lib | var | etc | root | user | run |
---|
这些文件夹各自具有不同的作用,在这里不多赘述。我们可以通过cd命令加从根目录开始的一个完整路径直接进入。如:Linux的每个用户在home目录下面都有一个与用户名相同的目录称为家目录,我以linux为用户名为例
cd /home/linux
就可以进入到自己家目录下
由于我们的大部分操作都是在家目录下进行的,我们需要经常进入到家目录下,Linux还为我们提供了更为便捷的一种方式
cd ~
这个命令就可以直接进入到家目录下。
2.pwd
Linux为我们提供了一个命令查看当前所在位置
pwd
二、可执行文件
1. ./
当我们的当前目录下有一个可执行文件的时候,我们可以用./加文件名来运行它(没有空格)
./[文件名]
2.file
与Windows中以.exe为后缀结尾的明显提示不同,Linux的可执行文件一般没有后缀,Linux的可执行文件为ELF,当我们想知道一个文件的类型时,我们可以使用file命令来查看文件的详细信息
file [文件名]
三、创建与删除
1.创建文件
touch [文件名]
用touch命令加一个不存在的文件名可以在当前文件夹中创建一个空文件
如果touch了一个在当前文件夹已存在的文件就会更新这个文件的最后修改日期。
2.创建文件夹
mkdir [文件夹名]
mkdir可以创建一个不存在的目录,也可以连续创建一串目录,只需要添加-p参数即可
mkdir -p [文件夹/文件夹/.../文件夹]
3.删除
在Linux中删除命令是比较危险的命令,因为你甚至可以删除整个操作系统,而且这种情况是可能真的会在你输错命令的时候发生。通过简单的rm即可进行删除操作。
rm [文件名]
被删的的也可以是一个空文件夹,如果想要删除非空文件夹需要加上-r的参数
rm -r [文件夹]
但是,这样操作系统一般会逐一询问是否要删除文件夹中的文件,当文件夹中的文件很多时会变得非常麻烦,所以我们可以添加-f的参数进行无询问的强制删除。
rm -rf [文件夹]
这个时候千万要小心,因为如果你一不小心将命令打成这样
rm -rf /文件夹/...
你可能会将根目录删除。
四、查看文件
1.cat
当我们有一个想要查看的文件时,我们一般会使用cat命令来进行查看
cat [文件名]
除了简单的查看,cat命令还提供了一些多样化的选择,
参数 | 解释 |
---|---|
-n | 从1开始对每行进行编号 |
-s | 将连续两行及以上空行替换为一行显示 |
2.tac
Linux还为我们提供了一个很有意思的命令tac,这个命令的名字是cat的反写,而他的作用也是将文件反向输出显示。
tac [文件名]
他也有一个参数,-b可以用来在每行显示一个分隔符。
3.more
4.less
五、文件权限
在Linux中,每个文件都有严格的权限要求,当你的用户不具有相应的权限时你将无法进行一些操作,一般的文件都有修改,访问,执行操作。分别用w、r、x表示,用-代表没有权限。同样,每个目录也有三个权限。w代表使用ls的权限,r代表在目录中创建删除的权限,x代表使用ls-l的权限。当我们想要修改一个文件或目录的权限时,要使用chmod命令。
chmod [用户][操作][权限] [文件名]
chmod有三个参数,分别可以填以下内容
用户 | 说明 |
---|---|
u | 文件所有者 |
g | 文件所有者所属的用户组 |
o | 其他所有用户 |
a | 所有用户 |
操作 | 说明 |
---|---|
+ | 添加 |
- | 去除 |
= | 赋予 |
权限 | 说明 |
---|---|
r | 读 |
w | 写 |
x | 执行 |
例如:想要给一个文件为所有用户添加执行权限
chmod a+x [文件名]
例如:为文件所有者所在用户组去掉修改权限
chmod g-w [文件名]
例如:直接为文件所有者赋予读写执行的权限
chmod u=rwx [文件名]
在chmod命令中,[用户]可以不填,系统会默认为文件所有者u。
例如:为文件所有者添加执行权限可简写作
chmod +x [文件名]
用这种方式修改权限简单直观,但是有一个小问题,当我们想同时为不同的用户赋予不同权限时需要重复执行很多次这个命令。Linux为我们提供了另一种修改权限的方式来解决这个问题。
对于四种权限我们分别赋予他们一个值
权限 | 值 |
---|---|
r | 4 |
w | 2 |
x | 1 |
- | 0 |
我们不难看出,当我们把这四种权限任意组合将值相加得到的结果都是唯一的,由此我们可以得到以下这张表
权限 | 值 |
---|---|
r w x | 7 |
r w - | 6 |
r - x | 5 |
r - - | 4 |
- w x | 3 |
- w - | 2 |
- - x | 1 |
- - - | 0 |
这样我们就可以直接用一个数字来代表三个权限的状态,将三个数字按u、g、o的顺序排列就可以仅用一次chmod为不同用户赋予权限。
例如:为所有用户赋予全部权限
chmod 777 [文件名]
另外,当我们用ls-l命令时会发现,每个文件除了具有三组wrx权限以为,在权限前还有一个字母或-,这个字母是文件的类型标识符
标识符 | 类型 |
---|---|
- | 普通文件 |
d | 目录 |
c | 字符设备文件 |
b | 块设备文件 |
l | 符号链接文件 |
六、用户组
在我们使用Windows的时候似乎从来没有关心过是否拥有一个文件或目录的权限,但是Linux不同,每一个用户都拥有不同的权限。因为Linux是一个可以实现多用户同时登陆的操作系统,多个用户可能会共享一些资源,但他们也需要独立的空间和权限,不同的用户不可以随意查看修改或执行其他用户的文件。