Linux操作系统的学习|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
还有更复杂的形式(不要求掌握)
【Linux操作系统的学习|Ubuntu快速入门笔记】./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 ,一款常见的数据库服务器


    推荐阅读