Linux 系统操作

栏目: IT技术 · 发布时间: 4年前

内容简介:上了近六周的操作系统理论课,最近终于开始做实验了。关于 Linux 这块,不想学得太深入,但是以后部署项目到服务端也会涉及到这部分的知识,所以一些基本的概念和操作还是有必要学一学的。这篇笔记就作为平时查看的手册。以下操作基于 Ubuntu 。

Linux 系统操作

上了近六周的操作系统理论课,最近终于开始做实验了。关于 Linux 这块,不想学得太深入,但是以后部署项目到服务端也会涉及到这部分的知识,所以一些基本的概念和操作还是有必要学一学的。这篇笔记就作为平时查看的手册。

以下操作基于 Ubuntu 。

帮助指令

1. man

用法:man + 参数

查看相关命令、相关文件等的使用手册。Ctrl+f 上一页,Ctrl+b 下一页,Ctrl+Home 第一页,Ctrl+End 最后一页,q 退出回到终端

输入 man man 查找 man 命令本身的使用手册:

Linux 系统操作

可以看到数字代表相关类型的帮助所在的章节,比如数字 1 就代表 shell 指令的相关帮助,所以 man man 等价于 man 1 man 。之所以要用数字进行区分,是为了防止重名带来的指向不明确,比如 passwd 可能是文件或者指令,当加上数字 1 的时候,指的是指令;加上 5 的时候,指的是文件。

如果不知道指的是什么,就用 man -a xxx ,这样就默认在所有章节的手册中查找相关帮助。

使用手册默认是英文的,可以安装汉化包(先切换到 root 用户):

apt-get install manpages-zh
vi /etc/manpath.config
:1,$s#/usr/share/man#/usr/share/man/zh_CN#g

2. help

用法:

  • help + 参数:内部命令,比如 help cd

  • 参数 + --help :外部命令,比如 ls --help

help 用于查询外部命令和内部命令的使用手册。内部命令指的是 shell 内嵌的(shell builtin),其它命令则是外部命令(is hashed)

3. info

用法: info + 参数

info 作为 help 的补充,会更加详细。

目录管理

1. 目录结构

Linux 系统操作

/:根目录

/bin:存放常用的二进制可执行命令,如 ls,mv 等,通常与 /usr/bin 内容一样。

/dev:存放与设备有关的特殊文件,如 /dev/fd0 代表软盘, /dev/cdrom 代表光盘。

/etc:存放系统管理和配置的文件,如用户的账号、密码以及系统的主要设置。

/home:为用户设置的主目录,每一个普通用户在 home 下都有对应的普通用户家目录,比如 chor 就有 /home/chor ,可用 ~ 表示。

/root:root 用户的超级用户家目录,也可用 ~ 表示。

/lib:标准程序设计库,或动态链接共享库。

/sbin:系统管理命令,存放系统管理员程序,如 fdisk、mount 等。

/boot:存放 Linux 核心与启动和关闭系统有关的文档。

/mnt:其他文件系统的挂载点。

/var:系统预先设置的工作目录,如各种服务的日志文件和收发的邮件等。

/proc:虚拟目录,是系统内存的映射,通过访问该目录获取系统信息。

/tmp:公用的临时文件存储点。

/usr:最庞大和最主要的目录之一,要用到的应用程序和文件几乎都在这个目录。

  • /usr/bin :应用程序
  • /usr/sbin :超级用户的管理程序
  • /usr/local :存放本地增加的命令
  • /usr/lib :存放常用动态链接库和软件包的配置文件
  • /usr/src :保存 Linux 内核的源代码,编译内核时必须用到
  • /usr/share :Linux 的说明文档
  • /usr/include :Linux 下编程需要的头文件

2. 目录查看

pwd

显示当前所在目录(路径)

ls

ls :显示当前所在路径下的文件

ls + 路径:显示指定路径下的文件

ls -l :显示当前所在路径下的文件,并且带有详情(修改时间、大小、权限等)

ls -a :显示当前所在路径下的文件,包括隐藏文件

ls -r :按照文件名逆序显示当前所在路径下的文件

ls -t :按照时间顺序显示当前所在路径下的文件

ls -R :递归显示当前所在路径下的文件,包括文件里面的文件

ls -lartR :上面几种查看方式的组合

ls xxx* :显示当前所在路径下以 xxx 开头的文件

PS:如果要目标是指定路径下,再加上第三个参数即可

cd

用法:

  • cd + 绝对路径

  • cd + 相对路径

  • cd - :回到上一次 cd 进去的目录

  • cd ~ :回到用户家目录( /home/xxx 或者 /root

切换当前工作目录。另外,shell 提供了路径补全功能,按 tab 可以自动补全路径

3. 目录创建和删除

mkdir folder1 folder2 :在当前目录下创建 folder1 目录和 folder2 目录

mkdir /etc/folder :在 etc 目录下创建 folder 目录

mkdir -p f1/f2/f3/f4 :在当前目录下递归创建目录 f1、f2、f3、f4

rmdir folder :删除 folder 空目录 (如果 folder 里面有文件,是无法删除 folder 的)

rmdir -p folder1/folder2 :删除 folder2 空目录 ,如果删除之后导致 folder1 也变成空目录,则将 folder1 目录也删除

rm -r folder :删除 folder 目录以及目录下所有文件(Centos 下会进行询问)

rm -r -f folder (或者 rm -rf folder ):强制删除 folder 目录以及目录下所有文件(无论空还是非空)

4. 目录复制和移动

cp -r /folder2 /folder1 :将目录 folder2 复制到 folder1 目录里

mv /folder /etc :将 folder 目录移动到 etc 目录里(目录 ——> 目录)

文件管理

1. 文件创建和删除

touch filea fileb :创建文件 filea 和 fileb

rm filea :删除文件 filea

2. 文件编辑

cat>filea :直接在终端中编辑 filea 文件( ctrl+c 保存退出)。无该文件时会自动创建。

cat file1 file2>>file3 :将 file1 和 file2 内容进行拼接,再放到 file3 中。

gedit filea :打开 filea 文件进行修改

echo 123>filea :将输出进行重定向,把 123 输出到 filea 文件

3. 文件查看

用法:

cat filea : 从头到尾查看文本内容

head -10 filea :查看文本内容前十行

tail -10 filea :查看文本内容倒数十行

more -5 filea :支持翻页查看文本内容,一屏显示5行。 bspace 控制上下翻页

less -5 filea :支持翻页查看文本内容,一屏显示5行。 pageuppagedown 控制上下翻页

wc filea :统计文件内容信息

PS:常用参数 -f ,同步追踪并显示正在发生更改的文件内容。 moreless 支持翻页,适合用来查看那些内容超过一屏的文本。

4. 文件复制和移动

cp file /a :将文件 file 复制到 a 目录里

cp -p file /a :将文件 file 复制到 a 目录里,并且副本时间和原文件一样

cp -a file /a :将文件 file 复制到 a 目录里,并且副本时间、权限等都和原文件一样

mv /filea /fileb :将 filea 重命名为 fileb(文件 ——> 文件)

mv /filea /etc :将 filea 移动到 etc 目录里(文件 ——> 目录)

mv /filea /etc/fileb :将 filea 移动到 etc 目录里,并将文件重命名为 fileb

PS:小技巧。如果重名名前后只有局部差异,可以考虑将前后改动包裹在 {} 中。例如 filea 修改为 fileb ,可以这么写: mv file{a,b}

用户管理

1. 创建用户(组)

用法:

useradd chor :直接创建新用户 chor,但是不生成对应的家目录 /home/chor

adduser chor :以引导的方式创建新用户 chor,生成对应的家目录 /home/chor

groupadd group1 :创建新用户组 group1

adduser -g group1 chor :创建新用户 chor 的同时将其分组为 group1

PS:必须以 root 身份创建用户。上述两种方式区别在于是否创建对应家目录,但都会在 /etc/passwd 下添加用户, /etc/shadow 下添加密码。更推荐用 adduser

2. 查看用户

id :查看当前激活用户信息

id chor :查看 chor 用户的信息

PS:信息中,uid 唯一标识用户,group 是用户所在组,默认以用户名单独建一个组(组的作用在于统一修改多个用户)

who :查看当前登录用户

whoami :查看当前终端用户

3. 修改用户

passwd :修改当前激活用户的密码

passwd chor :修改 chor 用户的密码

usermod -d /home/chor1 chor :修改 chor 用户的家目录

usermod -g group1 chor :修改 chor 用户的所在组为 group1

chage -E 2020-10-01 chor :设置 chor 用户的生命周期,2020.10.01 时该用户不可用

4. 删除用户(组)

userdel chor :删除 chor 用户,但保留其家目录(防止删除重要数据)

userdel -r chor :删除 chor 用户,并且删除其家目录

deluser chor :删除 chor 用户,但保留其家目录(防止删除重要数据)

userdel --remove-home chor :删除 chor 用户,并且删除其家目录

groupdel group1 :删除用户组 group1

PS:更推荐用 userdel

5. 切换用户

su chor :切换到 chor 用户,但当前目录不变

su - chor :切换到 chor 用户,且当前目录自动切换到 chor 的家目录下

su :切换到 root 用户

su - root :切换到 root 用户

exit :退出当前用户,切换为到 root 用户

权限管理

1. 指令权限

sudo shutdown -c :以普通用户 chor 的身份执行 root 用户赋予给自己的特权指令 shutdown -c

visudo :以 root 身份编辑赋予给普通用户的特权指令

2. 文件权限

① 查看权限

ls -l file :查看文件权限

ls -ld folder :查看目录权限

Linux 系统操作

查看到信息的时候只需关注前面的部分:

  • chor chor 中,第一个 chor 代表文件所有者,第二个 chor 代表所有者所在组。
  • - rw-rw-r-- 中 ,第一个 - 指示文件是普通类型。第一个 rw- 代表文件所有者对该文件的权限,第二个 rw- 代表文件所有者所在组对该文件的权限, r-- 代表其他用户对该文件的权限。同样的, d rwxrwxr-x 也是一样的,只不过 d 指示文件是目录类型(文件夹)
  • 对于普通类型, rwx 分别代表对文件拥有 可读可写可执行 的权限, - 代表未指定
  • 对于目录类型, rwx 分别代表对目录拥有 可显示目录内文件(ls)可修改目录内文件(rm)可进入目录(cd) 的权限, - 代表未指定
  • rwx 可以分别用数字 4、2、1 表示

② 修改权限

chown user1 file :修改文件所有者

chown :group1 file :修改文件所有者所在组

chown user1:group1 file :修改文件所有者和所在组

chgrp group1 file :修改文件所有者所在组

可以用字符修改权限:

chmod u+rw file :修改文件所有者对 file 的权限,增加 rw 权限

chmod g-r file :修改文件所有者所在组对 file 的权限,减去 r 权限

chmod o=rwx file :修改其它用户对 file 的权限,为 rwx 权限

chmod a-w file :修改所有用户对 file 的权限,去掉所有出现过的 w 权限

PS:u 代表文件所有者,g 代表所有者所在组,o 代表其它用户,a 代表所有用户。操作方式包括 +,-,=

也可以用数字修改权限:

chomod 777 file :修改 file 权限为 777。7 = 4+2+1,所以 777 的意思是所有的用户对该文件都拥有可读可写可执行的权限。

注意:

软件安装

Linux 下安装软件,可以通过源码包安装,也可以通过软件包安装,这里介绍后面一种。软件包的安装相关概念如下:

系列 发行版 包管理机制 安装包格式 包管理器(无法处理依赖) 包管理器(可以处理依赖)
RedHat 系列 Fedora,CentOS rpm .rpm rpm yum
Debian 系列 Ubuntu,Debian dpkg .deb dpkg apt

因为个人用的是 Ubuntu,这里仅介绍 apt 的相关用法。

新版 Ubuntu 中,建议用 apt 代替旧的 apt-get

1. 安装/更新相关

apt install :安装软件包

apt update :并不实际更新软件,而是更新软件包列表。具体地说,运行命令后会逐一访问 sources.list 文件中的原仓库地址,并读取最新的软件包列表,保存在本地中。

apt upgrade :更新软件,但 不会根据依赖关系的变化添加或删除软件 。具体地说,运行命令后会将当前安装软件与之前通过 update 更新的软件包列表进行比对,有需要更新的就会进行更新。

apt dist-upgrade :同上,但是 会根据依赖关系的变化添加或删除软件

2. 移除相关

apt remove :卸载软件包,但保留配置文件

apt --purge remove :卸载软件包,且不保留配置文件

apt autoremove :卸载为了满足其它软件的依赖而安装的、但现在已不再需要的软件包

apt clean :删除安装软件时缓存的 .deb 文件

apt autoclean :同上,但仅删除旧的、无用的 .deb 文件,对于已安装软件的 .deb 文件会进行保留

3. 查看相关

apt check :检查某个软件包是否有损坏的依赖

apt-cache stats :显示系统软件包的统计信息

apt-cache show gcc :查看 gcc 软件包的相关信息

apt-cache showpkg gcc :查看 gcc 软件包的常规信息、依赖关系等

apt-cache policy gcc :查看 gcc 软件包的安装设置状态

apt-cache depends gcc :查看 gcc 软件包所依赖的软件包

apt-cache redepends gcc :查看 gcc 软件包被哪些软件包依赖

安装 apt-fle 后,可以查看软件包的文件:

apt-file update :要查看软件包的文件,首先运行该命令更新软件包的文件库

apt-file list gcc :展示 gcc 软件包的所有文件

apt-file search file1 :查找包含 file1 文件的软件包(不管软件包有没有安装)

服务相关

netstat 用于显示与 IP、TCP、UDP 和 ICMP 协议相关的统计数据,一般用于检验本机各端口的网络连接情况。

显示所有连接和监听的端口: netstat -a

查看 tcp 监听的端口: netstat -ntlp

查看某个进程的端口:先 ps -ef | grep 进程名 查看进程 pid,再根据 netstat -nap | grep 进程pid 查看进程的端口

查看某个端口对应的进程: netstat -nap | grep 端口号

关闭占用某个端口的进程: sudo fuser -k 端口号/tcp

参考:

《Linux 实战技能100讲》


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

The Starfish and the Spider

The Starfish and the Spider

Ori Brafman、Rod A. Beckstrom / Portfolio Hardcover / 2006-10-05 / USD 24.95

Understanding the amazing force that links some of today's most successful companies If you cut off a spider's leg, it's crippled; if you cut off its head, it dies. But if you cut off a st......一起来看看 《The Starfish and the Spider》 这本书的介绍吧!

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

随机密码生成器
随机密码生成器

多种字符组合密码

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试