Linux 基础

Linux 基础知识

基本命令

cd:用于切换当前工作目录。

1
2
jianghouren@jianghourendeMacBook-Pro ~ % cd test
jianghouren@jianghourendeMacBook-Pro test %

在 test 目录跳转到 Downloads 目录

1
2
3
4
5
6
7
8
9
10
11
jianghouren@jianghourendeMacBook-Pro test % cd ~/Downloads
jianghouren@jianghourendeMacBook-Pro Downloads %

// cd ~ 是跳到自己的 home 目录。相当于 cd /Users/jianghouren 。
// 若目录名称省略,则变换至使用者的 home 目录,也就说 cd 相当于 cd ~ 。
jianghouren@jianghourendeMacBook-Pro test % cd ~
jianghouren@jianghourendeMacBook-Pro ~ % pwd
/Users/jianghouren
jianghouren@jianghourendeMacBook-Pro ~ % cd test
jianghouren@jianghourendeMacBook-Pro test % cd /Users/jianghouren/Downloads
jianghouren@jianghourendeMacBook-Pro Downloads %

pwd:查看当前目录的具体位置。

1
2
3
jianghouren@jianghourendeMacBook-Pro test % pwd
/Users/jianghouren/test
jianghouren@jianghourendeMacBook-Pro test %

mkdir:创建目录。

1
2
3
4
5
6
jianghouren@jianghourendeMacBook-Pro test % ls
// 创建目录 111
jianghouren@jianghourendeMacBook-Pro test % mkdir 111
jianghouren@jianghourendeMacBook-Pro test % ls
111
jianghouren@jianghourendeMacBook-Pro test %

创建多层级目录

1
2
3
4
5
6
7
jianghouren@jianghourendeMacBook-Pro test % mkdir -p 1/2/3
jianghouren@jianghourendeMacBook-Pro test % ls
1
jianghouren@jianghourendeMacBook-Pro test % cd 1
jianghouren@jianghourendeMacBook-Pro 1 % cd 2
jianghouren@jianghourendeMacBook-Pro 2 % cd 3
jianghouren@jianghourendeMacBook-Pro 3 %

cd .. 是返回上层级目录,而 cd - 是返回上次操作的工作目录。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
jianghouren@jianghourendeMacBook-Pro test % ls
1
jianghouren@jianghourendeMacBook-Pro test % cd 1/2/3
// 跳到目前目录的上三层
jianghouren@jianghourendeMacBook-Pro 3 % cd ../../..
// 回到上次操作的目录
jianghouren@jianghourendeMacBook-Pro test % cd -
~/test/1/2/3
jianghouren@jianghourendeMacBook-Pro 3 % cd -
~/test
jianghouren@jianghourendeMacBook-Pro test % cd -
~/test/1/2/3
jianghouren@jianghourendeMacBook-Pro 3 % cd ..
jianghouren@jianghourendeMacBook-Pro 2 % cd ..
jianghouren@jianghourendeMacBook-Pro 1 % cd ..
jianghouren@jianghourendeMacBook-Pro test %

ls:显示当前目录下的信息。

可通过 ls -alt 来查看(其中,a 指所有的,l 指列表,t 指倒序)。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
jianghouren@jianghourendeMacBook-Pro test % ls
111 222
jianghouren@jianghourendeMacBook-Pro test % ls -a
. .. .DS_Store 111 222
jianghouren@jianghourendeMacBook-Pro test % ls -al
total 16
drwxr-xr-x 5 jianghouren staff 160 3 12 22:43 .
drwxr-xr-x+ 55 jianghouren staff 1760 3 12 22:22 ..
-rw-r--r--@ 1 jianghouren staff 6148 3 12 11:48 .DS_Store
drwxr-xr-x 4 jianghouren staff 128 3 12 22:13 111
drwxr-xr-x 2 jianghouren staff 64 3 12 22:43 222
jianghouren@jianghourendeMacBook-Pro test % ls -alt
total 16
drwxr-xr-x 5 jianghouren staff 160 3 12 22:43 .
drwxr-xr-x 2 jianghouren staff 64 3 12 22:43 222
drwxr-xr-x+ 55 jianghouren staff 1760 3 12 22:22 ..
drwxr-xr-x 4 jianghouren staff 128 3 12 22:13 111
-rw-r--r--@ 1 jianghouren staff 6148 3 12 11:48 .DS_Store
jianghouren@jianghourendeMacBook-Pro test %

代码块中:. 代表当前目录,..代表上级目录。

1
2
3
4
5
6
7
8
9
jianghouren@jianghourendeMacBook-Pro test % cd .
jianghouren@jianghourendeMacBook-Pro test % ls -alt
total 16
drwxr-xr-x 4 jianghouren staff 128 3 12 11:48 .
drwxr-xr-x 2 jianghouren staff 64 3 12 11:48 111
-rw-r--r--@ 1 jianghouren staff 6148 3 12 11:48 .DS_Store
drwxr-xr-x+ 55 jianghouren staff 1760 3 12 11:44 ..
jianghouren@jianghourendeMacBook-Pro test % cd ..
jianghouren@jianghourendeMacBook-Pro ~ %

代码块中:drwxr-xr-x,d 代表目录,rwxr-xr-x 代表权限。

1
2
3
4
5
6
7
8
9
10
11
12
13
jianghouren@jianghourendeMacBook-Pro test % cd 111
jianghouren@jianghourendeMacBook-Pro 111 % ls
// 新建一个文件,并写入内容。
jianghouren@jianghourendeMacBook-Pro 111 % echo "123456" >> 1.txt
jianghouren@jianghourendeMacBook-Pro 111 % ls
1.txt
jianghouren@jianghourendeMacBook-Pro 111 % ls -alt
total 8
// - 代表这是普通文件。
-rw-r--r-- 1 jianghouren staff 7 3 12 18:24 1.txt
drwxr-xr-x 3 jianghouren staff 96 3 12 18:24 .
drwxr-xr-x 4 jianghouren staff 128 3 12 11:48 ..
jianghouren@jianghourendeMacBook-Pro 111 %

cp:copy 的简写,拷贝文件。

1
2
3
4
5
6
7
jianghouren@jianghourendeMacBook-Pro test % echo "aaaa" >> 5.txt
jianghouren@jianghourendeMacBook-Pro test % ls
5.txt
jianghouren@jianghourendeMacBook-Pro test % cp 5.txt 1.txt
jianghouren@jianghourendeMacBook-Pro test % ls
1.txt 5.txt
jianghouren@jianghourendeMacBook-Pro test %

将当前子目录中的 111 目录下的 1.txt 文件,拷贝到当前目录中。

1
2
3
4
5
6
jianghouren@jianghourendeMacBook-Pro test % cp ./111/1.txt .
jianghouren@jianghourendeMacBook-Pro test % ls
1.txt 111
jianghouren@jianghourendeMacBook-Pro test % ls ./111
1.txt
jianghouren@jianghourendeMacBook-Pro test %

cat:查看文件内容。

1
2
3
jianghouren@jianghourendeMacBook-Pro test % cat 1.txt
123456
jianghouren@jianghourendeMacBook-Pro test %

rm:删除文件或目录。

1
2
3
4
5
6
7
8
9
10
11
12
13
jianghouren@jianghourendeMacBook-Pro test % ls
1.txt 111
// 删除文件。
jianghouren@jianghourendeMacBook-Pro test % rm 1.txt
jianghouren@jianghourendeMacBook-Pro test % ls
111
// 这样是不可以删除目录的。
jianghouren@jianghourendeMacBook-Pro test % rm 111
rm: 111: is a directory
// 删除目录。r 代表循环,f 代表强制。
jianghouren@jianghourendeMacBook-Pro test % rm -rf 111
jianghouren@jianghourendeMacBook-Pro test % ls
jianghouren@jianghourendeMacBook-Pro test %

sudo:切换当前用户的权限,比如切换到 root。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
jianghouren@jianghourendeMacBook-Pro test % id
uid=501(jianghouren) ......
// 通过 root 来创建目录。
jianghouren@jianghourendeMacBook-Pro test % sudo mkdir 222
Password:
jianghouren@jianghourendeMacBook-Pro test % ls
222
jianghouren@jianghourendeMacBook-Pro test % ls -alt
total 16
drwxr-xr-x 4 jianghouren staff 128 3 12 19:00 .
// 可以看到,这里的创建者是 root。
drwxr-xr-x 2 root staff 64 3 12 19:00 222
-rw-r--r--@ 1 jianghouren staff 6148 3 12 11:48 .DS_Store
drwxr-xr-x+ 55 jianghouren staff 1760 3 12 11:44 ..
// 通过普通权限来创建目录。
jianghouren@jianghourendeMacBook-Pro test % mkdir 111
jianghouren@jianghourendeMacBook-Pro test % ls -alt
total 16
drwxr-xr-x 5 jianghouren staff 160 3 12 19:00 .
// 可以看到,这里 111 目录和 222 目录的创建者是不同的。
drwxr-xr-x 2 jianghouren staff 64 3 12 19:00 111
drwxr-xr-x 2 root staff 64 3 12 19:00 222
-rw-r--r--@ 1 jianghouren staff 6148 3 12 11:48 .DS_Store
drwxr-xr-x+ 55 jianghouren staff 1760 3 12 11:44 ..
jianghouren@jianghourendeMacBook-Pro test %

下面可以看到,222 目录是可以通过普通权限删除的,这是因为 222 目录属于 test 的子目录,而 test 目录是由 jianghouren 创建的,所以可以通过 jianghouren 权限来删除。

1
2
3
4
5
6
jianghouren@jianghourendeMacBook-Pro test % ls
111 222
jianghouren@jianghourendeMacBook-Pro test % rm -rf 222
jianghouren@jianghourendeMacBook-Pro test % ls
111
jianghouren@jianghourendeMacBook-Pro test %

但当进入到 222 目录后,此时权限是属于 root 的,再使用 jianghouren 权限来进行创建和删除目录便不可以了。

1
2
3
4
5
6
7
8
9
10
11
12
13
jianghouren@jianghourendeMacBook-Pro test % cd 222
jianghouren@jianghourendeMacBook-Pro 222 % sudo mkdir 333
jianghouren@jianghourendeMacBook-Pro 222 % ls
333
jianghouren@jianghourendeMacBook-Pro 222 % mkdir 444
mkdir: 444: Permission denied
jianghouren@jianghourendeMacBook-Pro 222 % rm -rf 333
rm: 333: Permission denied
jianghouren@jianghourendeMacBook-Pro 222 % ls
333
jianghouren@jianghourendeMacBook-Pro 222 % sudo rm -rf 333
jianghouren@jianghourendeMacBook-Pro 222 % ls
jianghouren@jianghourendeMacBook-Pro 222 %

其他:

Mac 平台下,control + l 可以清屏。

open . :使用finder打开当前目录

find / -name 搜索内容名称:查看搜索内容所在位置


安装工具

apt:Ubuntu

brew:Mac

yum:Centos


Vim 基本操作

基本命令:

  • vim 1.txt –> 创建文件(如果不存在)并进入编辑模式

  • :w –> 保存文件

  • :q –> 退出文件

  • :wq –> 保存退出

  • i –> 编辑模式

  • h 左、l 右、k 上、j 下–> 光标移动(退出编辑模式下)

  • yy 复制,p 粘贴,dd 删除。(退出编辑模式下)

  • 按 esc 退出编辑模式

Linux vi/vim


Linux 中的环境变量

环境变量

三个重要的环境变量:

  • PATH(执行的命令)。

比如 ls 命令其实会到 PATH 环境变量中去寻找

1
2
3
jianghouren@jianghourendeMacBook-Pro ~ % which ls
/bin/ls
jianghouren@jianghourendeMacBook-Pro ~ %
  • PKG_CONFIG_PATH(pkg-config)。

    通过 pkg-config + 参数 来使用库文件。使用的库文件也是到 PKG_CONFIG_PATH 中寻找。

    pkg-config 命令主要为使用 C/C++ 开发应用程序时,链接库时使用。

  • LD_LIBRARY_PATH。

环境变量的变更

在 Windows 中,通过设置环境变量在尾部添加。

Linux 平台下:

~/.bashrc(表示当前用户工作目录下的 .bashrc 文件设置环境变量)

Mac 平台下:

通过 env 来查看环境变量,通过 env | grep PATH 查看 PATH。

通过 vim ~/.bash_profile 来编辑(~/.bash_profile 表示当前用户工作目录下的 .bash_profile 文件设置环境变量)

当设置完毕后,执行 source ~/.bash_profile 来生效。


备注

参考资料:

慕课网-音视频基础(李超)

欢迎关注微信公众号:非也缘也