Linux历史
Linux是一套免费使用的类Unix操作系统
linux创始人: 林纳斯·托瓦茨
UNIX系统是一个多用户,多任务的分时操作系统。
Ubuntu的安装
(1)vmware tools:主要用于与宿主机共享文件的
sudo cp -rf /media/gec/VMware \Tools/ ~/
cd ~/
sudo tar vxf VMwareTools-10.0.5-3228253.tar.gz
cd vmware-tools-distrib
sudo ./vmware-install.pl
==>vmware tools就安装成功了
我们可以设置共享目录啦
在关闭Ubuntu下:
编辑虚拟机设置-->选项-->共享文件夹
cd /mnt/hgfs/
hgfs:Host Guest File Share
APT(Advanced Packaging Tool)
ubuntu中功能最强大的命令行软件包管理工具,用于获取,安装,编译,卸载和查询软件包,及检查软件包的依赖关系
工作原理:
/etc/apt/sources.list
该文件的内容为ubuntu软件源服务器的地址
把该文件换为国内的服务器地址:
sudo cp sources.list.163 /etc/apt
cd /etc/apt
sudo mv sources.list sources.list.bak
sudo mv sources.list.163 sources.list
cat sources.list
APT常用命令:
apt-get:用于管理软件包,包括安装,卸载,升级等操作
apt-cache:用于查询软件包相关的信息
apt-proxy:用于搭建APT代理服务器
apt-show-version:用于显示系统中软件包的版本信息
apt-config:用于读取APT配置文件的简单工具
apt-cdrom:用于将CD-ROM加入到软件源配置文件
(1)apt-get 用法:
apt-get subcommand pkgname
子命令 特定的包名
subcommand:
update:下载更新软件包信息列表
/etc/apt/sources.list只是列出了服务器的地址,至于这个服务器上到底有哪些软件,你事先不知道。
我们用命令apt-get update这个命令,来把服务器上有哪些软件的列表信息下载下来。
eg: sudo apt-get update
upgrade:将系统中所有软件包升级到最新版本
eg: sudo apt-get upgrade
install:安装。下载所需软件包并进行安装配置
eg: sudo apt-get install vim
sudo apt-get install ibus-googlepinyin
remove: 卸载软件包
eg: sudo apt-get remove ibus-googlepinyin
autoremove:将不满足依赖关系的软件包自动卸载
source:源代码。下载某个安装包的源代码
eg: sudo apt-get source vim
clean:删除缓存区中已经下载的包文件
autoclean:删除缓存区中老版本的已经下载的包文件
check:检查系统中依赖关系的完整性
(2)apt-cache命令完成查询软件源和软件包的相关信息
apt-cache subcommand pkgname
子命令 特定包名
subcommand:
search:根据正则表达式检索软件包
eg: sudo apt-cache search vim
showpkg/show:获取软件包的常规描述信息
eg: sudo apt-cache show vim
showsrc:获取源码包的常规描述信息
eg: sudo apt-cache showsrc vim
depends:获取该软件包的依赖关系
eg: sudo apt-cache depends vim
pkgnames:列出所有已经安装的软件包的名字
stats: 获取软件包的统计信息
vim vim 是vi的改进版本
vi/vim是unix/linux中最基本,最常用,功能最强大的文本编辑器。
vi/vim有两种模式:
命令模式:键盘上所有输入的字符都当成命令(刚进入vim就是命令模式)
输入模式:键盘上所有输入的字符都当成文本内容
输入模式-->命令模式: Esc
命令模式-->输入模式
i:insert 进入输入模式后,光标不动
I:insert 进入输入模式后,光标会移动到本行的行首
o:open 向下开路。在光标的下一行,新开一行。
O:open 向上开路。在光标的上一行,新开一行。
a:append 追尾。进入输入模式后,光标向后移动一个字符。
A:append 追尾。进入输入模式后,光标移动到行尾。
vim的删除与修改命令
x:删除光标所在的字符
dd:delete删除光标所在的行,同时也有"剪切"的功能
ndd: n表示一个数字,删除光标及以下的n行
r:replace 替换光标所在的单个字符
R:replace 替换光标及后面的多个字符(按Esc键退出替换)
vim退出命令
:q (quit)不保存退出(若修改了文件会询问是否保存)
:q! 不保存强制退出
:w (write)保存
:w filename 保存内容到指定的路径名filename(另存为)
:wq 保存并退出
:x 保存并退出
vim撤销命令
u: undo
vim拷贝和粘贴命令:
yy: yanked 把当前行的内容拷贝到剪贴板中去
nyy把光标及以下n行的内容粘贴到剪贴板中去
p: paste 将剪贴板中的内容贴在光标所在的行的后面
P: paste 将剪贴板中的内容贴在光标所在的行的前面
vim搜索命令
/pattern(模式)
eg: /abc
n: 光标跳到下一个搜索结果
N:光标跳到上一个搜索结果
显示行号
:set nu
:set nonu 取消行号
:行号
光标跳到指定的行
:$
光标跳到文件的最后一行
vim配置文件在主目录下 .vimrc
ls -a
vim .vimrc
Ctrl+z 挂起vim fg命令返回
查看Linux说明手册(manual)
man commandname/functionname 完整的手册
vim: shift + K 查看光标所在函数的第一章手册
info commandname 额外的帮助文档
基本的系统维护命令
sync 同步,把缓冲区的数据写去文件。
shutdown 关机 shutdown -h 0(立即关机)
reboot 重启
passwd [username] 修改用户密码
su username 切换用户
sudo -s 进入root用户
exit 退出用户或终端
clear 清屏
echo "string" 在标准输出上显示文字
date 输出当前的日期
``反撇号(~键),里面加一个命令,整体表示引用命令的输出结果
eg:
B=`date`
echo $B
TAB键: 自动补全命令
向上,向下方向键: 调出上一个/下一个命令
用户管理
/etc/passwd :用户信息文件
用户名:口令:用户ID(UID):用户组(GID):用户主目录:用户shell
/etc/group :用户组的信息文件,在Linux下面是分组来管理用户的
组名:口令:GID号:成员列表
这里组名是创建这个组的用户(组长)的名字
GID是创建这个组的用户(组长)的ID
adduser username //创建一个普通用户
userdel username //删除一个用户
进程管理 process
ps: process status 查看进程的状态信息
-e: every 每一个
-f: full 全部的
ps -ef: 查看每一个进程的全部信息
每个进程的信息都保存在一个文件目录中
/proc/$PID
top:以CPU占用率来实时排名进程
kill:杀死一个进程
kill -9 $PID
linux文件系统
linux文件系统的组织形式 :树状
绝对路径:以"/(根目录)"开头的路径,叫做绝对路径
相对路径:不以"/(根目录)"开头的路径,叫做相对路径
相对路径是以当前路径为参照的,系统查找文件本质上都是以绝对路径来查找的。
在查找相对路径时,是把当前目录路径和相对路径合为绝对路径再查找。
pwd:显示当前目录路径
cd : change directory
cd /目录名
在每个目录下面都会有两个特殊的隐藏的目录
. :表示当前目录
.. :表示上一层目录
cd .. 返回上一层目录
cd - 返回上一次目录
./程序名 运行该程序
ls: list status 把某个文件(包含目录)的状态信息给列出来
ls [options] [文件名/目录]
options:
-a: all ,把所有的文件都列举出来。
在linux下以.开头的文件,视为隐藏文件
-l:把文件的详细信息给列举出来
eg:
-rwxrw-r-- 1 gec gec 40 Feb 16 19:40 test.txt
硬链接数 用户 用户组 文件大小 最后修改时间 文件名
第一个字符表示文件类型:
- :普通文件(regular file),ASCII文本文件,二进制可执行文件
d :directory 目录(文件夹)
b :block 块设备文件
c :char 字符设备文件
l :link符号链接文件,指向另外一个文件
P :pipe 管道文件
s :socket套接字文件
下面的九个字符rwx表示文件对不同情况下的权限
r:read 读的权限
w:write写的权限
x:excute可执行的权限,对目录可执行,表示可以进入目录
分三组:
user/group/other
chmod :change mode 改变文件的模式(权限)
chmod 权限 文件名
权限有两种指定方式:
(1) u/g/o/a+/- r/w/x
(2) 以八进制的形式表示权限位
0774
rm:remove 移除,删除
rm [options] DEST
DEST:要删除的目标文件,既可以是普通文件,也可以是目录
options:
-r :recursive(递归),若DEST是目录文件,必须要用递归删除
-f :force(强制)。非交互模式
交互模式:在正式删除前会询问用户是否确定要删除
非交互模式:不会询问直接删除
cp: copy
copy [options] SOURCE DEST
SOURCE:源文件。既可以是普通文件也可以是目录
DEST:目标文件。既可以是普通文件也可以是目录
options:
-r:recursive(递归)
-f:force(强制)。非交互模式
mv: move移动 (既可以移动普通文件,也可以移动目录)
mv SOURCE DEST
把SOURCE移动到DEST中去
eg: mv 1.txt ../
mv 1.txt 2.txt
把1.txt改名为2.txt
mkdir:make directory 创建一个目录
mkdir 目录名
-p:parent 创建目录时,如果父目录不存在,则一并创建
rmdir:remove directory 删除一个空目录
file:查看一个文件的格式。在UNIX里文件的扩展名不能决定文件的格式。
显示文本文件的内容
cat 把文本文件的内容全部一次性打印在终端
more 分屏显示一个文本文件的内容,按Enter一行一行显示,空格键一屏一屏的显示,q退出
less 分屏显示一个文本文件的内容,方向键上/下把内容前后滑动,q退出
head -num 显示文件的前num行
tail -num 显示文件的末尾num行
创建链接文件
硬链接 ln target link_name
软链接 ln -s target link_name
文件的压缩和解压缩
文件的压缩实质上分为归档和压缩两个过程
归档文件:将一组文件或目录打包到一个文件中去
tar [options] tarfile filelist
-c create 创建一个归档文件
-f file 指定归档文件的名字
-x extract 释放一个归档文件
压缩文件:将一个文件进行压缩
压缩 gzip xx ==> xx.gz
解压 gunzip xx.gz ==>xx
压缩 bzip2 xx ==> xx.bz2
解压 bunzip2 xx.bz2 ==> xx
我们可以一步完成归档压缩这两个过程
tar [options] tarfile filelist
-c create 创建一个归档文件
-f file 指定归档文件的名字
-v 显示归档或释放的过程信息
-x extract 释放一个归档文件
-z 由tar生成归档文件,然后由gzip压缩
-j 由tar生成归档文件,然后由bzip压缩
eg:
压缩:
tar -zcvf mp3.tar.gz 1.mp3 2.mp3 3.mp3
tar -jcvf mp3.tar.bz2 1.mp3 2.mp3 3.mp3
解压:
tar -vxf mp3.tar.gz -C 目标目录
tar -vxf mp3.tar.bz2 -C 目标目录