一、dpkg 【本地安装】
安装软件
sudo dpkg -i 软件包 [安装单个软件包]
或
sudo apkg -i *.deb [多个软件包一起安装]
例如:sudo dpkg -i nano_2.2.6-1_i386.deb
移除已经安装的软件包
sudo dpkg -r 软件包名
例如:sudo dpkg -r nano
移除已安装的软件包及配置文件
sudo dpkg -P 软件包名
列出软件包在系统所安装的文件
sudo dpkg -L 软件包名
列出软件包安装状态
sudo dpkg -s 软件包名
二、apt-get 【联网安装】
1、安装软件
sudo apt-get install 软件包名
ls例如: sudo apt-get install sl 或 sudo apt-get install btanks
2、卸载软件
sudo apt-get remove 软件包名
例如: sudo apt-get install sl
3、更新索引文件
sudo apt-get update
4、清空存放下载软件包的目录
sudo apt-get clean
一、Linux中常见用户
超级用户root:具有最高的权限,UID=0,GID=0
系统用户:主要服务于系统应用,维护系统运行,不能登录。例如:uucp daema等。
普通用户:登录的用户
二、Linux用户相关路径与详解
/etc/passwd
帐号名称:帐号名称由于对应用户ID,这个是系统默认用户root超级管理员,
在同一个系统帐号名称是唯一的,长度根据不同的linux系统而定,一般是8位。
密码:由于系统中还有一个/etc/shadow文件用于存放加密后的口令,
所以在这里这一项是“x”来表示,如果用户没有设置口令,则该项为空。
用户ID:这个是系统内部用于来识别不同的用户的,不同的用户识别码不同,其中用户ID有以下几种:
0代表系统管理员
1-500系统预留的ID
500以上是普通用户使用。
组ID:其实这个和用户ID差不多,用来规范群组,他与/etc/group有关。
描述信息:这个字段几乎没有什么作用,只是用来解释这个帐号的意义。一般常见的是用户全名信息。-
用户根目录:就是用户登录系统的起始目录,用户登录系统后将首先进入该目录。root用户默认的是/root,普通用户的是/home/用户名。
用户登录shell:就是用户登录系统时使用的shell路径
/etc/shadow(保存密文的用户口令)
密码:这才是真正的密码,并且已经加密过了,只能看到一些特殊符号。需要注意的是这些密码很难
破解,但是不等于不能。还有密码栏的第一个字符为“*”表示这个用户不用来登录,
如果那个用户不想让他登录了,可以在他前面加个星;
上次改动密码的日期:这段记录了改动密码的最后日期,为什么是13798呢?
这是因为linux计算日期的方法是以1970年1月1日作为1,1971年1月1日就是366,
依次类推到我修改密码的日期表示为13798了。
密码不可被改动的天数:这个字段代表要经过多久才可以更改密码。如果是“0”代表密码可以随时更改。
密码需要重新更改天数:由于害怕密码被人盗取而危害到整个系统的安全,所以安排了这个字段,
你必须在这个时间内重新修改密码,否则这个帐号将暂时失效。
上面的99999,表示密码不需要重新输入。
密码到期的警告期:当帐号的密码失效期限快到时,系统依据这个字段的设定发出警告,
提醒用户“再过n天您的密码将过期,请尽快重新设定密码。默认的是七天。
切换进入超级用户
切换到root用户:sudo su root
切换到普通用户:sudo su linux
添加用户
sudo adduser 用户名
删除用户
sudo deluser --remove-home 用户名
修改密码
sudo passwd 用户名
关闭和重启
立即关机
sudo shutdown -h now
立即重启
sudo reboot
linux之挂载
一个硬盘是一个设备文件,一般是/dev/sda(第一块);而硬盘上的每一个分区也是设备文件,比如第一个分区叫做/dev/sda1,第二个是/dev/sda2。
挂载 : 指的就是将设备文件中的顶级目录连接到 Linux 根目录下的某一目录(最好是空目录),访问此目录就等同于访问设备文件**。**
下图为 U 盘文件目录结构和 Linux 系统中的文件目录结构
文件系统相关命令
查看目录的内容或文件属性信息:ls
查询文件详细的属性:ls -ld /home/linux
drwxrwxr-x 4 linux linux 4096 May 28 01:34 class
第一部分:文件类型
d -> 目录文件
常见文件类型标识字符
bcd-lps
b : 块设备文件 (block)---硬盘
c : 字符设备文件 character ---鼠标
d : 目录文件 directroy ---文件夹
- : 普通文件 regular
l : 软链接文件(windows快捷方式) link
p : 管道文件(常用于进程通信) pipe
s : unix域socket文件(常用于进程通信)
第二部分: 权限 [文件所有者权限 + 文件所有者所在组的组员权限 + 其他人权限]
r 读, w 写, x 执行
100 010 001 ====>八进制数: r : 4 w : 2 x : 1
r-- -w- --x
r-- -w- --x
100
r-- ===>4
010
-w- ===>2
001
--x ====>1
r--4 100
w--2 010
x--1 001
用八进制表示: 0775
第三部分:
4 -> 硬链接数
第四部分:
linux -> 文件所有者名
第五部分:
linux -> 文件所属于组
第六部分:
文件大小 (默认单位byte)
第七部分:
文件最后一次修改时间
第八部分:
文件名
ls常用指令
ls -a -> 显示所有的文件,包括隐藏文件
ls -lh -> 带单位(G,K,M)显示文件大小
修改文件的权限
格式:
chmod 权限 文件名
常用:
u: user(文件所有者)
g: group(文件所属组)
o: other(其他用户)
chmod u+x test.c
chmod u+w test.c
chmod g-r test.c
chmod o+x test.c
常用:
100 101 001
r-- -w- --x
故八进制表示:
r--->4
w---->2
x---->1
查看磁盘空间使用情况:
df -Th
挂载本地设备文件
sudo mount 设备文件 挂载点目录
卸载设备
sudo umount 设备文件
例如:sudo umount /dev/sda1
zip压缩相关命令
压缩文件
zip test.zip hello.c log.c
解压文件
unzip test.zip
inux支持常用的两种压缩格式
gzip : linux支持的压缩格式的一种,优点是压缩速度较快
bzip2 :linux支持的压缩格式的一种,优点是压缩后存储空间占用较小
tar : 该命令一般用来压缩/解压gzip和bizp2的文件
相关参数:
c -> 创建
x -> 释放
z -> gzip操作
j -> bzip2操作
v -> 显示过程
f -> 指定文件名(一定需要放在最后)
压缩文件/文件夹:
sudo tar -czvf work.tar.gz work
sudo tar -cjvf work.tar.bz2 work
解压文件:
sudo tar -xzvf work.tar.gz
sudo tar -xjvf work.tar.bz2
或者
sudo tar -xvf work.tar.gz/work.tar.bz2(两种都可以释放)
软连接和硬链接
Linux系统中一个文件由目录项****、****inode表和数据块组成。 test.c
**目录项:**包括文件名和inode节点号
**Inode表:**包含文件的一些信息。例如,inode号,文件类型,文件大小等待。
**数据块:**文件具体内容存放的地方。
当我们查看一个文件的时候,linux系统的运行过程如下图
查找过程
首先根据文件名,找到我们目录项中的inode号。
通过inode号进入我们inode表中,查找到该文件中一些信息。
然后通过inode表中的保存的数据区的指针,读取我们相应数据区的内容。
硬链接
本质:是给我们的文件取别名。**与源文件直接关联。修改一个,另一个同时被修改。删除一个另一个不会有影响。
Linux系统中规定,只有在文件的打开次数为0(即文件这个时候没有打开),并且文件的硬连接数为0,此时文件才会被删除
特点: 不能对目录操作
查看inode号
ls -i 文件名
硬链接命令
ln 源文件名 硬链接文件名
软链接
本质"类似于我们windows的快捷方式,用来记录我们目标的路径
特点:占用磁盘空间,可以对目录操作
ln -s 源文件 软链接文件
查找搜索
grep 从文件中搜索字符串
grep "字符串" 文件
参数:
-n 显示行号
-R 递归及子目录
例如:
grep "hello" log.c //在log.c文件中搜索"hello"字符串
grep "main" * -nR //在当前目录及子目录所有文件中搜索main
find 在指定路径下搜索文件
find 路径 -name 文件名
例如:
find /home/linux -name hello.c //在/home/linux目录下搜索hello.c
管道连接符
说明:管道就是将一个命令的输出当作另一个命令的输入,通过|连接多个命令。
(理解:后一个命令的操作,是在前一个命令的基础上进行的)
例如:
cat /etc/passwd | grep -n "linux"
ls /usr/include | grep "stdio.h"
head 显示文件开头的内容
head -行数 文件
例如:
head -10 /etc/passwd 显示/etc/passwd文件开头前10行
tail 显示文件尾部指定的行数
tail -行数 文件
例如:
tail -1 /etc/passwd 显示/etc/passwd文件最后一行的信息
cut 字符串裁剪函数
注意: 一般与管道联合使用
cut -d "分割字符" -f 字段
参数:
-d 指定我们的分割字符
-f 指定我们显示的区域
示例代码:
tail -1 /etc/passwd | cut -d ":" -f 1,3,4
grep "linux" /etc/passwd | cut -d ":" -f 1,3
wc 统计某个文件的行数 /单词个数 /字节数
-l 显示一个文件的行数
-w 显示一个文件的单词个数
-c 显示一个文件的字节数
log.txt文件内容如下:
{
123
abc
789 ABCD
}
wc -l log.txt
wc -w log.txt
wc -c log.txt