前言

每个开发人员应该都应该学会linux系统的操作,起码基本的使用需要知道。本篇文章主要讲解linux系统的分支:Ubuntu的基本使用,不是很深入,但是日常操作绝对够用!!!。Ubuntu有成熟的桌面UI,并且支持纯命令行的模式操作,Ubuntu非常适合从Windows系统过渡到linux系统的用户。

官方网址:ubuntu


🌱 基础操作

图形界面与命令行界面切换

快捷键:

Ctrl + Alt + F1~9

补充:
众所周知图形界面占不少的内存,比如只想跑一个内存消耗大的服务程序,可以关闭图形界面只进入命令行界面。
操作方法如下

# 关闭图形界面只显示命令行界面
systemctl set-default multi-user.target
reboot #需要重启电脑生效

# 重启图形界面
systemctl set-default graphical.target
reboot #需要重启电脑生效

桌面模式打开命令行终端

在桌面模式下,想打命令需要开启命令行终端。
右键空白处,选择“在终端打开”选项,即可打开终端,也可以使用快捷键的方式来快速启动终端
快捷键:

Ctrl + Alt + T

关机

poweroff # 关掉电源
shutdown -h [关机时间] # 参数可以填 now、分钟、时:分

重启

reboot
# 或者
shutdown -r [重启时间]  # 参数可以填 now、分钟、时:分

预览

cat XXX

简单输出

echo XXX

🌱 用户操作

切换到root用户

sudo su

注:不建议在root用户下操作,平常涉及到高权限的情况,应该在普通用户下使用sudo 加命令的形式来操作

退出root用户

exit

退出普通用户

logout

注:这是在命令行界面使用的
在图形界面下的话,点击右上角电源按钮——点击注销


🌱 文件操作

显示当前操作路径

pwd

文件目录切换

cd 想进入的目录
cd ..  # 返回上一目录

创建文件/文件夹

touch 文件名 # 创建文件
mkdir 文件夹名 # 创建文件夹

复制

cp 目标文件 目标目录

移动

mv 目标文件 目标目录

删除文件/文件夹

rm 文件
rm -r 文件夹

编辑文件内容

虽然可以通过echo加上>输出内容到文件,但是太简单,想编辑的话需要使用特殊的编辑器vim

vim 编辑的文件

在vim编辑器中需要默认进入只读模式,以下是一些vim的基本操作

  1. 编辑: 在只读模式中输入i 进入编辑模式,可以输入内容
  2. 返回到只读模式:按下键盘上的ESC
  3. 保存并退出:在只读模式中输入:wq

文件权限

linux文件有四种状态:读(r)、写(w)、执行(e

-rwxrw-r--
# 第一个位置: “-” 表示文件,“d”表示目录
# 后面9个位置分成三份,依次表示所有者、同组其他用户、其他组用户

修改文件的指令:chmod
1、数字表示法修改权限:
分别用4表示r,2表示w,1表示x

例:

chmod 664 test.txt  # 修改此文件 所有者:rw;同组人:rw;其他组:r

2、文本表示法修改权限:
文本表示法用4个字母表示不同的用户: u:所有者; g:组成员; ’o:其他成员; a:所有人
使用3个符号来增加/减少权限: =:重置权限; -:减少权限; +:增加权限

例:

 chmod u+x,g-x,o=x test.txt # 所有者增加执行权限;组成员减少执行权限;其他组成员只有执行权限

修改文件所有者

sudo chown 所有者名称 文件/目录

修改文件所属组

sudo chgrp  组群名称  文件/目录

管理软链接

软链接很像windows下的快捷方式,但是软链接能链接目录

创建软链接

ln -s 原目录or文件 映射目录or文件
# 注意:链接目录的时候,原目录要绝对路径,而且不要在最后加斜杠,要不然会报错“找不到文件”
# 例:

删除软链接

sudo rm  映射目录or文件
# 这里放心,这里删除的是软链接,不会删除映射文件的

🌱 软件管理

在Ubuntu系统安装软件有多种方式,比如apt、dpkg、源码编译、pip、npm等等,五花八门。其中源码编译还分多种方式而且相当复杂,这里只讲aptdpkg两种方式来管理软件。

(1)显示已安装软件

# apt 展示
apt list [--installed | --upgradable | --all-versions]

# dpkg 展示
dpkg-query -l

(2)软件安装

1. apt安装

安装软件前需要更新一下apt管理器

sudo apt update

安装命令:

sudo apt install 软件包名

2. deb包安装

扩展名为.deb的安装包可以通过在桌面UI环境下双击启动包管理器自动安装,也可以使用命令行的方式启动安装。
命令如下:

sudo dpkg -i 安装包名称

(3)软件卸载

1. apt卸载

apt有两种方式卸载软件。

① 只卸载包

sudo apt remove 软件包名
# 或者
# sudo apt autoremove 软件包名

② 卸载包并且卸载所依赖项

sudo apt purge 软件包名
# 或者
# sudo apt autopurge 软件包名

2. deb包卸载

使用.deb文件来安装软件的方式是不能使用apt管理器来帮助我们卸载软件。
卸载命令:

sudo dpkg -r 软件包名
# 或者:   
# sudo dpkg -P 软件包名

🌱 系统管理

查看内存占用

free [-h] # -h是可以转换成可以理解的格式

任务管理器

图形化任务管理器:

gnome-system-monitor

命令行任务管理器:

top

查看显卡状态

如果你的ubuntu电脑中有显卡的话,并且已经安装显卡驱动,可以使用以下命令查看现在显卡的占用状态

nvidia-smi # 这里只显示英伟达显卡的运行状态,AMD的可以百度搜索

实时监控

对系统的资源想实时监控,可以使用watch命令

watch [-n 秒数] 命令

例: watch -n 0.2 free 每隔0.2秒刷新内存情况

进程管理

命令解释
ps -aux 或者ps -ef列出所有进程
kill杀死进程

查看系统信息

uname -a
#输出:# Linux ******-X542UN 5.15.0-46-generic #49-Ubuntu SMP Thu Aug 4 18:03:25 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux

查看ubuntu版本

lsb_release -a
# 或者
cat /etc/issue

🌱 输出信息管理

敲命令之后返回的信息非常多,比如想查看某一进程的id,使用 ps -aux 命令会返回巨多的信息,眼花缭乱。所以需要对信息进行排序、筛选、搜索等操作

(1)grep命令

grep用来筛选有用的信息。可以将一些命令的输出信息通过管道的方式传递到grep命令来处理

grep [options] [pattern] [file ...]

grep的常用参数:

参数解释
-n显示匹配的行号
-i不区分大小写
-v列出没有匹配模式的行
-o只输出匹配的内容
-c统计数量

常用正则表达式:

符合解释
^a匹配开头是a的行
$a匹配结尾是a的行
.占一个字符
*占多个字符
[ ]匹配一个范围

例:

# 查找某一进程的信息
ps -aux | grep 进程名

🌱 定时任务管理

如果有一些脚本程序想在特定的时间段里周期运行,可以使用linux系统内置的crontab工具来设定定时任务

crontab常用参数

编辑定时任务,需要在控制中输入crontab并加上一些参数。
下面是crontab工具的常用参数及解释

参数解释
-e默认编辑器来编辑设定任务表 默认vi
-r删除当前的任务表

检查crontab是否正常:service crond status

编辑任务表

使用crontab -e命令打开任务表之后,需要填写固定格式的内容,才能正确地添加任务
每一条任务模板格式为

* * * * * 任务命令

其中前五个是填运行的时间,后面紧跟要运行的命令
前五个字符的含义与填写范围如下列表所示:

  1. 分钟 : 0-59
  2. 小时 : 0-23
  3. 天 : 1-31
  4. 月 : 1-12
  5. 星期 : 0-6

字符不仅可以填数字,还可以加上特殊符号使得更加的灵活设置

特殊符号解释
*表示任何时刻
,表示分割
-表示一段时间
/n没n次执行一次任务

crontab实例

实例解释
15 3 * * * command每天3点15分运行命令
0 20 * * 1-6 command周一至周六晚上8点运行
*/10 * * * * command每隔十分钟执行一次
30 18 1,4,5 * * command每个月的第1、4、5天的晚上六点十八分会运行命令

解决无法定时运行python脚本的方法

首先肯定先检查crontab服务是否正常运行。
然后检查写的有没有问题。
上一小节说的“conmand” 必须是crontab能找到的PATH路径下的程序,否则请用绝对路径
查看crontab的PATH可以通过这个命令:cat /etc/crontab
在这里插入图片描述

因为我的python3在/usr/local/bin路径下,然而crontab中的PATH中没有/usr/local/bin,所以crontab是不会理解python3是个啥的,crontab中直接写python3是不会运行的。

如果想用crontab跑python脚本的话,记得要写python程序的绝对路径,不然不会执行
正确解决方法:

# 错误写法 */1 * * * * python3  /home/app.py
*/1 * * * * /usr/local/bin/python3  /home/app.py

🌱 FTP工具使用

(1)连接远程ftp服务器

ftp [ip] [port] # 默认远程ftp服务器端口为21

或者不先连接,直接输入ftp,在接下来的命令行中使用open [ip] [port]来连接

(2)输入用户名和密码

连接到服务器之后,命令行会提示输入用户名和密码,输入即可。

(3)远程文件操作

ls # 显示文件目录
cd # 切到文件夹
mkdir # 建立文件夹
get remote_file [local_dir]  # 下载文件
put local_file [remote_dir]  # 上传文件
exit # 关闭ftp连接   或者 bye 、 quit

需要注意,在哪个文件目录开的ftp工具,上传和下载都是默认基于这个目录。
如果需要下载到本地目录。可以使用: lcd 本地绝对文件目录 来切换路径
想向远程ftp服务器上传其他的目录的文件,local_file需要是绝对路径

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐