转至: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中间request body绑定到不同的结构体中

    1. 一般通过调用 c.Request.Body 方法绑定数据,但不能多次调用这个方法. package main import ( "fmt" "github.com/ ...

  2. keepalive 和 Keep-Alive有没有区别?

    keepalive传输层的TCP协议,keep-alive应用层的HTTP协议 TCP的keepalive是在ESTABLISH状态的时候,双方空闲没有数据传输,多次发送心跳包检测连接是否存活(如果每 ...

  3. mongodb中oplogsize大小设置

    1 oplogsize大小配置: 2 mongodb副本集构建的高可用方案,最少需要三个节点,一个主节点master,一个从节点slave,一个选举仲裁节点arbiter.当主节点奔溃的时候,仲裁节点 ...

  4. 如何加载本地下载下来的BERT模型,pytorch踩坑!!

    近期做实验频繁用到BERT,所以想着下载下来使用,结果各种问题,网上一搜也是简单一句:xxx.from_pretrained("改为自己的路径") 我只想说,大坑!!! 废话不多说 ...

  5. ApacheCN JavaScript 译文集 20211122 更新

    JavaScript 编程精解 中文第三版 零.前言 一.值,类型和运算符 二.程序结构 三.函数 四.数据结构:对象和数组 五.高阶函数 六.对象的秘密 七.项目:机器人 八.Bug 和错误 九.正 ...

  6. ForkJoinPool简单使用

    简介 ForkJoinPool的优势在于,可以充分利用多cpu,多核cpu的优势,把一个任务拆分成多个"小任务",把多个"小任务"放到多个处理器核心上并行执行, ...

  7. 物理CPU,物理核,逻辑CPU,虚拟CPU(vCPU)区别 (转)

    在做虚拟化时候,遇到划分CPU的问题,因此考虑到CPU不知道具体怎么划分,查询一些资料后就写成本文. a. 物理CPU:物理CPU是相对于虚拟CPU而言的概念,指实际存在的处理器,就是我们可以看的见, ...

  8. 模拟dom结构

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  9. fckeditor for php 上传图片文件名中文乱码,中文文章乱码

    转载请注明来源:https://www.cnblogs.com/hookjc/ 中文名乱码是因为:FCKeditor使用UTF-8编码,自己机子比如是Windows系统文件名使用的是GBK编码,在上传 ...

  10. async异步流程控制

    http://cnodejs.org/topic/54acfbb5ce87bace2444cbfb 先安装:G:\www\nodejs\one\models>npm install async ...