linux添加用户和用户组

  • 用户
    • 创建用户:useradd <用户名>
    • 设置密码:passwd <用户名>
    • 删除用户:userdel <用户名>
  • 用户组:
    • 新建用户组:groupadd <用户组名称>
    • 创建用户并将其加入到用户主组,每个用户有且只有一个主用户组:useradd -g <用户组名> <用户名>
    • 创建用户并将其加入到用附属用户组,每个用户可以有多个附属用户组(常用):useradd -G <用户组名> <用户名>

  • 更改用户配置
    • 添加用户的附属用户组: usermod -a -G <用户组名> <用户名>
    • 更改用户主用户组:usermod -g <新用户组名> <用户名>
  • 删除
    • 将用户从用户组中删除:gpasswd -d <用户名> <用户组名>
    • 删除用户:userdel <用户名>

git常用配置

  • git本地配置(走代理), 新建文件~/.gitconfig:
[user]
name = user_name
email = mail_name@mail.com
[core]
excludesfile = /Users/user_name/.gitignore_global
autocrlf = input
[difftool "sourcetree"]
cmd = opendiff \"$LOCAL\" \"$REMOTE\"
path =
[mergetool "sourcetree"]
cmd = " "
trustExitCode = true
[commit]
template = /Users/user_name/.stCommitMsg
[https]
proxy = socks5://127.0.0.1:1234
[http]
proxy = socks5://127.0.0.1:1234
[init]
defaultBranch = master

scrapy常见问题汇总

  • 多个pipeline管道文件存在时,后面的pipeline获取不到item:
    • 前面的pipeline中process_item方法在最后需要return item。 否则item被丢弃则后续的pipeline无法获取到item
  • 调用scrapyd时报错:sqlite3.OperationalError: attempt to write a readonly database
    • 没有权限,需要增加权限:项目根目录的文件夹dbs,修改其权限和所有者即可。
      • chmod -R 755 dbs
      • chown -R username:usergroup dbs

scrapy常用命令

  • 创建spider:scrapy genspider spider_name site_url
  • 执行spider:scrapy crawl spider_name
  • 接收参数:scrapy crawl spiderName -a parameter1=value1 -a parameter2=value2
  • 递归调用时常用参数:
    • dont_filter:不过滤相同的url请求。当需要重复调用同一url的时候,将此参数设为True,否则相同url的请求会被自动过滤掉,并且没有提示
      • yield scrapy.Request(url=url, callback=self.parse,dont_filter=True)

scrapy提供接口服务

将scrapy发布为服务并提供接口服务,以便其他项目调用:

  • pip install scrapyd
  • pip install scrapyd-client
  • 修改scrapy.cfg:
  • 启动服务:scrapyd

[settings]
default = compass.settings

[deploy]
url = http://localhost:6800/
project = compass[settings]

  • 部署服务:scrapyd-deploy
  • 启动服务:scrapyd
  • 调用服务:curl http://localhost:6800/schedule.json -d project=your_project_name -d spider=your_spider_name
  • 不清楚项目名和爬虫名可以用下面命令查询:
    • 列出项目:curl http://localhost:6800/listprojects.json
    • 列出爬虫:curl http://localhost:6800/listspiders.json?project=compass
  • 其他命令:
    • 调度爬虫
      • curl http://localhost:6800/schedule.json -d project=your_project_name -d spider=your_spider_name
    • 包含参数
      • curl http://localhost:6800/schedule.json -d project=your_project_name -d spider=your_spider_name -d setting=DOWNLOAD_DELAY=2 -d arg1=val1
    • 取消运行
      • curl http://localhost:6800/cancel.json -d project=your_project_name -d job=2bffadcb3218k9abbd23ccf016aa82f02
    • 列出版本
      • curl http://localhost:6800/listversions.json?project=your_project_name
    • 列出job
      • curl http://localhost:6800/listjobs.json?project=your_project_name
    • 删除版本
      • curl http://localhost:6800/delversion.json -d project=your_project_name -d version==15419782769
    • 删除项目
      • curl http://localhost:6800/delproject.json -d project=your_project_name

mac安装redis

首先查看是否安装了homebrew

brew --version

如果此命令失败,那么先去安装homebrew吧。

安装

从终端运行来安装redis:

brew install redis

在前台启动和停止 Redis

从命令行运行以下命令来测试是否成功安装了redis:

redis-server

如果成功,将看到 Redis 的启动日志,并且 Redis 将在前台运行。

输入Ctrl-C停止redis

使用 launchd 启动和停止 Redis

作为在前台运行 Redis 的替代方案,还可以使用launchd在后台启动进程:

brew services start redis

这将启动 Redis 并在登录时重新启动它。可以launchd通过运行以下命令检查托管 Redis 的状态:

brew services info redis

如果服务正在运行,将看到如下输出:

redis (homebrew.mxcl.redis)
Running: ✔
Loaded: ✔
User: yourname
PID: 67836

要停止服务,请运行:

brew services stop redis

连接到 Redis

Redis 运行后,可以运行以下命令对其进行测试redis-cli

redis-cli

这将打开 Redis REPL。尝试运行一些命令:

127.0.0.1:6379> lpush demos redis-macOS-demo
OK
127.0.0.1:6379> rpop demos
"redis-macOS-demo"

Android Studio 模拟器无法联网

本来as的模拟器用着好好得,突然有一次build之后就无法上网了。 不仅自己的app,连默认浏览器都不行。 下面是三种方法

1: 我就是遇到的这种问题,因为配了android studio的代理导致模拟器不能联网:

解决方案:在模拟器中选择设置(…)->代理(Proxy)->选择No proxy把代理取消掉就可以了。

2: 另外看到有说修改网络设置,将ipv6改成local的,这个我有试过但是没效果,如下图:

3: 还有说法是修改本地dns为8.8.8.8或者其他稳定ip的。这个感觉和模拟器已经没关系了,如果有问题自己的实体机应该也会不稳定。

mac查看硬盘使用情况

mac有很多方法查看硬盘使用情况

  1. 使用自带的硬盘检测工具 disk Utility
  2. 使用自带的shell命令
    1. du -sh . | sort -rn | head -n 10
  3. 使用一个形象可视化的shell命令ncdu(推荐)
    1. 安装:在命令行中输入:brew install ncdu
    2. 使用:在命令行中输入:ncdu+空格+路径
      1. 举例,查看当前路径硬盘使用情况,就是(ncdu+空格+点): ncdu .
      2. 举例,查看所有硬盘使用情况,就是(ncdu+空格+”/”): ncdu /

快捷键如下所示:

? — 使用帮助
up, k — 向上移动光标
down, j – 向下移动光标
right/enter — 打开选定的目录
left, <, h — 打开父目录
n — 按文件名排序(升序/降序)
s — 按文件大小排序(升序/降序)
C – 按项目数排序(升序/降序)
d – 删除选定的文件或目录
t — 排序时将目录放在文件前面
g – 以图形方式显示百分比

如果发现硬盘占用不多,但是总会提示可用空间不足, 或者在硬盘工具disk Utility中显示没有空间,可以参考这篇文章:如何处理mac空间不足的问题

mac空间不足

先说结果:是由于时间机器(time machine)的自动备份造成的。

在Mac的「关于本机」中显示我的电脑还有90多G的可用空间,但是使用硬盘工具(disk Utility)时发现空间都被Macintosh – Data占用了。

用了各种工具shell命令一起用,发现根本解决不了问题,期间还发现了mac firmlink的骚操作。

使用硬盘工具,显示如下信息:

「可用100.41GB(73.22GB可清除)」

这就引起了我的注意,因为如果这73.22GB清除掉,就是我正常可用的空间了,也和「关于本机」中的数据相符。

具体方法为:

在「系统偏好设置」中,找到「时间机器」,将「自动备份」取消勾选。

  1. 启动「终端」,输入以下命令

sudo tmutil listlocalsnapshots /
输入完成后,会要求你输入管理员密码,输入后回车。

  1. 这时候就会出现一堆写着Time Machine的字符出现。
  1. 输入

tmutil deletelocalsnapshots XXXX-XX-XX-XXXXXX
这里的「XXXX-XX-XX-XXXXXX」是Time Machine后面的那串数字,如 2021-08-19-103846。

  1. 等待一会,出现「Deleted local snapshot」后代表删除成功。

操作结束后,回到「磁盘工具」可以发现可用空间变多了

但是仍然显示有73.22GB可清除。此时只需重启电脑。