Linux基础常识
gnome创建快捷方式后双图标
终端输入 x prop |grep WM_CLASS 点击打开的应用获取值 写入快捷方式StartupWMClass=中
tail 按照要求显示文件内容 -f 监视文件增长 无参数时 显示 文件最后几行head 显示文件前几行
tail -f xxx.log 可以在终端实时显示文件内容
root
超级账户
pid
进程ID
uid
用户ID
gid
用户组ID
/etc/passwd
存放用户信息包含7组
用户名
用户密码
用户ID
用户组ID
用户全称
用户家目录
用户shell
/etc/group
存放组信息 以组名的方式显示组信息
shebang
指明脚本文件的解释器
#! /usr/bin/python3
Linux基础命令
sudo (cmd)
默认切换到超级账户执行命令
who
谁在线
id (user)
查看用户信息
passwd (user)
更改用户密码
which (cmd)
查看软件的命令目录
su [-] (user)
切换用户 选项: 同时切换到用户家目录
pwd
查看当前工作目录
ls [-a|l|h] (dir)
查看目录详情 选项: 隐藏文件 详细信息 人性化显示文件大小
tree [-d] (dir)
树状图显示目录 选项: 只显示目录不显示文件
clear
清屏
date
查看日期
cal [-y]
查看当月日历 选项: 查看年度日历
df [-h]
显示磁盘空间 选项: 人性化方式显示大小
du [-h] [dir]
显示目录占用空间大小 选项: 人性化方式显示大小 显示指定目录大小
ps [aux]
显示进程 选项: a
显示所有用户进程 u
显示详细信息 x
显示后台服务进程
top
动态显示进程
kill [-9] (pid)
杀死pid对应进程 选项: 强制杀死进程
ifconfig
查看网卡信息
ping (ip)
通过ICMP 协议测试网络功能
more (file)
分屏显示内容 fbq控制翻页
man (cmd)
命令帮助手册
apt install (cmd)
安装软件
apt remove (cmd)
卸载软件
开启关闭网卡
ifconfig eth0 up
开启eth0
ifconfig eth0 down
关闭eth0
dhclient
重新让网卡通过DHCP
获取网卡信息
文件或文件夹操作命令
touch (file_name)
创建文件 如果文件存在仅更新文件最后修改时间
mkdir [-p] (dir)
创建文件夹 选项: 创建连续递归文件夹
rm [-r|f] (file|dir)
删除文件或文件夹 选项: 删除文件夹时必须以递归的方式删除
mv (file) (dir|file)
移动或重命名文件或文件夹
cp [-r|a] (file) (dir|file)
复制文件或文件夹 选项: 递归的方式复制子文件夹不复制源文件的属性 递归复制文件夹并且复制源文件的属性
ln [-s] (file) (dir|file)
创建软连接指向文件或文件夹 选项: 如果没有-s
选项则创建硬链接(硬链接指向文件的inode
软连接保存了文件的绝对路径)
文件查看和搜索
cat [-b|n] (file)
文本方式查看文件内容 选项: 标记行数
grep (char) (file)
搜索文件内的指定内容并标记 可以使用正则表达式
cat file | grep char
find (dir) -[i]name "char"
搜索目标路径下指定的文件名 选项: i
不区分大小写
echo (char)
通常配合重定向:>
(覆盖) >>
(末尾追加)使用
echo char > test.txt
|
管道
左边输出 | 右边接收
[abc]
代表一个字符 a b 或 c
[1-0]
[a-z]
1到0 a到z 任意一个字符
*
?
通配符 *代表任意数量任意字符 ?代表一个任意字符
服务器连接
ssh [-p 22] root@ip
以root用户连接指定服务器
scp [-P 22] (file) root@ip:(dir)
本地文件发送给服务器
scp [-P 22] root@ip:(file) (dir)
服务器文件传给本地
scp -r (dir) root@ip:(dir)
本地文件夹传给服务器
scp -r root@ip:(dir) (dir)
服务器文件夹传给本地
ssh-keygen
创建秘钥 保存在本地~/.ssh/
ssh-copy-id [-p 22] root@ip
发送公钥给服务器
设置服务器别名
在客户端~/.ssh/ 创建config文件
Host (别名)
HostName 192.168.1.1
User root
Port 22
文件权限操作
chmod -u|g|o|a (+-wrx) (file)
更改文件权限 选项: u
所有者权限 g
所属组权限 o
其他组权限 a
所有人权限
chmod [-R] (755|644) (file|dir)
更改文件或文件夹权限 选项: 递归子文件夹
文件属组操作
chown [-R] (user) (file|dir)
修改文件或文件夹所有者 选项: 递归子文件夹
chgrp [-R] (grp) (file|dir)
修改文件或文件夹所属组 选项: 递归子文件夹
chown [-R] (user):(grp) (file|dir)
修改文件或文件夹所有者和所属组 选项: 递归子文件夹
用户属组操作
usermod -g|G (grps) (user)
更改用户的组 选项: g
更改用户主组 G
添加或更改用户副组
usermod -s (shell_path) (user)
指定用户shell
gpasswd -a|d (user) (grps)
添加或删除用户附属组 gpasswd可以指定一个用户有多个附属组 选项: a
添加用户副组到组 d
删除用户副组从组
新建删除用户
useradd [-m] [-g] (grps) (user)
添加用户 创建后需要设置用户密码 选项: m
同时创建家目录 g
指定用户组 不加 g 会创建同名用户组
userdel [-r] (user)
删除用户 选项: 递归的方式删除用户家目录
新建删除用户组
gourpadd (grp)
添加用户组
gourpdel (grp)
删除用户组
打包解压文件
tar -cvf (new.tar) (dir)
打包文件夹为tar文件
tar -zcvf (new.tar.gz) (dir)
压缩文件夹为tar.gz
tar -xvf (file.tar) [-C (dir)]
解包tar文件 选项: C
指定解包到目录
tar -zxvf (file.tar.gz) [-C (dir)]
解压tar.gz文件 选项: C
指定解压缩到目录
文件描述符
Linux系统将所有设备都当作文件来处理 而Linux用文件描述符来标识每个文件对象 其实我们可以想象我们电脑的显示器和键盘在Linux系统中都被看作是文件 而它们都有相应的文件描述符与之对应
epoll
epoll是用来高效处理事件的 文件的事件通过文件的fd状态表现出
一般情况下应用程序需要让内核处理流的fd需要把流fd从用户态内存拷贝到内核态的内存空间中 内核才可以对流的fd进行操作
而epoll通过mmap内存映射创建了一块内核与应用程序共享的内存空间 所以内核需要处理fd的时候省去了拷贝的过程
一般情况下收到信息时内核通过轮流询问的方式从头到尾检查一遍列表中文件的fd从而得知信息是属于哪个文件的
而通过epoll内核在收到信息时通过事件通知的方式主动设置列表中的文件触发事件从而让应用程序知道此信息是哪个文件的
同步与异步
同步与异步是对应的 他们是线程之间的关系 两个线程要么是同步的要么是异步的
同步线程各个线程之前协同步调 异步线程各个线程自己做自己的
阻塞与非阻塞
阻塞与非阻塞是对同一个线程来说的 在某个时刻线程要么处于阻塞 要么处于非阻塞
或者说某行代码会使线程处于阻塞或非阻塞
阻塞的线程处于等待态 非阻塞的线程处于非等待态(要么就绪要么执行)