软件包管理命令:
dpkg
1.离线安装,需要事先准备软件包
2.不会检查软件包的依赖关系
sudo:默认借助root用户权限执行命令
sudo dpkg -i 软件包 安装本地的deb软件包
sudo dpkg -r 软件名 移除一个已经安装的软件(会留下配置文件)
sudo dpkg -P 软件名 移除一个已经安装的软件(完全删除,包括配置文件)
sudo dpkg -L 软件名 列出安装软件包的清单
apt
1.在线安装,保证网络通畅,无需实现下载软件包
ubuntu集中式的软件仓储机制
2.会自动检查软件依赖关系,如果依赖文件不存在,自动下载并安装
软件源配置文件/etc/apt/sources.list
软件索引文件/var/lib/apt/lists
在线安装四步
1.扫描软件包更新列表,找到最新的软件版本号
2.检查软件的依赖关系
3.从软件源所指定的镜像站点中,下载相关软件包
4.解压软件包,完成安装和配置
sudo apt-get install 软件名 安装软件
sudo apt-get update 扫描软件源,更新索引文件/var/lib/apt/lists
sudo apt-get upgrade 更新所有软件
sudo apt-get remove 软件名 卸载软件(不完全卸载)
sudo apt-get --purge remove 软件名 完全卸载(包括配置文件)
重新安装
sudo apt-get install 软件名 --reinstall
检查依赖关系
sudo apt-get check 检查依赖关系
sudo apt-get -f install 修复依赖关系
软件包缓冲区:
/var/cache/apt/archives
sudo apt-get clean 删除缓冲区中的软件包
sudo apt-get autoclean 保留最新版本的软件包
下载源码包:
sudo apt-get source 软件名 下载对应软件的原码包,下载到当前命令执行路径下,而不是缓冲区
sudo apt-cache depends 软件名 查看该软件依赖关系
修改软件源:
1.打开ubuntu 执行sudo software-center
2.选择左上角的edit, 点击software sources
3.选download 下拉菜单中的other
4.选到china服务器 点击choose service
5.退出所有窗口
6.执行sudo apt-get update
alias:给已知或已存在的命令起别名
格式:
alias 别名=‘已知或已存在的命令’
unalias 别名
注:
1.该方式只针对当前终端有效
2.修改配置文件可以永久生效
家目录下的.bashrc
source 配置文件名 重新启动配置文件
history:查询历史命令记录
history 20:显示最近20条记录
history -c:清除当前记录
HISTSIZE=1000 决定能够保存多少条记录
HISTFILESIZE=2000 决定最终在文件中保留多少条记录.bash_history
uname -r 查看当前内核版本号
3.5.0-23-generic
主版本号.次版本号.释出版本号-修订版本号
主版本号和次版本号为偶数,稳定版本
主版本号和次版本号为奇数,开发版本
www.kernel.org
shell:命令解析器
shell命令格式:
命令名称 选项 参数
命令名称:严格区分大小写
选项:’-‘或者’–'引导 能够改变命令执行效果
参数:命令执行的对象
注:
1.三要素之间有空格分开
2.选项和参数大多情况下可以互换位置
man手册
help
info
linux7种文件类型:
b(块设备文件) c(字符设备文件) d(目录文件) -(普通文件) l(链接文件) s(套接字文件) p(管道文件)
chmod:修改文件权限
chmod u/g/o+r/w/x 文件名
chmod 777 文件名 将文件权限置到最高
touch
shell中的特殊字符
通配符:批量处理文件
*:代替任意长度的任意字符
?:代替一个长度的任意字符
[]:以下三种书写格式都只能匹配一个字符
ls -l [123].c 显示1.c 2.c 3.c 的内容
ls -l [1-3].c 同上
ls -l [^123].c 除了1.c 2.c 3.c 显示其他X.c文件
管道符: |
格式:命令1 | 命令2 | 命令3
功能:连接多条命令,完成特殊操作
(把命令1的输出结果通过管道符传递给后面的命令2输入使用)
注:
1.命令1要有输出结果的能力
2.命令2要有输入结果的能力
wc(word count):统计输入内容的行数,单词数,字符数
wc 文件名:统计该文件的行数,单词数,字符数
wc -l 文件名:统计行数
wc -c 文件名:统计字符数
wc -w 文件名:统计单词数
wc :统计终端输入的内容 ctrl+d 结束终端输入的
ls /bin | wc -w
cat 文件名:显示文件内容到屏幕上
-n : 显示对应行数
head -10 文件名:显示文件前10行内容
tail -10 文件名:显示文件末尾10行内容
sort 文件名:文件归纳排序之后显示
输入输出重定向符:
格式:命令 重定向符 文件名
输出重定向: > >>
ls > info.txt(新建模式):如果该文件不存在,则创建该文件,然后执行命令
如果文件存在,则先清空文件中内容,在执行命令
ls >> info.txt(追加模式):如果该文件不存在,则创建该文件,然后执行命令
如果文件存在,则在文件末尾添加执行结果
输入重定向: <
wc filename
wc < filename
错误输出重定向: 2> &> 或 2>> &>>
只针对命令执行错误的情况
2> &>(新建模式):如果该文件不存在,则创建该文件,然后执行命令
如果文件存在,则先清空文件中内容,在执行命令
注:2> 只会将错误的命令执行结果输出重定向到文件
&> 将错误和正确执行的命令结果输出重定向到文件
2>> &>>(追加模式):如果该文件不存在,则创建该文件,然后执行命令
如果文件存在,则在文件末尾添加执行结果
注:2>> 只会将错误的命令执行结果输出重定向到文件
&>> 将错误和正确执行的命令结果输出重定向到文件
命令置换符(键盘位置:~/`): ``
功能:将命令1的执行结果交给命令2使用
格式:命令2 ` 命令1 `
例如: ls `pwd`
grep:查找字符串
grep “字符串内容” 文件名:
-n:显示行号
-R:递归子目录进行查找
grep “string” * -n -R
“字符串格式”:
“string” : 显示所有包含"string"的行
“^string”: 显示所有以该字符串开始的行
“string
"
:
显
示
所
有
以
该
字
符
串
为
结
尾
的
行
"
s
t
r
i
n
g
": 显示所有以该字符串为结尾的行 "^string
":显示所有以该字符串为结尾的行"string”:显示只有该字符串的行
vim编辑器查找字符串:
在命令模式下直接输入/string 回车 所有string都会高亮 N:找上一个 n:找下一个
取消高亮:底行模式下输入:nohl
find -name 文件名 : 查找文件所在位置
diff:逐行比较两个文件的不同之处
如果两个文件没有不同,不显示现象,如果有不同之处,则在屏幕上显示不同的地方
-r:比较子目录中的文件
-u:以合并的方式来显示文件的不同之处,统一格式输出
-N:比较目录时,若文件a仅出现在某个目录中,则认为该文件完全缺失
diff 文件1 文件2 > 补丁文件
patch:打补丁操作
patch 需要打补丁的文件 补丁文件
打补丁操作:
1.通过diff比较两个文件,生成补丁文件
diff -ruN old(老版本) new(新版本) > 补丁文件
2.切换到需要打补丁的文件路径下
cd old路径
3.完成打补丁操作
pathc -p1 < …/patch.txt -p去除相对路径的层数
4.撤销打补丁操作
patch -Rp1 < …/patch.txt
压缩:
gzip linux下使用最多的压缩工具,移植性强
bzip2 压缩力度大
zip 在windows下可以使用的压缩格式
注:
1.以上三种压缩方法不能对目录进行压缩
2.不要用两种或以上的压缩命令混合或重复压缩同一文件,没有意义
gzip 文件名:默认得到以.gz为结尾的压缩文件 例如:patch.txt.gz
-l:查看压缩文件的信息
-num:压缩等级1-9,数值越大压缩力度越大
-d:解压缩
gunzip 压缩文件:解压以.gz为结尾的压缩包
bzip2 文件名:默认得到以.bz2为结尾的压缩包
bunzip2 压缩文件:解压.bz2为结尾的压缩包
zip -r 文件.zip 文件名
归档:
tar 只是归档命令,只整理文件没有压缩,大小不会发生改变
选项:
-c 创建归档目录
-f 指定生成的文件名
-v 显示执行过程
-z 指定使用gzip完成压缩
-j 指定使用bzip2完成压缩
-x 释放
归档文件
tar -cvf xxx.tar 需要归档的文件 最终生成以.tar为结尾的归档文件
压缩文件
tar -czvf xxx.tar.gz 需要压缩的文件 最终生成以.tar.gz为结尾的归档压缩文件
tar -cjvf xxx.tar.bz2 需要压缩的文件 最终生成以.tar.bz2为结尾的归档压缩文件
解压缩
tar -xvf xxx.tar.gz 得到的解压缩后的文件名就是xxx
用户管理命令
echo:用于标准输出 打印命令
-n:结果不换行
帮助手册
man help info
passwd:修改当前登录用户密码
sudo passwd 其他用户名:在当前用户修改其他用户的密码
root用户可以修改所有人的密码
linux@ubuntu:~$ $提示当前的linux为普通用户
su:临时改变用户的身份
su root:切换到超级用户
su -:切换到超级用户并且环境变量也会随之发生改变
su -m:保留环境变量不变切换身份
su -c root:执行一次命令借助root权限 == sudo
root@ubuntu:/home/xyx# #提示当前用户为超级用户
exit退出当前登录用户
注:切换用户完成操作后使用exit退出
export:显示当前环境变量
df:查看磁盘使用情况
-h:带单位显示信息
-T:显示磁盘文件系统的信息
du:针对目录,查询文件占用磁盘的信息
du 文件名:查看该文件占用磁盘的大小
-h:带单位显示信息
用户信息配置文件 /etc/passwd
linux:x:1000:1000:ubuntu:/home/linux:/bin/bash
用户名:密码:用户编码UID:用户组编码号GID:主机名:家目录所在位置:所用shell所在位置
man 5 passwd 可以查询
用户组配置文件 /etc/group
linux:x:1000:
用户组名:密码:组ID
添加用户adduser:
sudo adduser 用户名
命令执行流程:
1.新建用户
2.新建与该用户同名的组,并分配GID
3.将该用户添加到新建组中,并分配UID
4.创建对应家目录
5.将/etc/skel 拷贝到家目录下
6.设置密码
检查用户是否正确创建:
/etc/passwd
/etc/group
ls /home
ls /home/lyy ls /etc/skel
adduser命令配置文件:/etc/adduser.conf
FIRST_UID=1000
LAST_UID=29999
FIRST_GID=1000
LAST_GID=29999
SKEL=/etc/skel
DHOME=/home
DSHELL=/bin/bash
解决新用户无法使用sudo权限咋办: sudoers
1.切换到root用户
su -
2.打开配置文件
vi /etc/sudoers
3.添加一行到root ALL=(ALL:ALL)ALL下面
用户名 ALL=(ALL:ALL)ALL
保存退出即可
删除用户deluser:
sudo deluser 用户名:删除指定用户,但是该用户的配置文件及家目录会留下
sudo deluser --remove-home 用户名:完全删除
注:当删除用户时如果对应用户组内没有其他成员则该组也会随之删除
添加用户组addgroup:
sudo addgroup groupname
删除用户组delgroup:
sudo delgroup groupname
注:如果用户组内有成员存在,则改组不能删除
修改用户属性usermod:
sudo usermod -g 新的组名 用户名
将该用户移动到新的组中
sudo usermod -d /home/newname -m(该家目录不存在强制创建) -l(指定新的用户名) newname oldname
进程管理命令:
所谓的linux下的任务管理器
ps:查看进程状态
ps -ef:
UID PID PPID
用户名 进程编号 父进程编号
ps -aux或者ps aux:显示进程详细信息
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
内存占用率 进程状态
进程状态:
S:阻塞态 +:代表前台运行
R:运行态
T:暂停态 ctrl+z暂停程序
Z或D:僵尸态
top:动态的进程监视
b,B进行翻页
q退出
kill:给进程发送信号
kill -l:罗列信号 -9 SIGKILL -18 SIGCONT
kill -信号编号 PID 如果不添加信号编号 默认发送15,结束进程
pstree 以树形结构实现进程
文件系统
用于管理磁盘上的大量文件,并提供用户交互接口
磁盘文件系统
FAT FAT16 FAT32 NTFS —> windows
EXT3 EXT4 日志文件系统 (可以回溯时间点)
网络文件系统
nfs
samba
sudo fdisk -l
/dev/sda1
sd:代表磁盘的类型 SATA或者SCSI
hd 代表IDE
a:代表第一块硬盘
1:分区编号(主分区1~4,逻辑分区从5开始)
交换分区(swapping):一般在硬盘起始位置,缓解cpu与内存速度不匹配的问题
文件系统的逻辑结构
windows 目录属于分区
linux 分区属于目录 例如:/dev/sda1
linux下一切皆文件
主要的目录:
/bin 可执行文件
/dev 驱动文件
/etc 配置文件
/lib 库文件
/boot 系统启动文件
/mnt 文件系统挂载点
文件系统的相关命令:
file 文件名:查看文件类型
ls -i:显示文件的inode号,每个文件都有唯一的inode号
ln:创建链接文件
硬链接:相当于给现有的文件起别名,(利用inode号产生别名)
格式: ln 源文件 硬链接文件
特点:
1.如果修改硬链接文件或者源文件,另一个也会随之修改
2.如果删除源文件或者硬链接文件,对另一个没有影响(相当于删除了一个别名)
3.硬链接文件不占用新的存储空间,和原来的文件共享inode号
4.不能对目录进行硬链接创建
5.不能跨文件系统创建
软链接(符号链接):相当于windows下的快捷方式
格式: ln -s 源文件 软链接文件
注:
创建软连接时,请注意添加绝对路径
特性:
1.如果修改软链接文件或者源文件,另一个也会随之修改
2.删除源文件,软链接文件失效,但是重新创建同名文件,又会生效
3.软链接文件占用新的存储空间(有独立的inode号)
4.可以对目录创建软链接
5.可以跨文件系统创建软链接,但必须处于linux环境下
网络管理:
ifconfig:查看本机ip地址
ping www.baidu.com:查看网络链接是否通畅
sudo /etc/init.d/networking restart 网络服务重启命令
cp 目标文件 地址 -arf