本文章总结了基础的linux入门命令和使用方法,适合新手进行学习,学习后可以愉快地使用Linux进行文件管理等功能。
目录
1.概述
Linux是一种免费且开源的类Unix操作系统,主要特点是高度定制化与灵活性。它由内核和基于此内核的各种发行版组成,广泛应用于服务器、超级计算机乃至家用电脑和个人设备上。Linux支持多用户、多任务,拥有丰富的软件生态,是开发者的利器,也是构建稳定、安全系统的首选平台。作为新手,学习Linux是很重要的。
2.安装
1.使用centos虚拟机,参考网络上的虚拟机安装教程。
安装Ubuntu系统:https://cn.ubuntu.com/download/server/step1
安装VMware:https://www.vmware.com/cn/products/workstation-pro/workstation-pro-evaluation.html
2.购买云服务器
3.用户和用户组
我们先用自己的用户在linux尝试创建文件夹,创建成功,我们的用户名为“itheima",我们所在的位置是/home/itheima,但是当我们尝试在根目录创建文件夹,提示我们没有权限,这是为什么?
答案是Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统的用户,都必须申请一个账号,然后以这个账号的身份进入系统。一般的普通用户只能做一些比较基本的操作,并且只能在自己的目录(如/home/itheima)中进行文件的创建和删除操作。
而linux存在一个超级用户root,拥有最高的执行权限,正常情况下不会使用root进行操作,只有特殊情况会使用,我们可以使用sudo -s并输入当前用户的密码切换到root用户。我们可以看到前缀变成了root:
需要退出,直接exit就可以了:
新增和删除用户
想要进行用户管理的操作,必须要在root权限才可以执行,但是现在我们是itheima用户,我们在命令前面添加sudo来暂时以管理员身份执行此命令,比如说我们现在想要添加和删除一个新的用户:
sudo useradd wyw
sudo userdel wyw
-m 自动建立用户的登入目录
sudo useradd wyw -m -s /bin/bash
可以看到成功创建了一个带有用户名的文件夹在home路径下
切换用户
我们上一步用-m命令新建的用户还没有设置密码,当我们需要切换用户的时候要先设置它的密码,命令如下:
sudo passwd 用户名
出现successfully就是创建密码成功
使用 su - 用户名进行用户切换
su - wyw
然后用exit退出用户。
创建用户的补充内容
Linux中的命令一般都可以携带一些参数来以更多特地的方式执行,我们可以在创建用户时,添加一些额外的参数来进行更多高级操作:
- -d<登录目录> 指定用户登录时的起始目录。
- -g<群组> 指定用户所属的群组。
- -G<群组> 指定用户所属的附加群组。
- -m 自动建立用户的登入目录。
- -M 不要自动建立用户的登入目录。
- -s 指定Shell,一般指定为/bin/bash
who和whoami
输入who可以查看当前登录账号(注意是登录的账号)输入whoami可以查看当前的操作账号:比如我当前使用itheima登录的,并且当前账号是tiheima,那我的who和whoami都是itheima,而当我用wyw账号登陆之后,who还是itheima,whoami就是wyw了。
用户组
每个用户都有一个用户组,我们可以输入groups和id查看当前用户的所有用户组信息:
我们发现我们创建的study用户没有sudo的执行权限:
我们可以通过以下办法给我们新创建的用户提供sudo权限:
输入:sudo visudo
进入之后找到root下面,可以看到我们的root和itheima都已经添加,我们加入新创建的用户,保存并退出,这里涉及到vim的内容,后文会写出。
现在就成功执行了,可以执行sudo切换到root。
实际上,我们的用户信息是存储在配置文件中的,存放在/etc/passwd和/etc/grouop中,我们可以使用cat命令将文件内容打印到控制台:
输入 cat /etc/passwd
而我们的密码则存放在/etc/shadow中,需要root权限才能查看。
输入 cat /etc/group
4.文件操作
列出所有文件
ls 查看文件
ls -a 列出所有隐藏文件
ls -a -l 列出所有详细信息
ll -a 和 ls -a -l 一样
这些文件信息都代表了什么呢?我们可以仔细看看:
如下图所示,这一部分是每一个文件都有的以字符串形式出现的,如drwx------,此处第一个字符表示此文件的类型,常见的有 '-'表示普通文件, ‘l’为链接文件, ‘d’表示目录文件。
第2-4,5-7,8-10分别是User(文件拥有者),Group(文件所属用户组),Other(其他用户)对该文件的权限,快速记忆为UGO,其中 r 为读,w 为写,x 为执行权限。
例如:drwxrw-r-- 就表示这是一个目录,文件拥有者可以有读写和执行的权限,组内其他用户只能读和写,其他用户只能读。
第二栏数据可以看到是一列数字,它表示文件创建的链接文件(快捷方式)数量,一般只有1表示只有当前文件。
第三栏数据为该文件或是目录的拥有者。
第四栏数据表示所属的组。
第五栏数据表示文件大小,以字节为单位。
第六栏数据为文件的最后一次修改时间。
最后一栏就是文件名称了,就不多说了,..表示上级目录,.表示当前目录,最前面有一个.开头的文件为隐藏文件。可以看到上级目录(也就是/home目录)所有者为root,并且非root用户无法进行写操作,只能执行读操作,而当前目录以及目录下所有文件则属于wyw用户,wyw用户可以随意进行修改。
修改文件权限
想要修改文件权限,我们有两种方式
第一种:可以用 chmod 命令来给文件新增或者删除权限:
touch test ; //touch是创建文件
makir //是创建目录
创建一个新的test文件
发现他默认文件拥有者和组内用户都可以读写该文件,我们要把它设置为只读,chmod的使用方法是
chmod (u/g/o/a)(+/-)(r/w/x) 文件名称 #(a表示全部)+-代表增删权限,后面的rwx表示你想要修改的权限
现在就修改成功了。
第二种:约定r=4 , w=2 ,x=1 需要什么权限就让对应权限的数字相加,一个数字表示一个rwx的权限状态,比如我们想把刚刚修改的只读文件改回去,将其权限修改为 rw-rw-r--,那么对应的数字就是644,对应的命令为:
chmod 644 test
成功执行修改。
修改文件的拥有者和所属组
接下来,如果我们想把test文件的拥有者和所属组都修改root,我们可以这样操作:
使用命令: chown 和 chgrp
sudo chown root test #修改拥有者为root
sudo chgrp root test #修改所属组为root
我们现在已经成功修改了,现在我们再想操作这个文件夹会显示我们没有权限:
不过,我们依然可以删除这个文件,尽管我们已经不是它的拥有者和所属组,这是因为 rm 命令是根据当前所在目录的拥有者来执行的,我们现在在自己的home/wyw目录中,我们还是这个的拥有者和执行者,虽然该文件我们没法进行操作,我们依然可以删除它。
复制
cp 要复制的文件路径 复制后的名称
cp ../test test
复制一整个目录需要加上 -r 表示将目录中的文件递归复制
cp -r study study2
移动
mv 原地址 目标地址
重命名
重命名也是使用mv
mv 原名 想要修改的名称
删除
删除使用 rm
比如现在我们想删除study2目录(注意需要添加-r参数表示递归删除文件夹中的内容)
rm -r study2
rm *.txt #删除指定后缀的文件夹
删除根目录下所有文件,十分危险 -f 是忽略提示 *通配符表示任意文件。
rm -rf /*
搜索
find命令
sudo find /etc -name passwd
它还支持通配符,比如搜索以s开头的文件:
sudo find /etc -name s*
5.系统管理
top 查看任务管理器
可以很清楚地看到当前CPU的使用情况以及内存的占用情况。
按数字1可以展示所有CPU核心的使用情况
按下f键可以设置以哪一列进行排序或是显示那些参数:
按下q键即可退出监控界面。
free命令查看当前系统的内存使用情况
-m表示以M为单位,-g表示以G为单位,默认是kb为单位。
df命令查看当前磁盘使用情况
ps查看当前运行进程
输入ps可以查看当前运行的一些进程,其实和top很像,但是没有监控功能,只能显示当前的。
ps-ef查询全部进程
kill pid 杀死进程
- 1 (HUP):重新加载进程。
- 9 (KILL):杀死一个进程。
- 15 (TERM):正常停止一个进程。
正常关机 shutdown
sudo shutdown #系统会创建一个关机计划,并在指定时间关机
sudo shutdown -c #取消关机操作
sudo shutdown now #马上关机
5.压缩和解压
我们使用 tar 命令来完成文件亚索和解压操作,在Linux中比较常用的是 gzip 格式,后缀名一般为 .gz,tar命令的参数 -c 表示对文件进行压缩,创建新的压缩文件,-x 表示进行解压操作,-z 表示以 gzip 格式进行操作,-v 可以在处理过程中输出一些日志信息,-f 表示对普通文件进行操作。
打包和解压单个文件
这里我们创建三个文件并对这三个文件进行打包:
tar -zcvf test.tar.gz *.txt
删除刚刚三个文件夹再解压,得到文件:
对文件夹进行打包和解压
6.Vim文本编辑器
基础操作
vim 一个新的文件会自动帮我们创建。比如 vim hello.txt :
这时候我们没办法直接输入内容,这是因为我们默认进命令模式。vim默认编辑器有三种模式:
- 命令模式:此模式下可以输入任意的命令进行操作,所有的输入都被看做是命令输入,而不是文本编辑输入。
- 编辑模式:此模式下输入的任何内容都会以文本编辑方式写入到文件中,就像我们直接在Windows的记事本中写内容一样。
- 末行模式:此模式下用于输入一些复杂命令,会在最后一行进行复杂命令的输入。
输入 i 就可以进入编辑模式了,界面会显示 INSERT ,我们就可以进行输入,想要回到命令模式我们需要按下 ESC 。
按下 a 表示从当前光标所在位置之后继续写,
按下 i 在光标之前继续写,
o 会直接跳到下一行,而 A 表示在当前行的最后继续写入,I 表示在当前行的最前面继续写入。
输入完成后,我们按下 : 进入末行模式,再输入 wq 即可保存并退出。
接着我们来看一些比较常用的命令,首先是命令模式下的光标移动命令:
- ^ 直接调到本行最前面
- $ 直接跳到本行最后面
- gg 直接跳到第一行
- [N]G 跳转到第N行
- [N]方向键 向一个方向跳转N个字符
在末行模式下,常用的复杂命令有:
- :set number 开启行号
- :w 保存
- :wq或:x 保存并关闭
- :q 关闭
- :q! 强制关闭
搜索
在末行模式中:
使用 / 从前往后搜索
使用?从后往前搜索
按 n 跳转到下一个结果
替换
替换的命令如下
[addr]s/源字符串/目的字符串/[option]
addr表示第几行或是一个范围,option表示操作类型:
- g: globe,表示全局替换
- c: confirm,表示进行确认
- p: 表示替代结果逐行显示(Ctrl + L恢复屏幕)
- i: ignore,不区分大小写
比如我们要将当前行中的hello全部替换为byebye,那么可以这样写:
s/hello/byebye/g
可视化模式
还有一种模式叫做可视化模式,按下键盘上的 v 进入,它能够像我们平时使用Windows一样,对指定段落的文本内容快速进行复制、剪切、删除、插入等操作。在此模式下,我们可以通过上下左右键进行选取,以进入可视化模式时的位置作为基本位置,通过移动另一端来进行选取。
使用以下命令来对选中区域进行各种操作:
- y 复制选中区域
- d/x 剪切(删除)选中区域
- p 粘贴
- u 撤销上一步