ubuntu笔记
一切皆文件
不同颜色代表不同类型的文件
蓝色
:目录绿色
:可执行文件白色
:一般性文件,如文本文件,配置文件等红色
:压缩文件或归档文件浅蓝色
:链接文件- 红色闪烁:链接文件存在问题
- 黄色:设备文件
- 青黄色:管道文件
终端命令格式
command [-options] [parameter]
查阅命令的使用手册
command --help
自动补全
在敲出 文件/目录/命令 的前几个字母后,按下tab键
- 如果输入没有歧义,则系统自动补全
- 如果存在相似名称,再按一下
tab
键,系统会提示可能存在的命令
曾经使用过的命令
- 按 上/下 光标键切换
- 使用
ctrl+c
退出选择,另起一行
6个常用的终端命令
ls:(list)查看当前文件夹下的内容
pwd:(print work directoy)查看当前所在文件夹
cd:(change directoy)移动到摸一个指定文件夹
touch:(touch)如果文件不存在,新建文件
mkdir:(make dirctory)创建目录
rm:(remove)删除指定文件名
clear:(clear)清屏
ctrl+shift+=:放大终端窗口的字体
ctrl+-:缩小
ls命令
ls # 仅列出当前目录可见文件
ls -l # 列出当前目录可见文件详细信息
ls -hl # 列出详细信息并以可读大小显示文件大小
ls -al # 列出所有文件(包括隐藏)的详细信息
ls --human-readable --size -1 -S --classify # 按文件大小排序
du -sh * | sort -h # 按文件大小排序(同上)
cd命令
cd # 进入用户主目录;
cd / # 进入根目录
cd ~ # 进入用户主目录;
cd .. # 返回上级目录(若当前目录为“/“,则执行完后还在“/";".."为上级目录的意思);
cd ../.. # 返回上两级目录;
cd !$ # 把上个命令的参数作为cd参数使用。
cd - : 可以在最近两次工作目录之间来回切换
touch命令
touch:创建一个新的文件
批量创建文件
touch file{1...5}.txt
创建job.md文件,并写入job 1
echo "job 1" > job1.md
mkdir命令
-p : 递归创建目录 mkdir -p a/b/c
rm命令
rm 命令 可以删除一个目录中的一个或多个文件或目录,也可以将某个目录及其下属的所有文件及其子目录均删除掉。对于链接文件,只是删除整个链接文件,而原有文件保持不变。
使用rm删除的文件无法恢复!!!(rm -rf /*)
-d:直接把欲删除的目录的硬连接数据删除成0,删除该目录;
-f:强制删除文件或目录;
-i:删除已有文件或目录之前先询问用户;
-r或-R:递归处理,将指定目录下的所有文件与子目录一并处理;
--preserve-root:不对根目录进行递归操作;
-v:显示指令的详细执行过程。
tree
tree :以树状图列出文件目录结构
cp命令
复制文件或者目录
-i : 覆盖文件前提示
-r : 若给出的源文件是目录文件,则cp
将递归复制该目录下的所有子目录和文件,目标文件必须为一个目录名
mv命令
移动文件或者目录/文件或者目录重命名
-i: 覆盖文件前提示
cat命令
查看文件内容、创建文件、文件合并、追加文件内容等功能
-b : 对非空输出行编号
-n : 对输出的所有行编号
more命令
分屏显示文件内容,每次显示一页
空格键:显示手册的下一页内容
Enter:一次滚动手册页的一行
b:回滚一页
f:前滚一页
q:退出
/word:搜索word字符串
grep命令
搜索文本文件内容
-n : 显示匹配行和行号
-v : 显示不包括匹配文本的所有行(相当于求反)
-i : 忽略大小写
^a : 行首,搜索以a开头的行
ks$ : 行尾,搜索以ke结束的行
echo
会在终端中显示参数指定的文字,通常与重定向联合使用
`>`:表示输出,会覆盖文件原有的内容
`>>`:表示追加,会将内容追加到已有文件的末尾
例如:echo 内容 > 123.txt
管道 | 命令
Linux允许将一个命令的输出通过管道作为另一个命令的输入
常用的管道命令有:
more`:分屏显示内容
`grep`:在命令执行结果的基础上查询指定的文本
用户权限
序号 | 权限 | 英文 | 缩写 | 数字代号 |
---|---|---|---|---|
01 | 读 | read | r | 4 |
02 | 写 | write | w | 2 |
03 | 执行 | excute | x | 1 |
多个用户,添加到组,统一设置权限
使用 “ ls -hl(列出当前目录可见文件详细信息) ”命令查看文件的详细信息时,从左至右显示的依次是:
- 权限:第一个字符如果是d代表目录
- 硬链接数:也就是有多少方式可以访问到当前目录/文件。文件1(绝对路径)目录:1(绝对路径)+1(cd .)+子目录数目(cd ..)
- 拥有者:家目录下文件/目录的拥有者通常为当前的用户
- 组:再Linux中,多出现组名和用户名相同的情况
- 文件大小
- 修改时间
- 文件/目录名称
目录 | 拥有者权限 | 组权限 | 其他用户权限 |
---|---|---|---|
- | r w - | r w - | r - - |
d | r w x | r w x | r - x |
修改用户权限
chmod命令(change mode)
chmod [ugoa] [+-=] [rwx] 文件名/目录名
中的[ugoa]代表
`u`:文件所有者(user)
`g`:所属组用户(group)
`o`:其他用户(others)
`a`:所有用户(all,相当于 `ugo`)
如果省略[ugoa] 一次性修改**拥有者/组**的权限
例如:chmod +rwx file.txt chmod u-wx file.txt chmod g+r file.txt
超级用户
sudo`:使用其他用户身份执行命令,预设身份为`root
组管理
创建组/删除组的终端命令都需要通过sudo执行
groupadd 组名:添加组
groupdel 组名:删除组
cat/etc/group :确认组信息
chgrp -R 组名 文件/目录
注意:组信息保存在/etc/group文件中。/etc目录是专门用来保存系统配置信息的目录
用户管理
useradd -m -g 组 新建用户 :添加新用户。-m 自动建立家目录 -g 指定用户所在的组,否则会建立一个同名的组
passwd:设置用户密码。 如果时普通用户,直接用passwd,可以修改自己的账户密码
userdel -r 用户名 :删除用户 。-r 选项会自动删除用户家目录
cat /etc/passwd | grep 用户名 : 检查该用户的 Shell 设置 。新建用户后,用户信息会保存在/etc/passwd文件中
id 用户名 : 查看用户的UID和GID信息
who : 查看当前所有登录的用户列表
whoami : 查看当前登录用户的账户名
passwd文件
/etc/passwd
文件存放的是用户的信息,由6个分号组成的7个信息,分别是
- 1、用户名
- 2、密码(x,表示加密密码)
- 3、UID(用户标识)
- 4、GID(组标识)
- 5、用户全名或本地账号
- 6、家目录
- 7、登录使用的Shell,就是登录以后,使用的终端命令,
Ubuntu
默认是dash
主组和附加组
- 主组:通常在新建用户时指定,在
etc/passwd
的第4列GID对应的组 - 附加组:在
etc/group
中最后一列表示该组的用户列表,用于指定用户的附加权限
主组:也称初始组,是用户登录系统时的组。
创建新用户时,若未明确指定该用户所属的主组,会默认创建一个与用户名相同的组,作为该用户的主组
用户创建文件时,文件的所属权限组就是当前用户的主组
使用useradd
命令时用-g
参数可以指定主组,则不会默认创建同名的主组
用户有且只能所属一个主组
用户的主组不能被删除
用户不能直接被移出主组,但可以更换主组
用户被删除时它的主组若没有其他所属用户,则会自动删除该主组
附加组:登录后可切换的其他组
使用useradd
命令时用-G
参数可以指定附加组
用户可以所属零个或多个附加组
用户的附加组和主组可相同
附加组可以直接被删除而无需关心是否所属于用户
附加组可以新增和移除任意个所属用户
用户被删除时所属附属组不会受影响
usermod 可以用来设置用户的主组/附加组和登录Shell
usermod -g 组 用户名 : 修改用户的主组(passwd中的GID)
usermod -G 组 用户名 : 修改用户的附加组
usermod -s /bin/bash : 修改用户登录Shell
which命令
提示:
/etc/passwd
是用于保存用户信息的文件/usr/bin/passwd
是用于修改用户密码的程序
which命令可以查看执行命令的所在位置
which ls : 查看ls命令所在的位置
补充:
在Linux中,绝大多数可执行文件都是保存在/bin、/sbin、/usr/bin、/usr/sbin
/bin(binary)是二进制执行文件目录,主要用于具体应用
/sbin(system binary)是系统管理员专用的二进制代码存放目录,主要用于系统管理
/usr/bin(user commands for applications)后期安装的一些软件
/usr/sbin(super user commands for applications)超级用户的一些管理程序
修改文件的权限
chown : 修改拥有者
chgrp : 修改组
chmod : 修改权限
chown 用户名 文件名|目录名 : 修改文件|目录的拥有者
chgrp -R 组名 文件名|目录名 : 递归修改文件|目录的组
chmod -R 755 文件名|目录名 : 递归修改文件权限
-R : 递归修改
修改权限必须使用sudo命令
常用组合(u表示用户,g表示组,o表示其他)
777`===>`u=rwx,g=rwx,o=rwx
755`===>`u=rwx,g=r-x,o=r-x
644`===>`u=rw-,g=r--,o=r--
系统信息相关
时间和日期
date : 查看系统时间
cal : 查看日历。-y 可以查看一年的日历
磁盘信息
df -h : disk free 显示磁盘剩余空间
du -h 目录名 : disk usage 显示目录下的文件大小
-h : 以人性化的方式显示文件大小
进程信息
所谓进程,就是当前正在执行的一个程序
ps aux: process status查看进程的详细情况
top : 动态显示运行中的进程并排序
kill [ - 9 ] 进程代号 : 终止指定代号的进程,-9表示强行终止,进程代号使用ps查看
ps命令
- 默认只会显示当前用户通过终端启动的应用程序
- 接选项不需要“
-
”,多用ps au
aux的含义
a : 显示终端上的所有进程,包括其他用户的进程
u : 显示进程的详细状态
x : 显示没有控制终端的进程
提示:使用kill
命令时,最好只终止由当前用户开启的进程,而不要终止root
身份开启的进程,否则可能系统崩溃
退出top
,直接输入q
其他命令
find [路径] -name "*.py" //查找指定路径下的.py文件,包含路径的子目录
如果省略命令,表示在当前文件夹下查找
find可使用通配符
ln -s 被链接的源文件 链接文件 //建立文件的软连接,类似于windows下的快捷方式
没有-s的话,就是复制
安装和压缩
apt(advanced packaging tool)可以在终端中安装/卸载/更新包
必须使用sudo命令
sudo apt install 软件包
安装软件
sudo apt remove 软件名
卸载软件
sudo apt upgrade
更新已安装的包
打包和压缩
tar是linux常用的备份工具,此命令可以将一系列文件打包到一个大文件中,也可以把一个大打包文件恢复成一系列文件
tar -cvf 打包文件.tar 被打包的文件/路径(多个文件用空格隔开)
打包文件
tar -xvf 打包文件.tar
解包文件
c 生成档案文件,创建打包文件
x 解开档案文件
v 列出归档解档的详细过程,显示进度
f 指定档案文件名称,f后面一定是.tar文件,必须放选项最后
注意:f选项必须放到最后,其他的随意
gzip
命令可以与tar
命令结合实现文件的打包和压缩
tar
只负责打包文件,但不压缩gzip
压缩打包文件,扩展名为xxx.tar.gz
使用tar命令时,添加-z选项,便可以调用gzip
tar -zcvf 打包文件.tar.gz 被压缩的文件/路径
压缩文件
tar -zxvf 打包文件.tar.gz
解压缩文件
tar -zxvf 打包文件.tar.gz -C 目标路径
解压缩到指定路径
补充命令
查看正在运行的服务
systemctl list-units --type=service --state=running