一天上手Ubuntu
第一章 序言
1.1 简介
Linux是一个开源、免费的Unix类操作系统,完全开放源码,多用户多任务,其稳定性、安全性、处理多并发已经得到业界的认可,目前很多中型,大型甚至是巨型项目都在使用Linux。它被广泛应用于服务器(数据库服务器、Web服务器、应用服务器、日志服务器、图片服务器等等)、嵌入式领域(如路由器等需要Linux才能启动)、移动终端(比如安卓手机等、平板)。
Linux是一个统称,就像windows也是一个统称,在windows下有win7、win10等。它的主流版本有RedHat、CentOS、Ubuntu、SUSE、freeBSD。
Linux优点:
- 开源免费
- 支持多线程/多用户(多并发)
- 安全性好(开源的 一旦有个漏洞 就有网络界雷锋给修补了)
- 对内存和文件管理优越
- Linux最小只有4m->嵌入式开发(手机用户多 多么庞大的市场)
Linux缺点:
- 操作相对困难
1.2 运行级别
级别ID | 级别简称 | 具体说明 |
---|---|---|
0 | 系统停止 | 系统停机(关机)模式,系统默认运行级别不能设置为0,否则不能正常启动,一开机就自动关机 |
1 | 单用户 | 单用户模式,有root权限,用于系统维护,禁止远程登录,类似于windows下的安全模式登录 |
2 | 多用户(不支持NFS) | 多用户模式,没有NFS网络支持 |
3 | 多用户 ,命令行模式登录 | 完整的多用户文本模式,有NFS,登录后进入控制台命令行模式 |
4 | 系统未使用 | 保留一般不用,在特殊的情况下可以用它来做一些事情。例如电量不足可以切换到该模式修改一些设置 |
5 | 图形化界面 | 登录后进入图像GUI模式或者GNOME、KDE图形化界面 |
6 | 重新启动 | 默认运行级别不能设置为6,否则不能正常启动,会一直开机重启 |
1.3 目录结构
Linux的文件系统采用层级式的树状目录结构(windows是c\d\e\f盘),在此结构中的最上层是根目录“/”,然后在此目录下再创建其他的目录,目录结构如图所示。
名称 | 说明 |
---|---|
/bin | bin是Binary的缩写, 这个目录存放着最经常使用的命令 |
/boot | 启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件 |
/dev | dev是Device(设备)的缩写, 该目录下存放的是Linux的外部设备 |
/etc | 这个目录用来存放所有的系统管理所需要的配置文件和子目录 |
/home | 存放普通用户的相关文件,每建一个新用户,该目录都会生成一个新目录存放该用户的文件 |
/lib | 存放系统最基本的动态连接共享库,类似于Windows里的DLL文件 |
/mnt | 让用户临时挂载别的文件系统,例如光驱和软驱 |
/opt | 软件自定义安装的目录 |
/root | root用户相关的文件 |
/sbin | s是Super User的意思,存放系统管理员才能使用的命令 |
/usr | 用户的软件或在文件的默认存在目录,类似windows的Program Files |
/var | 存放不断变化的东西,例如经常被修改的目录或文件(含日志文件) |
1.4 注意事项
- Linux的命令是严格区分大小写的;
- Linux支持三种格式的shell脚本,分别是sh、ksh、csh
- 登录系统后,显示[root@localhost ~]#(表示当前是以root用户登陆),显示[u101@localhost bin]$(表示当前是以普通用户u101登陆)
- Linux的默认超级用户/系统管理员是root用户
- ~表示当前登录的用户所在的目录,如果是root用户登陆,就在/root目录下;如果是普通用户,就在home目录下
第二章 常用命令
2.1 常用系统操作指令
命令 | 作用 |
---|---|
ls / ll / ls -l | 查看目录的内容,添加参数a可显示隐藏文件,例如:ls -la |
cd | 切换路径 |
pwd | 查看当前路径 |
clear | 清屏命令 |
tab键 | 路径补全功能 |
uname -r | 查看Linux内核版本号 |
netstart -an | 查找Linux或Windows下所有的端口 |
Ctrl + c | 终止命令 |
备注:
Linux绝对路径:以 / 开头
Linux相对路径:.表示当前目录;…表示当前目录的上一层
2.2 文件管理指令
2.2.1 创建文件(夹)
命令 | 作用 |
---|---|
mkdir d001 | 创建文件夹 |
mkdir d001 d002 | 同时创建文件夹d001,d002 |
mkdir -p ./first/second | 创建多层文件夹 |
touch test.txt | 创建test.txt或更新其修改时间 |
2.2.2 删除文件(夹)
命令 | 作用 |
---|---|
rmdir d001 | 删除空目录d001 |
rmdir d001 d002 | 同时删除空目录d001,d002 |
rm -rf 文件(夹)名 | 删除文件,非空文件夹 |
2.2.3 拷贝剪切重命名文件(夹)
命令 | 作用 |
---|---|
cp t01/test.txt t02/ | 拷贝test.txt到t02文件夹中 |
cp -R t01 t02 | 拷贝t01文件夹(含内容)到t02文件夹下 |
mv t01/a.txt t02/ | 将a.txt剪切到t02目录下 |
mv t02/a.txt t02/aa.txt | 将a.txt重命名为aa.txt |
mv t01/a.txt t03/aa.txt | 将a.txt剪切到t03目录并重命名为aa.txt |
2.2.4 文件查看及重定向
命令 | 作用 |
---|---|
cat 文件名 | 查看文件的所有内容 |
cat -n 文件名 | 查看文件的所有内容并显示行数 |
more 文件名 | 查看文件内容,按回车一行,空格一页,不能上下翻行。按Q退出 |
less 文件名 | 查看文件内容,按回车一行,空格一页。可以通过上下键上下翻行,按Q退出 |
head -n 文件名 | 查看文件的前n行 |
tail -n 文件名 | 查看文件的后n行 |
cat A > B | 将A的内容导入到B(覆盖原来的内容) |
cat A >> B | 将A的内容追加到B |
cat A B >> C | 将A和B的内容分别追加到C文件中 |
2.2.5 文件查找
命令 | 作用 |
---|---|
netstart -an | grep 80 | 查找系统中80端口的信息 |
grep zpp /etc/passwd cat /etc/passwd | grep zpp | 在/etc/passwd文件中查找zpp字符串 |
find /root -name a.log | 在root目录下查找名称为a.log的文件 |
find /root -name ‘*lo*’ | 在root目录下查找名称包含lo的文件 |
wc -l .t01/tt.txt | 统计tt.txt文件的行数 |
备注:
管道:|,将前面一条命令的输出当作后面命令的参数(输入)
grep查找指定字符
2.3 打包压缩管理
打包压缩的文件后缀有这些:压缩文件(.gz)、压缩包(.tar.gz或.tgz)
命令 | 作用 |
---|---|
gzip test.txt | 将test.txt压缩,形成test.gz,该命令只能压缩单个文件,不能压缩目录、也不能同时压缩多个文件 |
gzip -d test.gz或gunzip test.gz | 将test.gz解压缩到当前目录下 |
tar -czvf test.tar.gz t101 | 将t101文件夹压缩到当前目录下的test.tar.gz |
tar -czvf /opt/test.tar.gz t101 | 将t101文件夹压缩到/opt/test.tar.tgz中 |
tar -xzvf t101.tar.gz | 将t101.tar.gz解压到当前目录 |
tar -xzvf t101.tar.gz -C /opt/d101/ | 将t101.tar.gz解压到/opt/d101/目录 |
unzip -d d101/ f101.zip | 将f101.zip解压到d101目录下 |
rar a test.rar test.jpg test.png | 将这两个文件压缩成test.rar |
rar a test.rar *.jpg | 将当前目录下所有.jpg压缩成test.rar |
rar a test.rar test | 将test目录压缩成test.rar |
unrar e test.rar | 将test.rar解压到当前目录 |
注意:
rar和unrar命令需要自行安装,使用sudo apt-get install rar unrar安装
2.4 扩展命令
命令 | 作用 |
---|---|
cal | 查看日期 |
date | 查看时间 |
date -s “2013-03-23 15:20” | 修改系统时间 |
df -h | 查看磁盘信息 |
free -m | 查看可用内存 |
top | 动态查看系统资源(默认5秒一次) |
export uname=”brtesting” | 自定义变量 |
echo $变量名 | 输出变量的值 |
who | 查看哪些用户登录了系统 |
ps -ef | 查看系统正在运行的所有进程 |
ps-ef | grep tomcat | 查看指定的进程。查询tomcat进程信息,如果有信息返回,表示tomcat进程已启动,否则被关闭 |
kill -9 pid | 强制终止(pid表示进程号,可以用ps命令查看进程号) |
diff file1 file2 | 比较两个文件之间差异 |
mount | 挂载光驱 |
umount | 卸载挂载的文件系统 |
rpm -ivh 安装文件名 | 安装软件 |
rpm -e 需要卸载的安装包 | 卸载软件 |
tail -f 文件名 | 动态查看文件信息 |
备注:
在安装软件时,经常使用sudo apt-get install xxx或者sudo apt install xxx
2.5 Vi编辑器
- 三种模式:
(1)命令模式(定位、复制、粘贴、删除)
(2)编辑模式(文本输入)
(3)末行模式(读写退出、替换、显示行号和行结束符) - 三种模式的切换:
命令模式切换到编辑模式:输入i/a;编辑模式退到命令模式:Esc - 末行模式以冒号:开头。注意:末行模式必须是在命令模式下操作。命令:
命令 | 作用 |
---|---|
:wq | 保存加退出 |
:n | 跳转到第n行 |
:q! | 强制退出 |
:w 文件名 | 另存为 |
:set nu | 显示行号 |
:set nonu | 不显示行号 |
:1, 5s/oracle/linux/g | 替换第1行开始到第5行中的所有oracle为linux |
:3, $s/oracle/linux/g | 替换第3行开始到最后一行中所有oracle为linux |
备注:
参数解释:第一个参数1表示起始行,第二个参数5表示结束行,第三个参数oracle表示需要替换的字符串,第四个参数linux表示替换字符串,第五个参数g表示强制替换所有参数。
- 命令行模式下的命令
命令 | 作用 |
---|---|
dd | 删除光标所在那行 |
i | 进入编辑模式 |
x | 删除一个字符 |
/搜索字符 | 字符串搜索,n向下查找,N向上查找 |
yy | 复制 |
p | 粘贴 |
G | 到末行 |
gg | 到首行 |
$ | 到行尾 |
^ | 到行首 |
ngg | 跳转到n行 |
a | 进入编辑模式,在光标后编辑 |
ndd | 从光标所在行向下删除n行 |
u | 撤销 |
o | 向下新增一行并进入到编辑模式 |
O | 向下增加一行并进入编辑模式 |
nyy | 从光标所在位置向下复制复制n行 |
2.6 组&用户&权限
[root@localhost ~]# ll
总计 68
-rw------- 1 root root 1413 06-12 18:38 anaconda-ks.cfg
drwxr-xr-x 2 root root 4096 06-12 20:55 Desktop
-rw-r–r-- 1 root root 35768 06-14 15:34 install.log
-rw-r–r-- 1 root root 4713 06-12 18:37 install.log.syslog
drwxrwxrwx 13 root root 4096 06-14 17:58 linux
-rw-r–r-- 1 root root 4 06-13 02:11 ttt.txt
第一段:文件的类型和权限,以-开头表示文件,以d开头表示目录(权限后面详讲)
第二段:对于文件夹代表子目录数
第三、四段:文件的属主,文件的属组
第五段:文件或者文件夹本身的大小
第六、七段:文件的最后修改时间
第八段:文件(夹)名称
2.6.1 组管理
命令 | 作用 |
---|---|
cat /etc/group | 查看当前系统有多少个组 |
备注:
组:相同特性的用户的集合
2.6.2 用户管理
命令 | 作用 |
---|---|
useradd username | 添加用户 |
passwd username | 用户设定密码 |
groups username | 查看用户所在的组 |
su -l username | 切换用户,同时切换到新用户的工作环境 |
su username | 切换用户,不改变原用户的工作目录及环境变量目录 |
su -root或su - | 切换到root用户 |
sudo command | 以root用户执行命令,获取临时的root权限 |
备注:
/etc/passwd中存储用户基本信息,/etc/shadow中存储用户密码信息
2.6.3 权限管理
- Linux分三类用户:超级用户(root)、系统用户、普通用户
- Linux中通过控制每一类(有3类用户)用户对文件(夹)的读、写、执行来实现权限控制,对一个文件而言,用户分为以下三类:
字母 | 含义 |
---|---|
u | 所属用户 |
g | 所属用户所在组的用户 |
o | 组以外的用户 |
- rwxr-xr-x:前三个字符表示拥有者的权限,中间三个字符是组权限,后面三个字符是其他用户的权限。
字母 | 含义 | 数字表示 |
---|---|---|
r | (read)可读 | 4 |
w | (write)可写 | 2 |
x | (execute)可执行 | 1 |
- 文件权限理解
drwxrwxrwx 2 root root 4096 06-12 20:55 Desktop
d:表示该文件为文件夹
第一个rwx,表示该文件所属的用户对其所拥有的操作权限
第二个rwx,表示与该文件所属用户在同组内的用户对其所拥有的操作权限
第三个rwx,表示不与该文件所属用户在同组内的用户所拥有的操作权限 - 修改用户权限
命令 | 作用 |
---|---|
chmod 权限 文件名 | 修改某个文件的权限 |
chmod u-w, g+w, o=r Desktop | 删除属主的写权限,增加组员的写权限,其它 用户只有读的权限 |
chmod -R 571 test.txt chmod -R u-w, g+w, o=x test.txt | 删除属主写的权限,增加组员写的权限,其它用户 只有可执行的权限(假设test.txt原来的权限是755) |
chmod -R 777 Desktop/ chmod a=rwx Desktop/ | 对Desktop目录授予所有权限,a表示所有用户 |
备注:
原test.txt的权限是755(rwx-rx-rx),当修改为571时,5=7-2,w可以用数字2表示,7-2表示删除了写权限,即u-w;7=5+2,原来的权限是5,w用数字2表示,5+2表示增加了写权限,即g+w,o=x同理
注意:
权限最大是777(drwxrwxrwx),最小是000(d---------)
2.7 远程操作
命令 | 作用 |
---|---|
rz 文件名 | 将文件上传到Linux服务器 |
sz 文件名 | 把文件下载到本地 |
ssh 被访机器用户名@被访机器IP | 远程访问,例如ssh root/10.1.2.3 |
scp -r 被访机器用户名@被访机器IP:/被复制文件路径 目标路径 | 远程复制文件,例如 scp -r root@12.0.1.6:/root/install.log /root/ |
2.8 网络配置
命令 | 作用 |
---|---|
ipconfig | 查ip信息 |
ping | 测试网络是否连通 |
setup | 配置ip、防火墙、服务等信息 |
service network restart(start\stop) | 重启(开启\停止)网络服务 |
备注:
远程连接Linux服务器(客户端工具):crt、xshell、ssh、puty,通过SSH2(端口号22)协议远程连接到Linux服务器(SSH2协议是Linux自带的协议),前2个最常用,支持中文,后2两个不支持中文
第三章 额外说明
刚刚入门Ubuntu系统,欢迎大家指点和增加,本博客持续更新中