关于Linux的一些基本知识
Linux 系统文件架构
- /bin: 存放常用的终端命令的目录,例如 ls、mount、rm 等等;
- /dev: 存放所有的设备文件,指系统上的各种硬件设备,包括硬盘驱动器;
- /etc: 存放系统的全局配置文件,这些配置文件会影响系统所有用户的系统环境;
- /home: 存放用户工作目录,每个用户在该目录下都有自己的工作目录;
- /lib: 存放动态库和内核模块;
- /mnt: 作为临时设备的一个挂载点,例如网络文件系统;
- /proc: 一个虚拟文件系统,为内核提供向进程发送信息的机制,可以从中读取进程状态;
- /tmp: 存放应用程序使用的临时文件:
- /usr: 存放大多数应用程序,并复制部分根目录结构,包括 /usr/bin/和 /usr/lib/;
- /var: 存放可变数据,例如日志,数据库,网站和临时脱机 (电子邮件等)文件,其中 /var/log 目录保存了系统日志文件。
Linux 用户管理
用户信息
password
Linux 是一个多用户多任务的分时操作系统,允许多个用户共享使用同一台计算机资源。用户的账号在该机制下,一方面,可以帮助用户组织文件,保障安全性;另一方面可以帮助系统管理员对当前使用计算机的用户进行跟踪,控制它们访问系统资源的权限。 通常,系统将所有用户的账户信息储存在公共文件/etc/passwd 中。 该文件中每一行代表一个账户,不同域使用“:” 号隔开,代表不同信息,各域的含义如下图 1,也可以通过 man 5 passwd 命令查看各个域的具体含义 。
shadow
账户口令信息储存在受保护文件/etc/shadow 中,非 root 用户无法打开。同样,该文件中每一行代表一个账户,不同域使用:号隔开,代表不同信息,其中, 口令时间相关信息包括口令最后被修改的时间、修改口令的最小期限、 修改口令的最大期限、 口令过期提醒时间、 口令过期失效时间、 账户过期时间等, 可以通过 man 5 shadow 命令查看各个域的具体含义。账户的口令并不以明文形式存储。 Linux 系统储存的是口令加盐之后的哈希值,其口令信息的格式为 $id$salt$hash,其中, id 代表代表不同的哈希方式,包括$1$ == md5, $5$ == sha256, $6$ == sha512 等。
Linux 常用命令
常规命令
pwd
文件管理
whereis [file_name]
用于查找文件
cp [file] [new_file]
rm [file_name]
删除
- -r 递归删除,用于删除整个文件夹
- -f 强制删除,不建议使用
文件编辑与查看
touch [file_name]
用于修改文件或者目录的时间属性,包括存取时间和更改时间。若文件不存在,系统会用于创建文件
head
查看文件开头部分内容;
- -n:以行为单位
- -c:以字节为单位
例:
head -c 55 picture.bmp > head
tail
查看文件内容
-n:以行为单位
tail -n 10 [file]
显示最后10行
tail -n +10 [file]
显示从第十行到末尾
-c:以字节为单位
同上
diff
比较两个文件的内容
- -q:两文件的不同
- -s:两文件的相同
hexdump
- -n length:格式化输出文件的前length个字节
- -C:输出规范的十六进制和ASCII码
- -b:单字节八进制显示
- -c:单字节字符显示
- -d:双字节十进制显示
- -o:双字节八进制显示
- -x:双字节十六进制显示
- -s:从偏移量开始输出
- -e: 指定格式字符串
wc
wc -c [file]
查看文件大小
网络管理
ifconfig
密码学操作
md5sum