博主学习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个部分,
Type
: 很多种 (最常见的是 -
为文件, d
为文件夹, 其他的还有l
, n
… 这种东西, 真正自己遇到了, 网上再搜就好, 一次性说太多记不住的).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) 对于所有人修改[怎么修改]
+
, -
, =
: 作用的形式, 加上, 减掉, 等于某些权限r
, w
, x
或者多个权限一起, 比如 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简易教学