转至:https://www.cnblogs.com/luomit/p/13857574.html

Ubuntu简述

Ubuntu是常见的三大操作系统Windows、MacOS、Linux中,linux的其中一个发行版;linux系统有着种类繁杂的发行版,其中RedHat、CentOS、Ubuntu、Debian、Deepin(国人开发)等。
Linux主要应用于服务器操作系统,它相对与Windows更加的稳定和安全。

系统文件结构

linux 系统文件结构为目录树结构,

/
/home/vfx
/root
/bin
/mnt
/etc

/ 根目录,类似与windows的C盘,linux的/根目录包含其他所有的目录,是其他目录的父级。 /home/vfx 用户文件夹,在home下每当创建一个用户,都会创建一个用户文件夹,当前用户是fx。 /root 管理员文件夹,每个系统都有一个管理员,该用户拥有当前系统的最高权限。 ......

linux文件的权限机制有利与保护系统的安全,避免用户的误操作。
对于普通用户来说,能够操作和修改的文件仅限于当前用户的文件,管理员则可以管理包括系统文件在内的所有文件。

常用的命令 cd ls cp rm tar

ls,list的缩写,列出目录下的所有项(包括文件和文件夹)

例:列出home下fx用户的所有项

ls /home/vfx

tips:模板 图片 下载 桌面 snap
公共的 视频 文档 音乐 Documents

在linux终端操作时可以使用Tab来补全未写全的命令,使用上下健来获取操作命令历史。

pwd,即print working directory显示打印当前的工作目录。

cd 切换目录,切换或改变当前操作执行在系统目录中的位置。

例:切换到home下的vfx目录下

cd /home/vfx

tips:
mkdir,make directory创建目录(文件夹)
linux的几个特殊的目录:
~ 代表当前用户的主目录
. 代表当前目录
.. 代表上一级目录
cd ~ 切换到主目录
cd ~/home 切换到主目录下home目录下
cd ../maxman 切换到上一级目录下一个名字叫maxman子目录下

例:创建一个名字为python的文件夹

mkdir python

例:在home下创建一个名字为maxman的文件夹

mkdir /home/maxman

创建多层文件夹(一次性创建多个层级嵌套的文件目录树) -p

mkdir -p /new/max/man

例:删除maxman目录rm,即remove删除文件或者目录

rm -rf maxman

cp,即copy复制文件或目录这里的r表示recursive递归删除,f便是force强制删除(谨慎使用)

例:复制maxman到用户目录下

cp -rf maxman /home/vfx

例:重命名maxman为houdini mv,即move移动文件或目录(重命名)

mv maxman houdini
 tar,即tape archive档案打包、创建档案包这是manman目录就会变为houdini,如果houdini已经存在,则自动变为houdini1或者houdini...
tar -cvf maxman.tar maxman

-cvf打包,其中c表示create创建档案,v表示verbose显示详情,f表示文件
也可以一次打包多个文件"tar -cvf xxx.tar file0 file1 file2"

tar -xvf maxman.tar -C /home/manman

归档并压缩-xvf解包,其中-C(大写)用来指定解包后文件要存放的地址,不指定默认解包到当前目录下

-cfx -xvf 只是对文件目录进行打包和解包,没有对文件进行压缩;
-czvf -xzvf 则是在打包或解包时同时对文件进行压缩和解压缩处理;
通常所见到的*.tar.gz格式就是压缩打包形式

ln 软链接,即windows下的"快捷方式"

使用ln命令(link)来创建软链接
ln -s source link
其中,-s表示soft软链接(默认为硬)

ln -s maxman /home/vfx/桌面/manman

文本编辑器 vi gedit连接maxman到桌面的maxman

vi/vim,是一个基于控制台的文本编辑器,vim是vi的升级版
gedit,是一个基于GUI的文本编辑器

vim name.txt #打开name.txt文件,如果该文件存在则打开编辑,如果不存在则创建后打开

模式的切换
vim的基本用法

编辑模式Insert Mode 按键盘i键进入
命令模式Command Mode 按键盘ESC键进入
保存和退出命令
:wq 保存并推出
:q 退出
:q! 强制退出
:qw! 强制保存退出

vim的更多用法

vim 是一个全键盘操作的文本编辑器,工作效率比较底,掌握基本的用法即可,如果需要了解更多复杂的操作可以到网络上临时搜索用法即可

本人推荐使用vscode简单、强大、漂亮

用户及权限系统 chmod

Ubuntu用户管理

添加用户

sudo useradd -m username

sudo表示使用管理员的身份执行操作,-m表示在/home下添加用户目录
删除用户

sudo userdel username

修改用户密码

sudo passwd username

超级管理员除了管理员,还有特殊用户和普通用户的区别,区别在于特殊用户可以在命令前加sudo来暂时使用管理员权限,普通用户则不可以;能使用sudo权限的用户为sudoer

首次使用root用户需要设置管理员密码

sudo passwd root

切换到root用户

su root

退出管理员权限su表示switch user

exit

文件的权限

ls -l

-rwxrwxrwx
drwxrwxr-x
使用ls -l 可以列出文件的权限信息,列出的字符中前面的十个字符第一个(红色)表示文件类型,-表示文件,d表示目录,l表示链接;然后剩下的九个三个为一组分别表示当前用户的权限、同组用户对该文件的权限、其他用户对该文件的权限;
r表示可读,w表示可写,x表示可执行,每一组都用rwx来表示权限,-表示权限禁止;
rxw可读可写可执行 rx-可读可写不可执行 r--可读不可写不可执行 ---不可读不可写不可执行

文件权限的修改

chmod,即change file mode 修改文件的访问权限
比如,一个文件想让其他用户可写

chmod o+w file

其中,o表示其他人;+w表示增写write权限;-w表示除去写入write权限

a表示所有人;u表示当前用户;如果w前不指定对象,则表示应用与当前用户及其所在组用户的权限

修改文件的属主

chown,即change owner修改文件的属性
一般来说,每个用户都只对自己的文件进行操作,很少使用到这个命令

chown -R vfx /opt/maxman

将/opt/maxman目录(-R及其子目录)的属主改为vfx用户

shell脚本入门 .sh

脚本Script,一种解释执行的程序。
Linux下常见的三种脚本程序
-shell脚本 *.sh
-Pell脚本 *.pl
-Python脚本 *.py

shell脚本,是linux自带的脚本语言,类似与windows下的dos批处理脚本

#!/bin/sh
echo "hello,world"

一个简单的打印hello world的shell脚本

chmod +x hello.sh

添加执行权限

./hello.sh

执行shell脚本

书写shel脚本时第一行要声明(#!/bin/sh)解释器,要拥有执行权限才可执行

shell中的变量

典型的环境变量,PATH,JAVA_HOME

定义变量

#!/bin/sh
OUTDIR=/opt #定义变量
echo"output to : ${OUTDIR}" #使用变量
ls ${OUTDIR}

定义变量NAME=alue等号的左右两侧不要有空格
使用NAME来调用变量,如果有定界符,则可以简写为NAME来调用变量,如果有定界符,则可以简写为NAME,例如 echo ${NAME}/build
常用命令 exho打印 ls列出目录 cd跳转位置 cp复制文件目录
if逻辑判断 while循环逻辑

环境变量

export OUTDIR=/opt #环境变量的定义
echo ${OUTDIR} #显示环境变量
printenv #显示当前系统的所有环境变量

在命令行中定义的环境变量,只有对当前shell终端有效;当终端关闭、重启后消失;

用户环境变量

tips:使用"ls -a"可以查看当前目录下的所有文件(包括隐藏文件)

gedit ~/.profile #打开.profile用户隐藏文件件
export PLUGIN_PATH=/opt/houdini_plugin #添加自定义变量到.profile内
echo $PLUGIN_PATH #注销或重启系统后生效

通过.profile添加的环境变量,对当前用户有效,每个有户都有自己的.profile文件;有的linux系统中使用的是.bash_profile文件

系统环境变量

系统环境变量定义在"/etc/profile"文件中,在这里定义的环境变量对当前系统下的所有用户有效

sudo gedit /etc/profile #一般不会直接修改/etc/profile,而是在/etc/profile.d创建一个自定义的脚本
sudo gedit /etc/profile.d #添加自定义全局变量到/etc/profile.d目录下
sudo gedit /etc/profile.d/new.sh #创建一个名字为new.sh的脚本,在上面添加自定义全局变量export PATH=/opt/hfs18.5.358
注销重启后生效 

linux中的PATH环境变量

PATH,最常见的一个环境变量,用于描述可执行程序的搜索路径

echo $PATH #显示当前系统PATH环境变量

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
每个路径用冒号隔开

#!/bin/sh
export PATH=$PATH:/opt/houdini_plugin

这里$PATH引入当前已有的变量,不引入会覆盖之前的PATH
sbin目录下的为超级管理员root才可以执行的程序
/usr/下是系统自带的程序
/usr/local/下是用户安装的程序

ubuntu中手动配置网络

ifconfig #查看当前网络配置,默认系统没有安装”sudo apt install net-tools“

ifconfig会列出当前系统所有的网络接口及接口的状态信息,其中if表示interface网络接口;第一行冒号前面的字符就是网络接口的名字

sudo ifconfig xxxx up #开启网络接口
sudo ifconfig xxxx down #关闭网络接口

常见的服务器 vsftpd

在部署网站等需要使用到云服务器操作时,都会将本地的文件上传到云服务器上,这时就需要使用网络传输的方式将文件部署到云端。
网络传输一般有FTP、SFTP两种方式。

FTP服务器

客户端 FileZilla(Windows)
服务器 vsftpd(Ubuntu)
略......

SFTP服务器

使用Xshll远程登陆
使用Xftp传输文件
略......

文本文件的上传

文本文件的换行符
Windows: \r\n
Linux: \n

Java/Tomcat运行环境的搭建等

Linux程序与进程

程序Program:指一个程序文件,如houdini.exe
进程Process:但一个程序在系统上运行是,系统会创建一条用来描述程序运行状态的记录,这个记录就叫做进程

ps -ef查看系统所有进程

User执行者,PID进程ID,PPID父进程ID,STIME启动时间,CMD启动时调用的命令行

ps -ef | grep houdini
#vfx 43668 1538 82 11:56 ? 00:00:13 /opt/hfs18.5.351/bin/houdinifx-bin
#vfx 43738 39606 0 11:57 pts/0 00:00:00 grep (省略) -dir=.tox houdini

按名字查找进程,"ps -ef"将读取的信息输出,重定向给"grep"命令进行过滤处理

ps -ef | grep xxxx 常用命令,必记

使用top命令动态查看系统进程

top

按上下键翻阅或者PaUp和PaDn翻页预览

按q或者CLRT+C终止退出

top | grep houdini #查看houdini动态进程
top - p 43668 #"top -p PID"可以查看进程详细的使用状态

top -p xxxx 常用命令,必记

使用kill杀死终结系统进程

kill -9 PID #PID进程id号,使用"ps -ef"查看

使用pkill查找并杀死终结系统进程

Ctrl+C 终止进程

前台进程与后台进程

差异1:有无控制台
前台进程,有控制台,运行结果输出至当前终端
后台进程,无控制台,看不到输出(运行状态)
差异2:有无父进程
前台进程,有父进程,父进程即当前终端;当终端关闭时,进程被一同关闭
后台进程,有父进程,父进程为系统进程(1号进程);当终端关闭时,后台进程不受影响

xxxx run以前台方式运行
xxxx start以后台方式运行

其他软件的编译与安装 Redis

MySQL服务器安装

MySQL跨平台,"免费"
MariaDB是MySQL的免费开源版本
MySQL安装配置

特别感谢阿发你好提供的学习资料

Ubuntu20.04 Linux初识的更多相关文章

  1. 【linux】Ubuntu20.04使用apt下载和卸载openJDK

    Ubuntu20.04使用apt下载和卸载openJDK 前言 由于最近电脑装了ubuntu和win双系统,想再ubuntu上学习.在成功配置完系统之后,开始了配学习环境的旅程.... 这次的是使用u ...

  2. 【linux】Ubuntu20.04使用apt安装tomcat9

    Ubuntu20.04使用apt安装tomcat9 前言 系统环境:ubuntu20.04 java版本:openjdk version "11.0.11" 2021-04-20 ...

  3. PuTTY通过SSH连接上Ubuntu20.04

    在PuTTY中连接到Ubuntu20.04大致需要几个步骤(不一定对应文本中的序号):1) 安装opensh-server (Ubuntu安装好之后 ,一般openssh-client自动已经安装好) ...

  4. wsl2 ubuntu20.04 上使用 kubeadm 创建一个单主集群

    wsl2 ubuntu20.04 上使用 kubeadm 创建一个单主集群 官方文档使用 kubeadm 创建一个单主集群 环境初始化 建议尽可能初始化环境,命令wsl --unregister Ub ...

  5. Ubuntu20.04 体验和美化

    Ubuntu20.04美化和体验 windows用久了,换下系统也挺好的.ubuntu20.04优化后,用起来蛮舒服的. 系统配置 1.修改软件源 Ubuntu默认是国外的软件源, 我们可以手动切换为 ...

  6. ubuntu20.04 编译安装ckermit

    ubuntu20.04编译安装ckermit 我呢之前一直使用的是ubuntu18.04,最近在安装了某个软件之后,再加上自己的操作不当最终导致ubuntu系统卡死无法进入桌面环境,早就想更新20.0 ...

  7. ubuntu20.04 系统初始化与美化

    ubuntu20.04 系统初始化与美化 参考博客:https://mp.weixin.qq.com/s/JowjHrs9GMVlolaoaSGiEg 参考博客:https://www.linuxmi ...

  8. Ubuntu20.04安装Typora

    Ubuntu20.04安装Typora 安装方法 # optional, but recommended sudo apt-key adv --keyserver keyserver.ubuntu.c ...

  9. 自动化kolla-ansible部署ubuntu20.04+openstack-victoria单机

    自动化kolla-ansible部署ubuntu20.04+openstack-victoria单机 欢迎加QQ群:1026880196 进行交流学习 一. 环境信息 1. 硬件信息 型号:Dell ...

随机推荐

  1. gin中绑定表单数据至自定义结构体

    package main import "github.com/gin-gonic/gin" type StructA struct { FieldA string `form:& ...

  2. Java中的方法内联

    Java中的方法内联 1. 什么是方法内联 例如有下面的原始代码: static class B { int value; final int get() { return value; } } pu ...

  3. KL散度非负性证明

    1 KL散度 KL散度(Kullback–Leibler divergence) 定义如下: $D_{K L}=\sum\limits_{i=1}^{n} P\left(x_{i}\right) \t ...

  4. 如何在pyqt中使用 QGraphicsView 实现图片查看器

    前言 在 PyQt 中可以使用很多方式实现照片查看器,最朴素的做法就是重写 QWidget 的 paintEvent().mouseMoveEvent 等事件,但是如果要在图像上多添加一些形状,那么在 ...

  5. ApacheCN NodeJS 译文集 20211204 更新

    Node API 开发入门指南 零.前言 一.Node.js 简介 二.构建 API--第 1 部分 三.构建 API--第 2 部分 React TypeScript Node 全栈开发 零.序言 ...

  6. 在java中静态方法与非静态方法

    在java中public void与public static void有什么区别 ? public void 修饰是非静态方法,该类方法属于对象,在对象初始化(new Object())后才能被调用 ...

  7. CocoaPods使用专题 by h.l

    cocoaPods安装 CocoaPods安装和使用教程(code4app) cocoapods使用问题解决 cocoapods慢如何解决? CocoaPods停在Analyzing dependen ...

  8. 获取缓存文件大小并清理 By HL

    通常用于删除缓存的时,计算缓存大小 //单个文件的大小 - (long long) fileSizeAtPath:(NSString*) filePath{ NSFileManager* manage ...

  9. Dockerfile镜像实例

    Dockerfile镜像实例 目录 Dockerfile镜像实例 一.构建SSH镜像 1. 建立工作目录 2. 生成镜像 3. 启动容器并修改root密码 二.systemctl镜像 1. 建立工作目 ...

  10. Shell之sed编辑器

    Shell之sed编辑器 目录 Shell之sed编辑器 一.sed编辑器 1. sed编辑器概述 2. sed编辑器的工作流程 二.sed命令 1. 命令格式 2. 常用选项 3. 常用操作 三.操 ...