Ubuntu快速入门笔记

Linux常用指令

本章介绍Linux下的常用命令,包括:

ls / cd / pwd

mkdir / rmdir

cp / rm / mv

tar / zip / unzip

ln ...

文件列表ls

ls ,即 list,列出目录下的所有项

示例:

查看当前目录ls

查看 / home / 用户名 目录

ls /home / 用户名

以详细模式查看

ls -l /home/shaofa其中,

-l 为参数,参数一般以 - 开头

显示当前位置pwd

pwd , 即 print working directory 显示当前工作目录

切换目录cd

cd ,即 change directory ,切换目录

示例:

切换到用户主目录cd

切换到某个目录

cd / home/ 用户名/ example

在ls命令中,也可以使用- . ..表示的路径

ls ~

ls ./ www

还有更复杂的形式(不要求掌握)

./hello/abc/ ../123 / ./ other/test.xml

目录操作

mkdir ,即 make directory 创建目录mkdir abc

mkdir -p abc/123/test

使用-p参数,可以将路径的层次目录全部创建

删除空目录

rmdir ,即remove directory 删除空目录

rmdir abc

如果目录非空,则删除失败

则用

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

rm -rf abc

删除abc目录,和子项一并删除其中,r 表示recursive , f 表示 force

一个程序员界的玩笑: rm -rf /*删库跑路?

复制文件或者目录

cp,即 copy复制文件或者目录

cp -rf example example2

移动文件或目录

mv ,即move ,移动文件或目录(重命名)

mv hello helloworld

归档

tar,即 tape archive 档案打包

创建档案包

tar -cvf example.tar example其中,

c,表示 create创建档案

v,表示verbose显示详情

f,表示 file 也可以多个目录打包 tar -cvf xxx.tar file1 file2 file3

还原档案包

tar -xvf example.tar

tar -xvf example.tar -C outdir

其中,-C参数指定目标目录,默认解到当前目录下

归档并压缩

先前的tar格式并没有压缩,体积较大并档并压缩

tar -zcvf example.tar.gz example 解压缩

tar -zxvf example.tar.gz

tar -zxvf example.tar.gz -C outdir

通常我们所见的,都是*.tar.gz这种格式

软链接

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

使用 ln 命令(link)来创建软链接

ln -s source link

其中,-s表示soft软链接(默认为硬)

比如

ln -s exampl eexample2

软链接的特点:

1.删除软件接,对原文件没有影响

2.删除原文件,则软链接失效

以 ls -l 查看文件详情时,可以看到目标路径

比如,ls -l /

可以发现,/bin 实际指向的是 /usr/bin目录

添加用户

本章介绍用户的管理操作

比如,添加一个用户

sudo useradd -m test1其中,

sudo,表示以管理员身份执行心

1.添加用户

sudo useradd -m test1

其中,-m参数表示在/home下添加用户目录

2.修改用户密码

sudo passwd test1

3.删除用户

sudo userdel test1

1.在登录系统时,默认不允许以root用户登录

2.只有特殊的用户,才能执行sudo

比如,shaofa可以执行sudo,但test1不行

Linux下,把能执行sudo命令的用户叫sudoer

超级用户root

类似于Windows下的Administrator用户

切换到root用户,有全部权限,可以直接useradd等命令

1首次使用时,需要给roo: 设置密码

sudo passwd root

2切换到root用户

su root

其中,su表示switch user3退出

exit

1 su root 仅仅对当前会话(终端)有效不影响当前桌面环境

2 root权力太大,需要小心使用

用户和组

Linux下可以创建多个用户,可以用组进行管理用户。

比如:

男生组boys

ming bo gang qiang

女生组girls

fang hong yue yuan

创建组

groupadd boys创建用户

useradd -m -g boys ming

其中,-g表示在添加用户,同时将用户加到boys组修改现有用户到新的组

usermod -g boys shaofa

其中,usermod表示修改用户信息

如何查看用户和组?

cat /etc/group

每一行表示一个group的信息,名称+ID

如何查看用户列表?

cat /etc/paslswd

每一行表示一个用户的信息

1用户不多时,管理的时候并不使用组的概念

useradda1

useradd b1

一个root,两个普通用户a1, b1,够用了!

默认地,会给a1用户建立一个同名的组a1,也就是说这个组里只有他一个人。

文件的权限

使用ls命令查看一个文件

ls -l simple.txt

-r w - r - - r- - .1 shaofa shaofa 13 4月 21 03:48 simple.txt

其中,rw- r-- r--表示该文件的访问权限

类型:目录 d / 文件 -

权限:

链接/子项数:属主:组名:文件大小:修改时间:文件名

r w- r - - r - -

权限分为三部分:自己Ⅰ同组Ⅰ别人

例如:

r w x r w x r w x

r w x r w x r - -

r - - - - - - - -

在文件夹窗口里,文件Ⅰ属性Ⅰ权限 查看

修改文件权限

chmod ,即change file mode修改文件的访问权限

比如,一个文件simple.txt,想让别人也能修改

chmod o+w simple.txt

其中,

o,表示other 别人

+w,表示增写write权限


chmod a+w simple.txt

所有人all 添加wi权限

chmod a-w simple.txt

所有人减去w权限

chmod u+w simple.txt

仅用户 user 自己的权限+w

chmod o-w simple.txt

修改别人 other 的权限-w


1 只有文件的属主或者root可以修改文件权限

2 省略写法

chmod +w simple.txt

chmod -w simple.txt

默认是修改自己和本组的权限

修改文件属主

chown ,即change owner修改文件的属主

一般来说,每个用户只操作自己的用户目录

所以chown命令并常用

示例: 1.在/opt目录下建立一个文件夹software

2.将software目录分配给用户shaofa

su root

mkdir /opt/ software

chown -R shaofa /opt/software

ls -ld /opt/ software

可执行脚本

脚本Script ,一种解释执行的程序

Linux下常见的三种脚本程序

-Shell脚本.sh

-Perl脚本“.pl

-Python脚本.py

脚本程序,本质是一个文本文件

1.它是一个文本文件

2.它具有可执行权限

演示:hello.sh是一个脚本程序。

脚本程序都是由解释器来执行的

Shell脚本解释器:/bin/sh

Perl脚本解释器:/bin/perlPython

脚本解释器:/bin/python3

执行一个脚本时,以下两种方式等效

./hello.py

/bin/python3 hello.py

Shell脚本

1。编辑一个文本文件,保存为hello.sh

#!/ bin/sh

echo "hello, world"

2。添加可执行权限

chmod +x hello.sh

3。执行程序

./ hello.sh

Python脚本

1。编辑一个文本文件,保存为hello.py

#!/ bin/python3

2。添加可执行权限 chmod +xhello.py

3。执行程序 ./ hello.pl

SHELL中的变量

本章内容:环境变量

什么是环境变量,如何设置环境变量

最典型的环境变量,PATH , JAVA_HOME

SHELL,是一个脚本编程语言

1、定义变量

2、执行命令 echo ls cd cp

3、if判断逻辑, while循环逻辑

4、自定义的函数...

提示:如果想学一门脚本语言,可以选择Python

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

1、定义一个变量NAME=value

等号左右两侧不要多加空格

2、使用一个变量

${NAME}

如果已经有了定界符,则可以简写为$NAME

例如echo $ {NAME }/build/

环境变量

环境变量,就是存在当前环境中的变量

无论Linux ,还是Windows,都有环境变量

比如,最常用的环境变量PATH, JAVA_HOME

定义环境变量

export OUTDIR=/ opt/

显示环境变量

echo ${OUTDIR}

查看所有环境变量

printenv

环境变量的使用:

可以在当前终端中使用.可以在SIIELL脚本中调用

演示:在Shell脚本中调用一个环境变量。。

用户环境变量

用户环境变量:定义在~/.profile中

在主目录下

ls -la

其中,a表示 all ,显示所有文件

注:在Linux下,以.开头的文件为隐藏文件

原理:当用户打开终端时,会自动运行.profile ,将变量注入到当前环境中。

1以点号.开头的文件为隐藏文件ls -a查看所有文件

2此配置只对当前用户有效

因为每个用户都有自己的配置文件.profile

3有的Linux系统上,使用.bash_profile

系统环境变量

系统环境变量:定义在/etc/profile中此中的环境变量对所有用户有效

以root身份执行

gedit /etc/profile

但是,一般不直接修改/etc/profile

而是在/etc/profile.d/创建一个自定义的脚本

PATH环境变量

先来看一个问题:创建一个可执行脚本hello.sh直接执行:

shaofa@vmware:~$ hello.sh

hello.sh:未找到命令

明明就在当前目录下,为什么提示找不到?

PATH,最常见的一个环境变量

用于描述可执行程序的搜索路径

echo $PATH

多个路径之间以冒号分隔

usr/local/bin:/usr/local/sbin :/usr/bin:/usr/ sbin

默认地,系统从以下目录中搜索可执行程序

/usr/bin比如,/usr/bin/tar

/usr/sbin比如,/usr/ sbin/useradd

/usr/local/bin

/usr/ local/sbin

其中,sbin为超级用户root才能执行的程序

/usr/下系统自带的程序,/usr/local/是用户安装的程序

演示:修改PATH环境变量。。。

1、编辑/etc/profile.d/myprofile.sh

设定PATH环境变量

export PATH=$PATH:/opt/tomcat /bin

2、注销,重新登录后生效

虚拟机网络

1、检查虚拟网络编辑器

以管理员方式运行VMware

打开虚拟网络编辑器

查看NAT方式下,虚拟子网的网段如192.168.43.0

2、检查虚拟网卡

控制面板,“网络与共享中心Ⅰ更改适配器设置”默认地,有VMnet1和 VMnet8两个虚拟网卡

如果没有找到VMnet1/VMnet8,请卸载VMware重装

注意:以管理员方式运行安装程序,会更好

虚拟机联网

虚拟机联网设置:

1检查虚拟机硬件是否为NAT方式

2登录Ubuntu系统,右上角设置

设置面板左侧,“网络”

检查IPv4 / DHCP设置 (默认设置即可,不需要更改)

3、检查P地址

我的演示环境IP : 192.168.43.129

4、访问外网测试

ping www.baidu. com按CTRL+C中断

注意:宿主机本身必须已经连接外网

与宿主机互联

检查IP地址

虚拟机:192.168.43.129

宿主机:192.168.43.1

虚拟机与宿主机互联:

192.168.43.1→192.168.43.129

ping 192.168.43.128

192.168.43.128→192.168.43.1

ping 192.168.43.1 ???不支持

NAT上网原理

手动配置网络

在终端里,以命令行方式来配置网络

常用命令: ifconfig , netstat 等

默认地,Ubuntu下面不带ifconfig命令

需要使用apt 软件包管理器

apt install net-tools 安装一个软件包

apt remove net-tools移除一个软件包

apt search xxx搜索

apt list [ grep xxx列表

1、查看网络配置

ifconfig dos:ipconfig

其中,if表示 interface 网络接口 会列出所有的网络接口,及各个接口的状态

2、开启/禁用网络

sudo ifconfig xxx up

sudo ifconfig xxx down

FTP服务器

思考:怎么把文件传到Ubuntu主机上?

1、U盘拷贝

2、网络传输

FTP

SFTP

演示:使用FTP来传输文件。。

客户端 FileZilla (Windows)

服务器 vsftpd ( Ubuntu )

具体过程,可以参考网盘下的4节课

SSH服务器

本章介绍SSH服务器的搭建和使用

使用SSH协议,可以实现:

1远程终端T

2文件传输

演示:

1使用Xshell远程登录

2使用Xftp传输文件

具体过程和使用方法,请参考网盘下面的4节课

文本编辑vi

vi / vim ,一个基于控制台的文本编辑器

gedit ,一个基于GUI的文本编辑器 公

其中,vim是vi的升级版,演示使用vim命令

1、打开文本编辑vim abc.txt

如果目标文件存在,则打开编辑;如果不存在,会新建一个文件

如果系统上没有 vim ,就安装一下:

sudo apt install vim

2、切换模式

编辑模式Insert Mode:按i键

命令模式Command Mode:按ESC 键

3、退出编辑

(1)、按ESC键,进入命令模式

(2)

输入 :wq 保存并退出 输入 :q 退出 输入 :q! 强制退出(放弃保存)

vim更多用法

vim的完全用法非常复杂

花样繁多,几乎键盘上的每一个键都是快速键

不建议深入研究, vim本身是一个低效率的工具

Linux文本文件的编辑

1桌面环境: gedit

2终端环境:

-少量修改:vim

-大量修改:在 Windows上编辑,然后上传到Linux

文本文件的上传

推荐:在Windows上编辑,然后上传到Linux

使用notepad ++或者其他的专业编辑器

文本文件的换行符

换行符的转换:

编辑Ⅰ文档格式转换Ⅰ转换为UNIX格式

注意:只有在编辑SIIELL脚本时,才需要转换

其他格式的文件一般都不需要转换,如*.xml, *.javal

Java的安装

本章介绍在 Ubuntu下的Java环境

1 JDK/ JRE的安装

2 Java的环境变量

3运行普通Java程序

4 Java程序的运行脚本

Java运行环境

先安装Java的软件包:

JRE: openjdk-8-jre-headless

JDK: openjdk-8-jdk-headless

其中,openjdk是JDK的免费版本,推荐JDK8

运行Java程序

Java及环境变量

安装openjdk-8-jre-headlessls /usrZbin/java

默认放在 /usr/bin下,不需要额外设置PATH

提示:如果放在自定义位置,需要设置PATH

export PATH-$PATH:/opt/jdk8/bin

Java控制台程序

1、在Windows上开发和调试

2、发布

  • class文件 普通JAR文件/可执行JAR文件两种JAR文件的运行方式不同:

    java -cp your_program.jar your.MainClass

    java -jar your _program.jar

3、上传至Linux : FTP/SFTP

4、运行程序 java -jar simple.jar

5、权限因素,自行检查

-程序里需要访问系统文件,如/etcl,得用root运行

-程序里需要开启TCP端口,如80,得用root运行。。

创建运行脚本

使用run_java.shi来运行java程序

1、修改run_java.sh

2、转成UNIX风格

3、上传至Linux

4、添加+x权限,运行脚本

在 Windows 上编辑SHELL脚本时,记得设置换行符

Windows ; \r\n

Linux : \n

Tomcat服务器

本章介绍如何运行Tomcat服务器

Tomcat本身是一个Java程序,必须要有Java的运行环境。

下载tomcat 的 Linux版本Apache Tomcat® - Welcome!

apache-tomcat-8.5.54.tar.gz

注意,Tomcat的版本和JDK版本有对应关系tomcat8.5 jdk8

程序与进程

程序Program:指一个程序文件,如Inotepad.exe

进程Process:当一个程序运行起来,在操作系统内创建一条记录,用于描述和控制它的运行

比如,打开多个notepad.exe ,则得到多个进程

演示:运行多个/usr/bin/vim,并观察进程信息

ps -ef

其中,各个字段的含义:

UID:执行者

PID:进程ID

PPID:父进程ID

STME:启动时间

CMD:启动时调用的命令行

按名称查找某个进程

ps -ef l grep java

其中,将前者输出的信息,重定向给grep命令过滤处理

进程管理

进程监视

top命令,相当于Windows的任务管理器

查看所有进程

top

-按上下键翻阅

-按q或 CTRL +C中止退出

杀死进程

使用kill命令,杀死一个进程

kil -9 NNN 或者 pkill name_of_progress

进程管理的几个命令:

ps -ef

ps -ef | grep XXX

top

top -p NNN

kill -9 NNN

pkill name_of program

CTRL +c 中止当前进程(前台进程)

前台与后台进程

前台与后台进程

前台进程:运行在前台

后台进程:运行在后台

演示: ./run_tomcat run以前台方式运行(CTRL+C中止)

./run_tomcat start 以后台方式运行

前台进程:

1、控制台:有控制台,输出至当前终端

2、关闭终端时将关闭前台进程

3、使用CTRL+C强行终止

后台进程:

1、无控制台,看不到输出

2、关闭终端对后台进程没有影响

3、使用kill -9 NNN强行终止

Redis服务器

Redis ,一款基于内存的Key-Value型数据库

IMySQL服务器

MySQL ,一款常见的数据库服务器

你可能感兴趣的:(Linux操作系统的学习,linux,ubuntu,运维)