转至: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安装配置

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

最新文章

  1. Atiti 数据库系统原理 与数据库方面的书籍 attilax总结 v3 .docx
  2. OpenGL变换
  3. 用批处理来自动化项目编译及部署(附Demo)
  4. [转]CodeSmith和PowerDesigner的使用安装和数据库创建
  5. 20145317彭垚 《Java程序设计》第7周学习总结
  6. HackRF实现ADS-B飞机信号跟踪定位
  7. Hadoop组成
  8. SQL Server 2008导出数据为SQL脚本的操作步骤
  9. 24小时学通Linux内核--内核探索工具类
  10. 百度地图SDK下载以及创建应用(申请Key)和本地导入Demo
  11. CenOs安装中文输入法
  12. IE10的bug?disabled button如何触发事件
  13. wamp 虚拟目录的设置(转载)
  14. Python高手之路【九】python基础之迭代器与生成器
  15. Java Applet 与Servlet之间的通信
  16. apose和spire操作word
  17. bash快捷方式
  18. spring cloud 的自我保护机制
  19. Django JsonResponse与HttpResponse重要区别
  20. June 12. 2018 Week 24th. Tuesday

热门文章

  1. golang中接口类型小案例
  2. gin中映射查询字符串或表单参数
  3. Android开发之打包apk
  4. ES_AutoCheck.sh
  5. 洛谷 P4708 画画(无标号欧拉子图计数)
  6. 对线面试官,凭借nginx能一战封神吗?
  7. Charles抓取手机包设置
  8. 在CentOS 6.x/7.x上安装git
  9. Linux shell脚本之 if条件判断 (转)
  10. iOS,蓝牙开发!!--By帮雷