ubuntu笔记

一切皆文件

不同颜色代表不同类型的文件

终端命令格式
command 	[-options]	[parameter]
查阅命令的使用手册
command	--help
自动补全

在敲出 文件/目录/命令 的前几个字母后,按下tab键

曾经使用过的命令
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(列出当前目录可见文件详细信息) ”命令查看文件的详细信息时,从左至右显示的依次是:

  1. 权限:第一个字符如果是d代表目录
  2. 硬链接数:也就是有多少方式可以访问到当前目录/文件。文件1(绝对路径)目录:1(绝对路径)+1(cd .)+子目录数目(cd ..)
  3. 拥有者:家目录下文件/目录的拥有者通常为当前的用户
  4. 组:再Linux中,多出现组名和用户名相同的情况
  5. 文件大小
  6. 修改时间
  7. 文件/目录名称
目录 拥有者权限 组权限 其他用户权限
- 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个信息,分别是

主组和附加组

主组:也称初始组,是用户登录系统时的组。

创建新用户时,若未明确指定该用户所属的主组,会默认创建一个与用户名相同的组,作为该用户的主组

用户创建文件时,文件的所属权限组就是当前用户的主组

使用useradd命令时用-g参数可以指定主组,则不会默认创建同名的主组

用户有且只能所属一个主组

用户的主组不能被删除

用户不能直接被移出主组,但可以更换主组

用户被删除时它的主组若没有其他所属用户,则会自动删除该主组

附加组:登录后可切换的其他组

使用useradd命令时用-G参数可以指定附加组

用户可以所属零个或多个附加组

用户的附加组和主组可相同

附加组可以直接被删除而无需关心是否所属于用户

附加组可以新增和移除任意个所属用户

用户被删除时所属附属组不会受影响

usermod 可以用来设置用户的主组/附加组和登录Shell

usermod -g 组 用户名 : 修改用户的主组(passwd中的GID)

usermod -G 组 用户名 : 修改用户的附加组

usermod -s /bin/bash : 修改用户登录Shell
which命令

提示:

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命令

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命令时,添加-z选项,便可以调用gzip

tar -zcvf 打包文件.tar.gz 被压缩的文件/路径
压缩文件

tar -zxvf 打包文件.tar.gz
解压缩文件

tar -zxvf 打包文件.tar.gz -C 目标路径
解压缩到指定路径

补充命令
查看正在运行的服务
systemctl list-units --type=service --state=running