Linux
是由unix衍生而来(小知识:mac也是使用unix核心),由全世界的程序员一起开发的开源系统。如今基于linux已经有了很多版本,我们后面使用的就是衍生版本之一的Ubuntu。
Ubuntu
安装:https://cn.ubuntu.com/download/server/step1
VMware虚拟机
安装:https://www.vmware.com/cn/products/workstation-pro/workstation-pro-evaluation.html
安装完后需要输入注册码才能使用,网上随便找找
在虚拟机上安装Linux系统的时候,记得打× OpenSSH 意思是安装openssh。
(如果没安装openssh,就安装完Linux执行该命令:sudo apt install openssh-server
Xshell Xftp
xshell:用于连接并操作虚拟机(直接操作虚拟机比较麻烦,在window用xshell操作方便点)
xftp:用于将window中的文件传给linux
(两者都是直接新建一个项目,然后输入路由器分配给该虚拟机的ip地址即可连接)
补充:Linux查看ip地址的方法:ifconfig
用户和用户组
介绍:Linux系统需要创建用户才可以操作,创建的每个用户都有相应的数据存放文件(如conan用户在home/conan)。但默认有一个root用户(权限最高,一般不切换到该用户,危!),其的root文件与home同一目录。
因为root权限太高了,所以一般是普通用户使用sudo命令暂时得到root权限执行某个语句
状态信息介绍:格式为:用户名@服务器名称:当前所处的目录$,~代表用户目录,如果不是用户目录,会显示当前的绝对路径地址。
代码语言:javascript复制conan@ubuntu-server:~$
用户指令:
查看当前文件所在目录:pwd
切换到root用户:sudo -s
切换用户:su conan
退出当前用户:exit
添加新用户:sudo useradd study -m -s /bin/bash
【在用户创建时顺便创建用户的文件夹,并指定shell(任意一种命令解释程序,用于处理我们输入的命令)为bash】
为用户添加密码:sudo passwd study
删除用户:sudo userdel study
查看当前登录账号(不是正在操作文件的账号):who
查看当前用户所在的用户组:groups
查看当前用户所属的用户组的相关信息:id
查看指定用户的所属用户组的相关信息: id test
为用户添加sudo权限:sudo usermod study -G sudo
(在创建新用户的时候,是没有sudo权限的,需要通过sudo去添加权限)
查询文件夹中的一般文件:ls
查询文件夹中的隐藏文件:la
查询文件夹中all文件的详细信息:ll
(也可以在其后面加文件名,表示查看指定文件的详细信息)
.
..
分别代表当前文件夹,以及上一级文件夹。 可以中间加空格配合以上几个一起使用 如:ls ..
显示上一级的一般文件
切换到某文件夹:cd xx/xx
切换到当前用户下的文件夹:cd ~
文件
文件详细信息介绍
代码语言:javascript复制test@ubuntu-server:~$ ls -al
total 44
drwxr-xr-x 4 test test 4096 Jan 24 08:55 .
drwxr-xr-x 4 root root 4096 Jan 24 04:24 ..
-rw------- 1 test test 2124 Jan 24 04:29 .bash_history
-rw-r--r-- 1 test test 220 Feb 25 2020 .bash_logout
-rw-r--r-- 1 test test 3771 Feb 25 2020 .bashrc
drwx------ 2 test test 4096 Jan 21 15:48 .cache
drwx------ 3 test test 4096 Jan 23 14:49 .config
-rw-r--r-- 1 test test 807 Feb 25 2020 .profile
-rw------- 1 test test 34 Jan 24 04:17 .python_history
-rw-r--r-- 1 test test 0 Jan 21 15:52 .sudo_as_admin_successful
-rw------- 1 test test 7201 Jan 24 08:55 .viminfo
第一列:
第一个字符表示:文件类型(-
表示普通文件,l
为链接文件,d
表示目录(文件夹),c
表示字符设备、b
表示块设备,还有p
有名管道、f
堆栈文件、s
套接字等,这些一般都是用于进程之间通信使用的)
第2-4个字符表示(U):文件的拥有者(User)对该文件的权限
第5-7个字符表示(G):文件所属同一用户组(Group)内用户对该文件的权限
第8-10个字符表示(O):其他用户(Other)对该文件的权限
第二列:文件创建的链接文件(快捷方式)数量,一般只有1表示只有当前文件
第三列:该文件或是目录的拥有者。
第四列:文件所属的组。
第五列:文件大小,以字节为单位。(8位一字节)
第六列:文件的最后一次修改时间
最后一列:文件名(前面有.的是隐藏文件,其余为普通文件)
文件指令:
- 创建一个链接文件(就是某文件的快捷方式):
ln .bash_logout kk
(创建后,会生成一个名为kk的文件,我们对此文件的操作相当于直接操作.bash_logout)
- 创建一个普通文件:
touch test01 test02 test 03
- 创建一个文件夹:
mkdir xxx
- 修改文件权限:
- 方法一:
chmod (u/g/o/a)( /-)(r/w/x) 文件名称
从ugo中选择或是直接a表示所有, 和-表示添加和删除权限 举例:chmod a-w test
意思是test的all权限都减少w的权限 - 方法二:
chmod 三个数子 文件名称
约定:r=4,w=2,x=1,需要什么权限就让对应权限的数字相加,一个数字表示一个rwx的权限状态 举例:chmod 664 test
是指定该文件的权限为-rw-rw-r--
- 方法一:
- 修改文件拥有者:
sudo chown root test
:将test文件拥有者修改为root - 修改文件所属组:
sudo chgrp root test
:将test文件所属组修改为root - 复制文件:
cp ../test study
:将上一级目录中下的test文件夹中的study文件负责到当前目录 (复制的时候要用与当前目录的相对路径去找需要复制的文件) - 复制文件夹:
cp -r ../test
(-r代表循环文件夹内容) - 移动文件(夹):
mv test study
:移动test文件到study文件夹中 此操作必须在两个目录的公共父目录中才可操作 - 重命名文件:
mv test test02
:当检测没有test02这个文件,就会将test文件名更改为test02 - 删除文件:
rm -r test
:删除test文件 (-r是指递归删除文件夹中的内容) - 批量删除同后缀的文件:
rm *.txt
:批量删除当前文件夹内以txt结尾的文件 - 搜索文件:
sudo find /etc -name passwd
:搜索/etc目录下名为passwd的文件 - 批量搜索:
sudo find /etc -name p*
:搜索/etc目录下名字p开头的文件
系统管理
挂载:指的就是将设备文件中的顶级目录连接到 Linux 根目录下的某一目录(最好是空目录),访问此目录就等同于访问设备文件。
(比如我们的主硬盘,挂载点就被设定为/
根目录,而我们所有保存的文件都会存储在硬盘中,如果你有U盘,最好将U盘的文件格式改为ExFat,可以直接在Windows中进行格式化)
找u盘设备名称:①根据内存容量找到u盘的位置(我的为:/dev/sdb ②在去招u盘位置下面Device中是 /dev/sdb1还是/dev/sdb 。最后找u盘的位置需要根据Device显示路径的去找 挂载:是将u盘内的东西挂在指定的文件夹里(相当于该文件夹是u盘的快捷键
系统指令:
- 打开任务管理器:
top
(按q退出) 此时按1
可以查看CPU核心的使用情况 输入free
可以查看系统内存使用情况 - 查看所有块设备的信息:
lsblk
- 查看硬盘实体情况:
sudo fdisk -l
- 挂载u盘:
sudo mount /dev/sda1 u-test/
:将/dev/sda1
的u盘挂载在u-test/
文件下 - 取消挂载:
sudo umount /dev/sda1
(取消挂载需要先退出来u盘挂载的文件夹) - 查看当前磁盘的使用情况:
df
- 查看所有的进程:
ps -ef
- 终止进程:
kill 信号 PID
如:kill -9 11438
信号:1 (HUP):重新加载进程;9 (KILL):杀死一个进程;15 (TERM):正常停止一个进程; PID通过查看进程可以得到进程的PID - 关机:
sudo shutdown
立即关机:sudo shutdown now
(正常关机,只需要输入shutdown即可,系统会创建一个关机计划,并在指定时间关机,或是添加now表示立即关机)
压缩解压
使用tar
命令来完成文件压缩和解压操作,在Linux中比较常用的是gzip格式,后缀名一般为.gz,tar命令的参数-c表示对文件进行压缩,创建新的压缩文件,-x表示进行解压操作,-z表示以gzip格式进行操作,-v可以在处理过程中输出一些日志信息,-f表示对普通文件进行操作
压缩解压指令:
- 压缩文件:
tar -zcvf test.tar.gz *.txt
:压缩当前文件夹内以txt结尾的文件,压缩包名为 test.tar.gz - 压缩文件夹:
tar -zcvf test.tar.gz test/
:压缩test文件夹,压缩包名为test.tar.gz - 解压到当前文件夹:
tar -zxvf test.tar.gz
Vim
xim test01,若test01文件不存在则就会创建一个新的文件并进入vim编辑。若有该文件,则进入该文件的编辑状态
这时我们直接输入内容是无法完成的,因为默认进入之后为命令模式
,Vim编辑器默认有三种模式:
- 命令模式:此模式下可以输入任意的命令进行操作,所有的输入都被看做是命令输入,而不是文本编辑输入。
- 编辑模式:此模式下输入的任何内容都会以文本编辑方式写入到文件中,就像我们直接在Windows的记事本中写内容一样。
- 末行模式:此模式下用于输入一些复杂命令,会在最后一行进行复杂命令的输入。
vim默认界面为命令模式,输入命令后就进入编辑模式;
ESC
可以退出编辑模式 进入末行模式:
退出末行模式::
或者/
vim指令(进入到vim编辑界面)
命令模式——插入模式:
i
在光标前开始插入a
光标后移一位,开始插入o
直接跳到下一行,然后插入A
在当前行的最后继续写入I
在当前行的最前面继续写入
末行模式:
-
:set number
开启行号 -
:w
保存 -
:wq
或:x
保存并关闭 -
:q
关闭 -
:q!
强制关闭 (一般是不让文件保存时使用) -
/it
?it
都可以开启搜索功能 -
:[addr]s/源字符串/目的字符串/[option]
替换功能 举例::s/it/he/g
:将当前行中的it
全部替换为he
addr表示第几行或是一个范围,option表示操作类型:- g: globe,表示全局替换
- c: confirm,表示进行确认
- p: 表示替代结果逐行显示(Ctrl L恢复屏幕)
- i: ignore,不区分大小写
可视化模式:
在vim界面 按下键盘上的
v
即可进入,它能够支持选取一段文本,选取后,我们可以对指定段落的文本内容快速进行复制、剪切、删除、插入等操作,非常方便。在此模式下,我们可以通过上下左右键进行选取,以进入可视化模式时的位置作为基本位置,通过移动另一端来进行选取。
对选中的区域操作:
- y 复制选中区域
- d/x 剪切(删除)选中区域
- p 粘贴
- u 撤销上一步