欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Linux学习:基本常用指令

程序员文章站 2022-05-13 11:15:44
...

    博主学习Linux是用Virtual Box虚拟机安装的Ubuntu系统。(Ubuntu是比较常使用的一种Linux系统)

Ubuntu界面跟Mac比较像,所以使用Mac的你应该比较熟悉;或者使用Ubuntu的你很容易就熟悉Mac系统。

这个安装方法可以参考在Mac上 使用virtualbox虚拟机安装ubuntu (虚拟机也可以用VMvare)

在windows下面安装虚拟机也是差不多的啦。

如果想在windows下面安装双系统,可以查看下面教程:Ubuntu安装

 

下面我们就来用终端Terminal和指令command来熟悉Linux系统吧~

打开终端,默认是你的Home目录。

一、

cd (change directory)指令:

    去你想去的目录。

1. 返回上一级目录:

cd..  

2.去到子目录: (相对路径)

 

cd Documents/folder1

3.回到home目录: (home目录是~)

cd ~

4.返回你刚刚所在的目录:

cd -

5.向上返回两次:

cd ../../

6.去往电脑的任何一个地方:

cd /home/ziqi/Documents/folder1

 

二、

ls指令 :查看目录下面有哪些东西

1.简单查看

ls

2.输出详细信息 -l (long) 这个指令会打印出文件的权限 (如:-rw-rw-r-- 之后我们在细说这个), 用户名, 文件大小, 修改日期, 文件名

ls -l

3. 显示所有文件(包括显示隐藏文件) -a

ls -a

4.-lh (human), 直接 -l 不方便人看, 这个指令是为了方便给人观看的. 注意这里的文件大小使用了 K, MB, GB 之类概括

ls -lh

5.其他功能查询: --help

ls --help

 

三、文件相关指令:

touch新建

1. 在目录下面新建文件

touch file1

2.同时创建多个文件

touch f1 f2 f3 f4 f5

 

cp复制(copy)

1.复制文件或者文件夹

cp old_file new_file

2. -i (interactive) ,copy操作前确认判断,确认操作回复“Yes/yes/YES/Y/y”,放弃操作则直接回车或者打其他字母

cp -i file1 file1copy

3.复制文件去文件夹里面

cp file1 folder1/

4.复制整个文件夹(包括里面的内容),加上-R(recursive)

cp -R folder1/ folder2/

5.复制多个文件(匹配文件前缀用*)

cp file* folder2/

6.单独选定几个文件到某文件夹(cp默认最后一个为要复制去的文件夹)

cp file1 file2 folder1/

 

mv 移动文件(剪切)

1.移动到另一文件夹

mv file1 folder1/

2.重命名文件(在同一目录下,相当于删除该文件,创建另一个跟原文件一样但不同名但文件。也就是相当于重命名啦)

mv file fileRename

 

mkdir建立文件夹(make directory)

mkdir folder

在folder里面再建一个文件也是可以的

mkdir folder/folder2

 

rmdir 移除文件(remove directory)

1.空文件夹,直接移除

rmdir folder3

2.非空文件夹,不能移除

 

(看下面的rm移除文件)

 

 

rm移除文件

可 移除单个文件/有文件的文件夹

 注意: 执行了 rm 以后是不能进行返回操作的, 请确保别执行像这样的操作 rm /, 这会清空你的电脑.

1.移除单个文件

rm file1

2. -i,-I(添加提示):

-i 对每个要删除的文件进行提示

-I 删除超过3个文件才进行提示

$ rm -i f1 f2 f3 f4
rm: remove regular empty file 'f1'?
rm: remove regular empty file 'f2'? y
rm: remove regular empty file 'f3'?
rm: remove regular empty file 'f4'? y
$ rm -I f1 f2 f3 f4
rm: remove 4 arguments? y

3. -r 、-R (recursively)用来删除文件夹

和 rmdir 不同, rm -r 可以在文件夹中有文件的情况下删除这个文件夹. 比如我的 folder1里有 file1 和 file2 两个文件.

rm -r folder1

 

四、文本编辑 : 写nano/读cat

(也可以使用vim文本编辑器:菜鸟教程Linux vi/vim

1.编辑t.py文件

nano t.py

执行python文件:

python t.py

 

cat (catenate)显示文本内容

 

或者将某个文件里的内容写入到其他文件里

1.查看文件内容

cat t.py

2. >将文件的内容放到另一个文件里

 

$ cat t.py > t1.py
$ cat t1.py

3. > 将多个文件的内容打包一起放入另一个文件

比如这里我们把 t.py 和 t1.py 的内容同时放入了 t2.py

$ cat t.py t1.py > t2.py
$ cat t2.py

4. >> 将内容添加在一个文件末尾

我创建了一个 t3 的文件, 文件里写上了 “This is t3”. 我们将这个内容添加进 t2.py 吧. 使用了 >> 会将 t3 的内容添加在 t2.py 的末尾.

$ cat t3 >> t2.py
$ cat t2.py
print("This is a Python script!")
print("This is a Python script!")
This is t3.

5. cat 查找关键字

cat xxx.txt | grep findString -A20 

-A20 表示查找从关键字出现后20行内容

 

 

五、Linux文件权限

 

ls查看权限

 在 Terminal 中查看文件的权限

$ ls -l
total 16
----rw-r-- 1 morvan morvan 34 Oct 12 09:51 t1.py
-rw----r-- 1 morvan morvan 80 Oct 12 09:57 t2.py
-rw-rw-r-- 1 morvan morvan 12 Oct 12 09:56 t3
-rwxrw-r-- 1 morvan morvan 55 Oct 13 17:28 t.py

在这里, 像-rw-rw-r--这种, 就是权限的说明. 细节展示在下面的图中. 在下图中, 这串字符得拆成4个部分,

Linux学习:基本常用指令

  • Type: 很多种 (最常见的是 - 为文件, d 为文件夹, 其他的还有ln … 这种东西, 真正自己遇到了, 网上再搜就好, 一次性说太多记不住的).
  • User: 后面跟着的三个空是使用 User 的身份能对这个做什么处理 (r 能读; w 能写; x 能执行; - 不能完成某个操作).
  • Group: 一个 Group 里可能有一个或多个 user, 这些权限的样式和 User 一样.
  • Others: 除了 User 和 Group 以外人的权限.

User 一般就是指你, 这个正在使用电脑的人. Group 是一个 User 的集合, 最开始创建新 User 的时候, 他也为这个 User 创建了一个和 User 一样名字的 Group, 这个新 Group 里只有这个 User. 一般来说, 像一个企业部门的电脑, 都可以放在一个 Group 里, 分享了一些共享文件和权限. Others 就是除了上面提到的 User 和 Group 以外的人.

 

拿上面的 t1.py 来举例. 我们可以将 ----rw-r-- 拆成 - (这是文件), ---(这个 user 没有任何权限), rw- (这个 Group 里可以读,写), r-- (其他人只能读).

 

chmod修改权限(change mode)

修改形式:

$ chmod [谁][怎么修改] [哪个文件]

举个最简单的例子, 现在的 t1.py 是 ----rw-r--, 如果我们想让你(user)有读的能力. 下面这样改就行了.

$ chmod u+r t1.py
$ ls -l
-r--rw-r-- 1 morvan morvan 34 Oct 12 09:51 t1.py

这里的 u+r 很形象, User + read, 给 t1.py 这个修改. 所以我们的修改形式就能总结出下面这样.

[谁]

  • u: 对于 User 修改
  • g: 对于 Group 修改
  • o: 对于 Others 修改
  • a: (all) 对于所有人修改

[怎么修改]

  • +-=: 作用的形式, 加上, 减掉, 等于某些权限
  • rwx 或者多个权限一起, 比如 rx

[哪个文件]

  • 施加操作的文件, 可以为多个

我们再举几个例, 巩固一下.

-rw----r-- 1 morvan morvan 80 Oct 12 09:57 t2.py
-rw-rw-r-- 1 morvan morvan 12 Oct 12 09:56 t3
-rwxrw-r-- 1 morvan morvan 55 Oct 13 17:28 t.py

$ chmod u-r t2.py
$ ls -l t2.py
--w----r-- 1 morvan morvan 80 Oct 12 09:57 t2.py

$ chmod g+x-w t3
$ ls -l t3
--w-r-xr-- 1 morvan morvan 12 Oct 12 09:56 t3

 

修改权限也可以用数字表示:用的是2进制:

 

如:chmod 777 文件名 

(对于二进制是'111'-'111'-'111',对应的user-group-other的权限是rwx rwx rwx,既修改文件权限为‘-rwxrwxrwx’)

可参考 linux 文件权限字符表示&数字表示

 

tips:

一个使用python的技巧:

我不怎么用权限这东西, 但是我却发现给 python 文件添加权限 x 还算有用的. 为什么这么说? 因为通常, 如果一个 .py 没有 x 权限, 在 terminal 中你就需要这样执行:

 

$ python3 t.py
This is a Python script!

如果你有了 x (可执行权限), 你运行这个文件可以直接这样打:

$ ./t.py
This is a Python script!

如果你天天要运行这个脚本, 每次运行的时候少几个字还是挺好的. 如果你决定要这样做, 你在这个 Python 脚本的开头还需要加一句话.

#!/usr/bin/python3        # 这句话是为了告诉你的电脑执行这个文件的时候用什么来加载

print("This is a Python script!")

 

 

 

参考自:Linux简易教学