linux 基础
在旧电脑上安装了 Ubuntu ,把 Windows 和其他文件一整个扬了的那种,有一种毁天灭地的美。
文件系统
windows 有盘符的概念,如C盘,D盘,E盘等等,但是 Linux 没有盘符的概念。
Linux 的目录结构:所有的目录都是从根目录/
开始。
cd、pwd、cat
查看命令的方式,可以使用 man 命令
。
pwd
命令:print name of current/working directory, 打印当前目录的名字。
.
代表当前目录,..
代表上一级目录。
回到上一次的目录 cd -
cat
命令:concatenate files and print on the standard output, 查看文件内容。
对于读小文件而言,是没有问题的,但是当文件的内容非常多的时候,cat起不到应有的作用。
useradd、userdel
useradd
命令:create a new user or update default new user information, 添加用户的命令
1 | sudo useradd test3 //创建的用户属于三无产品,没有密码,在/home目录下面没有对应的文件夹,shell不一样 |
1 | wangdao@wangdao:~$ cat /etc/passwd |
注意:为了保证系统的安全性,不允许root用户直接进行登录。(root用户都是有的,因此知道账号)
userdel
命令:delete a user account and related files, 删除用户以及用户所对应的文件
1 | //-r选项可以删除用户以及用户对应的在/home下的文件夹,如果不加-r,就只会在/etc/passwd下面删除账号,不会删除/home的文件夹 |
目录的创建与删除、tree
mkdir
命令:make directories, 创建文件夹
1 | mkdir 20221230 //创建目录 |
rmdir
命令:remove empty directories, 删除空目录
1 | //如果目录不是空的,可以先进到内层目录,然后一级一级空目录的进行删除 |
tree
命令:打印目录的结构(安装与使用):
文件的创建
文件的创建命令:touch
、echo
、cat
、vi
/vim
touch
:change file timestamps 改变时间戳(1970.1.1 0:0:0) :
1 | touch file //可以创建空文件 |
echo
: display a line of text 回音命令
创建空文件:
cat
:使用 ctrl+d 进行正常退出,ctrl+c 异常退出(中断)。
vi
/vim
:
1 | vim file4 //执行以下步骤,键盘左上角Esc,再按shift + :,再输入wq,再按enter |
文件内容的查看
cat
、head
、tail
、more
、less
- head - output the first part of files 查看文件的前面一部分内容
- tail - output the last part of files 查看文件的尾部内容
- more - file perusal filter for crt viewing 查看文件里面的内容,可以一行行的查阅。
- less - opposite of more
文件的拷贝、移动、删除
cp
- copy files and directories 拷贝文件或者文件夹(目录)
普通文件的拷贝:
1 | cp srcFile destFile //cp 源文件 目的文件 |
普通文件拷贝给目录文件:
1 | cp file dir |
目录拷贝给目录:
1 | cp -r dir1 dir2 // -r 表明这个拷贝过程是递归的 |
mv
- move (rename) files
可以移动普通文件,也可以移动目录文件。
“文件”是泛指。在 Linux 中,一切皆文件。
1 | mv 源文件 目的文件 |
rm
- remove files or directories
删除普通文件:
1 | rm file |
删除目录文件:
1 | rm -fr dir |
删除所有的文件(普通文件、目录文件):
1 | rm -fr * |
注意:rm
命令在使用的时候,最好加上-i
,可以起提示作用。
ls
-a
选项,显示文件夹下面的所有文件,包括隐藏文件。在 Linux 中,以.
开头的文件是隐藏文件。
-l
选项,显示文件夹下的文件的具体信息。
-h
选项,将文件大小换算成人类可读的。
-i
选项,将文件对应的结点号展示出来。
1 | drwxrwxr-x 3 wangdao wangdao 4.0K 12月 31 10:58 . |
硬链接与软链接
ln
- make links between files
硬链接的创建:
1 | ln 源文件 目的文件 |
创建硬链接之后,相当于多创建了一个指向文件的指针。硬链接文件的 inode 号是一样的。修改任何一个文件,都会导致文件的内容发生改变。
软链接的创建:
1 | ln -s 源文件 目的文件 |
创建软链接之后,相当于对源文件创建了一个快捷方式,源文件与目的文件 inode 号不一样。删除源文件则快捷方式会失效,但删除软链接文件,源文件不受影响。
chmod、umask
chmod
- change file mode bits 改变文件的访问权限
文字设定法:
1 | u代表本用户 g代表组用户 o代表其他用户 a代表所有用户 |
例子:
数字设定法:
1 | // 以下为注释 |
用法示例:
1 | [asdf@www.masswerk.at:2]$ pwd |
以下关于 umask 的内容转载自 https://www.coorw.com/3210.html
在 linux 系统中,我们创建一个新的文件或者目录的时候,这些新的文件或目录都会有默认的访问权限,umask命令与文件和目录的默认访问权限有关。
umask
为 Shell 内建命令,用于设置创建文件时的权限掩码。权限掩码由 3 个八进制数字组成,将 777(八进制)减掉权限掩码后,即可得到新建文件的默认权限。
命令格式:
1 | umask [-p] [-S] [MODE] |
后不跟任何选项与参数单独执行 umask
,则以八进制格式显示当前权限掩码。
选项说明:
1 | -p [MODE] |
注意:出于安全的考虑,文件的执行权限不能通过权限掩码来设置,必须手工修改。
常用示例:
1 | // 设置权限掩码并查看 |
1 | // 以字符形式显示新建文件的默认权限 |
find
find
命令:查找文件。
按照名字进行查找:
1 | find 路径(绝对路径或相对路径) -name "文件名字" |
重定向
重定向输入<
,就是 stdin
重定向输出>
或1>
,就是 stdout
重定向的错误输出2>
,就是 stderr
linux 一切皆文件
文件句柄(门把手)
文件描述符 fd
可以将文件描述符看成是操作文件的指针
追加模式:
1 | >> |
1 | 2>> |
例外:
grep、正则表达式
例子:
1 | wanko@wanko:~$ cat file1 |
-r
递归;-n
显示行号。
正则表达式:
1 | wanko@wanko:~$ cat filetst |
1 | wanko@wanko:~$ grep -nE "e*" filetst |
1 | wanko@wanko:~$ grep -nE "^s" filetst |
vim 的使用
插入模式 (insert)
从普通模式进到编辑模式:
- 小写
i
,光标前插入 - 小写
a
,光标后插入 - 大写
I
,行首插入 - 大写
A
,行尾插入 - 小写
o
,下一行插入 - 大写
O
,上一行插入
普通模式 (normal)
u
是撤销的快捷键,作用是撤销上一次对文本的更改。
x
用于删除光标后的一个字符。
dd
删除一行。
gg
跳转到文本首行。
G
跳转到文本尾行。
$
移动到行尾,^
移动到行首。
yy
+p
:yy
复制光标当前所在行,p
将内容粘贴到光标的下一行去。
6
+G
,跳转到第 6 行。
3
+j
,向下移动 3 行。
ndG
:(n
是数字)删除第n行到当前行的内容,左闭右闭。
命令行模式
/待查单词
:n
下一个,N
上一个。
set nu
:显示行号。
s/待查找项/替换项
:默认单行第一个匹配项。
s/待查找项/替换项/g
:替换一行里所有的匹配项。
num1,num2s/待查找项/替换项/g
:将num1到num2(包含)行的匹配项进行替换。
- 例子:
2,4s/and/kkk/g
%s/待查找项/替换项/g
:全文替换。
可视模式 (visual)
按v
进入可视模式,多用于选中区域。按 V
进入行可视模式,用于选中行。
按Ctrl
+v
或 Ctrl
+q
进入块可视模式 (visual block)。
进入块可视模式后,按I
或A
进入插入模式(相当于 i 和 a),退出插入模式后对本行所做的改动将被应用到选中的每一行同一位置。常用于批量添加注释。
安装 vimplus
没什么好说的: https://github.com/chxuan/vimplus
字体下载链接: https://www.nerdfonts.com/font-downloads
感觉不咋地,最后还是卸了。