多用户操作系统:一台计算机在同一时间可以由多个用户同时使用,多个用户同时共享系统的硬件及软件资源。
一、文件目录结构
没有盘符概念,只有根目录/,所以的文件都在下面。
- /bin
bin 是 Binaries (二进制文件) 的缩写, 这个目录存放着最经常使用的命令。 - /etc
etc 是 Etcetera(等等) 的缩写,这个目录用来存放所有的系统管理所需要的配置文件和子目录。 - /home
用户的主目录,在 Linux 中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的, - /lib
lib 是 Library(库) 的缩写这个目录里存放着系统最基本的动态连接共享库,其作用类似于 Windows 里的 DLL 文件。几乎所有的应用程序都需要用到这些共享库。 - /opt
opt 是 optional(可选) 的缩写,这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。 - /root
该目录为系统管理员,也称作超级权限者的用户主目录。 - /sbin
s 就是 Super User 的意思,是 Superuser Binaries (超级用户的二进制文件) 的缩写,这里存放的是系统管理员使用的系统管理程序。 - /sys
内核设备树的一个直观反映 - /tmp
是 temporary(临时) 的缩写这个目录是用来存放一些临时文件的。 - /usr
是 unix shared resources(共享资源) 的缩写,这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于 windows 下的 program files 目录。 - usr/bin
系统用户使用的应用程序。 - /usr/sbin
超级用户使用的比较高级的管理程序和系统守护程序。 - /usr/src
内核源代码默认的放置目录。 - /var
var是 variable(变量) 的缩写,这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。 - /run
是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。如果你的系统上有 /var/run 目录,应该让它指向 run。
二、常用Linux命令的基本使用
命令 | 作用 |
---|---|
ls(list) | 查看当前文件夹下的所有内容 |
pwd(print work directory) | 查看当前文件夹的路径 |
cd[目录] | 切换到指定路径 |
touch[文件名] | 如果文件不存在则新建 |
mkdir[目录] | 创建目录 |
rm[文件名] | 删除指定的文件 |
clear(clear) | 删除指定的文件 |
- 查看命令帮助信息
command --help
man command (空格翻屏,f返回一屏,q退出)
#查看mkdir命令的帮助信息
mkdir --help
man mkdir
三、文件和目录命令
1、查看目录内容 ls
ls 列出目录的内容
说明:Linux文件名及目录名称,最长可以由256个字符。
以.开头的命名的文件为隐藏文件,查看时需添加-a参数才能显示。
.表示当前目录 ..表示上级目录
-a 显示当前目录下的所有子目录及文件,包括隐藏文件。
-l 以列表的形式显示文件的详细信息
-h 配合-l以人性化的方式显示文件大小。
第一个字符代表文件(-)、目录(d),链接(l)
- 第一组rwx:文件所有者的权限是读、写和执行
- 第二组rw-:与文件所有者同一组的用户的权限是读、写但不能执行
- 第三组r--:不与文件所有者同组的其他用户的权限是读不能写和执行
- ls 通配符的使用,当需要筛选显示的结果时,使用通配符。
ls -alh 2*
列出以2开头的所有文件及文件夹
2、切换目录
cd 切换当前的工作目录
cd 切换到当前用户的主目录
cd ~ 切换到当前用户的主目录
cd / 切换到根目录
cd . 保持不变
cd .. 返回上级目录
cd - 在最近两次目录中切换
- 绝对路径和相对路径
3、创建和删除
-
touch创建文件或者修改文件操作时间
如果文件不存在则创建一个空白文件
如果文件已存在则会修改文件的最后一次修改时间 -
mkdir 创建目录
添加选项-p可以创建多层级的文件目录结构
// 创建层级目录
mdkir -p d1/d2/d3
- rm 删除文件,不能恢复
-r 强制删除,忽略不存在的文件,无需提示。
-f 递归删除目录下的所有文件,删除文件夹时必须添加此选项。
rm -rf d1
四、拷贝和移动
1、tree
以树状图列出目录结构 -d只显示目录
如果没有tree命令:
1.下载tree-2.0.2 2.tgz http://mama.indstate.edu/users/ice/tree/
2.上传至Linux主机
3.解压tar -zxvf tree-2.0.2 2.tgz
4.进入解压目录tree-2.0.2
5.安装sudo make install
6.测试tree命令
2、拷贝命令 :cp 源文件 目标文件
-i 覆盖文件前提示
-r 如果给出的源文件时目录,将递归复制该目录下的所有文件及目录,目标文件必须为目录。
cp -r pjo pro # 递归复制
3、移动:mv 源文件 目标文件
移动文件或者目录/文件或者目录重命名
mv pro/d2 . #移动
mv d2 d1 #重命名
-i 覆盖文件前提示
五、文件内容命令
1、cat
查看文件内容、创建文件、文件合并、追加文件内容等功能。会一次性显示文件的全部内容,
适合查看内容较少的文本。
-b 对非空行输出编号
-n 对所有行输出编号
nl 等价于 cat -b
2、more
分屏显示文件内容,每次只显示一页内容,适用于查看文件内容较多的文件。
使用空格键显示下一页内容。
enter 一次滚动一行
b 回滚一屏
f 前滚一屏
q 退出
/word 搜索word
3、grep
对文本内容进行正则表达式匹配查找
-n 显示匹配行及行号
-v 正则匹配取反显示
-i 忽略大小写
两种常见的正则匹配
^a 行首以a开头
b$ 行尾以b结尾
编号 参数 解释
1 ^ 匹配行首
2 $ 匹配行尾
3 [ ] or [ n - n ] 匹配[ ]内字符
4 . 匹配任意的单字符
5 * 紧跟一个单字符,表示匹配0个或者多个此字符
6 \ 用来屏蔽元字符的特殊含义
7 \? 匹配前面的字符0次或者1次
8 \+ 匹配前面的字符1次或者多次
9 X\{m\} 匹配字符X m次
10 X\{m,\} 匹配字符X 最少m次
11 X\{m,n\} 匹配字符X m---n 次
12 666 标记匹配字符,如666 被标记为1,随后想使用666,直接以 1 代替即可
13 \| 表示或的关系
grep -ni java 1.txt
六、其他命令
1、echo 内容
会在终端中显示参数指定文字,通常和重定向联合使用。
echo hello world
echo Hello Python >> 1.txt
2、重定向 > 和 >>
将命令结果重定向至一个文件
> 输出至文件,并覆盖文件的原有内容
>> 输出至文件,将内容追加至原有文件末尾
//案例
echo Hello Java >> a.txt
将Hello Java 输出至a.txt
ls -alh >> b.txt
将ls的结果输出至b.txt
3、管道 |
linux允许将一个命令的输出可以通过管道,做为另一个命令的输入。
//选项
more 分屏显示内容
grep 在命令执行结果的基础上,查询指定的文本。
七、远程管理命令
1、关机重启shutdown
可以安全关闭或者重启系统,不指定任何参数和选项时,表示系统1分钟后关闭,注意:远程维护时,不要关闭系统,应该重启系统,减少不必要的麻烦。
-r 表示重启
shutdown //1分钟后关闭计算机
shutdown now //立刻关机
shutdown -r now //立即重启
shutdown 10:50 //10:50关机
shutdown +10 //10分钟后关机
shutdown -c //取消之前的关机计划
2、查看或配置网卡信息ifconfig/ping
网卡:负责网络通信的硬件设备
ip地址:设置在网卡上的地址信息,每台联网的设备都有唯一的ip地址。
ifconfig 查看/配置网卡信息
ping ip 检测与目标ip的连接是否正常
ping www.baidu.com
ping 127.0.0.1
3、远程登录和复制文件
3.1 ssh远程登录
ssh客户端是使用secure shell协议远程连接计算机的程序,对数据传输进行了加密和压缩,可以防止远程传输中的信息泄露,并提高了传输速度。
ssh [-p port] username@remote
remote:远程机器的地址ip/别名/域名
使用exit退出当前登录
ssh -p 22 root@123.56.67.17
3.2 scp远程复制
securp copy linux系统下远程拷贝文件,
-r 如果源文件为目录,则递归复制所有的目录及文件,目标文件必须是目录
-P 指定端口
//示例
scp -P port 1.txt username@ip:Desktop/1.txt
scp -P port username@ip:Desktop/1.txt 1.txt
scp -P port -r demo username@ip:Desktop
scp -P port -r username@ip:Desktop demo
注意::后面如果不是绝对路径,则以用户目录的家目录作为参考
3.3 ssh高级(免密登录、配置别名)
ssh的登录配置都将存储在用户目录.ssh目录下
配置公钥
1.ssh-keygen 生成ssh秘钥,保存在.ssh目录下
让远程服务器记住秘钥(复制)
2.ssh-copy-id -p port suer@ip
1.进入~/.ssh/目录
2.touch config创建文件
3.在config文件中写入:
Host mac
HostName ip地址
User username
Prot 22
4.测试登录ssh mac 直接登录
八、用户权限
用户是Linux系统中重要的一环,本机或者远程登录都需要一个账号,不同的账号用户不同的系统使用资源。为了管理用户来设置管理组。
权限 | 英文 | 缩写 | 数字代号 |
---|---|---|---|
读 | read | r | 4 |
写 | write | w | 2 |
执行 | excute | x | 1 |
1、超级用户root
用于系统的维护和管理,对操作系统的所有资源具有所有访问权。日常使用中不推荐使用root用户登录,以免造成系统错误。
su user //切换用户
su - zhangsan //切换至张三用户,并进入张三用的家目录。
使用exit退出,返回之前的用户。
sudo //以预设root用户执行命令,第一次使用时输入密码并有5分钟有效期。
2、chmod修改权限
chmod +/-rwx 文件/目录
//增加执行的权限
chmod +x text
chmod u=rwx,g=rx,o=rx 文件 #:u=用户权限,g=组权限,o=不同组其他用户权限
chmod 777 1.txt
改变所有者(chown)和用户组(chgrp)
chown 用户名 文件名:改变abc的所有者为xiaoming
chgrp 组 文件:改变abc所属的组为root
chown 用户 目录:改变abc这个目录的所有者是root
chown ‐R 用户 目录:改变abc这个目录及其下面所有的文件和目录的所有者是root
3、组管理
创建组、删除组在命令前需添加sudo,以root权限进行增加、删除。
groupadd 组名 //添加组
groupdel 组名 //删除组
cat /etc/group //确认组信息
chgrp -R 组名 文件/目录 //修改文件或者目录所属的组
4、用户管理
需要用sudo,使用roo权限。
useradd -m -g group user //-m自动建立用户家目录 -g指定组
passwd user//设置用户密码
userdel -r user //删除用户,-r自动删除家目录。
cat /etc/passwd | grep user //确认用户信息
注意:创建用户时如果忘记-m属性,没有创建用户家目录,最简单的办法就是删除用户,重新创建。
通过ssh登录新账户,会发现不显示用户名、主机名,方向键无用等
解决方法:
#修改/etc/passwd
vim /etc/passwd
在最后位置找到新增加的用户
将/bin/sh改为/bin/bash
保存退出
- 查看用户信息
id [user] 查看用户UID/GID信息
who 查看当前所有登录的用户的列表
whoami 查看当前用户的用户名
usermod 用来设置用户的主族/附加组和登录shell
主组:新建用户时指定
附加组:用户的附加权限
#修改用户的主组
usermod -g 组 用户名
#修改用户的附加组,需重新登录。
usermod -G 组 用户名
#修改用户登录shell
usermod -s /bin/bash
注意:默认使用useradd添加的用户没有权限使用sudo命令,如果要使
用则需给用户添加sudo附加组。
usermod -G sudo user
/etc/passwd //用于保存用户信息的文件
/usr/bin/passwd //用于修改用户密码的程序
which命令可以查看执行命令所在位置
which ls 输出 /usr/bin/ls
- 修改权限命令:
九、系统信息相关命令
1、日期时间
date 查看系统时间
cal 查看日历 -y选项可以选择查看那一年的日历
2、查看磁盘信息
df -h 显示磁盘剩余空间 disk free
du -h [目录名] 显示目录容量大小 disk usage
注意:-h以人性化的方式显示
3、进程信息
进程:就是一个正在执行的程序
ps aux 查看进程的详细状态
top 动态显示运行中的进程并排序
kill [-9] pid 终止进程 -9表示强制执行
十、其他命令
1、查找文件
find [路径] -name "*.py" //如果省略路径则表示在当前路径下查找,*表示通配符。
find / -name 1.txt
2、软连接
ln -s 源文件 快捷方式
注意:源文件使用绝对路径
3、打包/解包
//打包
tar -cvf 文件名.tar 目录/文件
//解压
tar -xcf 文件名.tar
4、压缩、解压缩
#压缩文件
tar -zcvf 文件名.tar.gz 目录/文件
#解压缩
tar -zxvf 文件名.tar.gz
#解压缩到指定文件夹
tar -zxvf 文件名.tar.gz -C 目标路径
5、软件安装
6、更换apt镜像
1.修改并添加镜像源地址
sudo vim /etc/apt/sources.list
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
2.更新
sudo apt-get update
sudo apt-get upgrade
3.测试
sudo apt install sl
小火车上线,更换成功。
十一、vim编辑器
:set nu 显示行号
: set nonu 取消显示号行