Linux 一些命令
Linux 系统查看用户组
groups
groups wuliang
cat /etc/group | grep wuliang
id wuliang
- 设置/etc/ld.so.conf,解决动态链接库问题
vim /etc/ld.so.conf
在"include ld.so.conf.d/*.conf"下方增加"/usr/local/mambaforge/lib"
# 将文件/etc/ld.so.conf列出的路径下的库文件缓存到/etc/ld.so.cache以供使用
ldconfig -v
- 查看cpu
cat /proc/cpuinfo
# 返回CPU的总核心数
grep -c 'model name' /proc/cpuinfo
# 查看Linux系统负荷
# 分别是1分钟、5分钟、15分钟内系统的平均负荷
# n个CPU的电脑,可接受的系统负荷最大为n.0
uptime
# 查看物理CPU个数
cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l
生成ssh密钥
ssh-keygen -t rsa
ssh-keygen -t rsa -b 4096 -C "your_email@domain.com" -f mykey
/home/username/.ssh/id_uu
mkdir -p ~/.ssh
cat id_rsa.pub >> ~/.ssh/authorized_keys
chmod 644 ~/.ssh/authorized_keys
# 打开远程主机的/etc/ssh/sshd_config这个文件,检查下面几行前面"#"注释是否取掉。
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
# 关闭密码登录
PasswordAuthentication no
systemctl restart sshd.service
# 配置 ClientAliveInterval
ClientAliveInterval 20
ClientAliveCountMax 3
# 修改密码
ssh-keygen -p
# 修改密钥 注释
ssh-keygen -c -C "my new comment" -f ~/.ssh/my_ssh_key
# 启动 ssh-agent
eval `ssh-agent`
# 添加密钥
ssh-add my-other-key-file
# 查看
ssh-add -l
# 删除
ssh-add -d file
# 删除全部
ssh-add -D
# Failed to start OpenBSD Secure Shell server.
# sshd: no hostkeys available -- exiting.
ssh-keygen -A
挂载机械硬盘
lsblk -l
sudo gdisk /dev/sda
p
n
n
w
df -h
blkid
sudo vim /etc/fstab
UUID="xxxxxxxxxxxxxxxxxxxx" /public ext4 defaults 0 0
mount -a
# 迁移家目录(没使用)
sudo usermod -m -d /public/home/usera usera
创建新用户
# 新增用户
sudo useradd -d /public/home/usera -G zts_students,anaconda -s /bin/bash -m usera
sudo useradd -s /bin/bash -m ubuntu
sudo useradd -G sudo,docker -s /bin/bash -m ubuntu
sudo usermod -aG docker ubuntu
# 设置密码
sudo passwd user123
# 修改家目录权限
sudo chmod g-rwx,o-rwx ~user123
# 删除用户
userdel [-r][用户帐号]
userdel -f cafe_fixer
# deluser 是 Debian 和基于 Debian 的系统(如 Ubuntu)中的一个命令
sudo killall -u username && sudo deluser --remove-home -f username
# 复制文件
sudo cp -r src dest
sudo chown -R user123 python-codes/
sudo chgrp -R user123 python-codes
# 增加用户所属组
sudo usermod -aG sudo xxxx
# sudo
visudo
liudiwei ALL=(ALL:ALL) ALL
# 检测某用户有没有sudo权限
sudo -l -U xxxx
# 将用户从sudo组移除
sudo deluser xxx sudo
# 查询sudo组用户
getent group sudo # "get entries", getent [database] [key]
# conda
/usr/local/mambaforge/condabin/mamba init
conda info
conda config --set show_channel_urls yes
vim ~/.condarc
> envs_dirs: pkgs_dirs
# pip 源
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
# 安装vim插件 vim-plug
curl -fLo ~/.vim/autoload/plug.vim --create-dirs \
https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
curl -fLo ~/.vim/autoload/plug.vim --create-dirs \
https://raw.fastgit.org/junegunn/vim-plug/master/plug.vim
:PlugInstall
top命令
# 按e切换指标内存单位
# 按E切换顶部内存单位
# 按m切换顶部占用率显示
# 以下是top命令中各个字段的英文全称和对应的缩写:
# PID:Process ID
# USER:Username
# PR:Priority
# NI:Nice value
# VIRT:Virtual memory usage
# RES:Resident memory usage
# SHR:Shared memory usage
# S:Process Status (R: Running, S: Sleeping, D: Uninterruptable Sleep, Z: Zombie, T: Terminated)
# %CPU:Percentage of CPU usage
# %MEM:Percentage of Memory usage
# TIME+:Total CPU time used
# COMMAND:Command name or command line arguments
# 查看流量
sudo nethogs eth0
# 架构
uname -a
uname -m
# 主机名
hostname
sudo hostnamectl set-hostname <newhostname>
# 时区
timedatectl list-timezones
sudo timedatectl set-timezone Asia/Shanghai
# 驱动
ubuntu-drivers devices
ubuntu-drivers list
sudo ubuntu-drivers install <driver-name>
tar, zip
tar 是在 Linux 和类Unix系统中常用的归档和压缩工具,用于创建、查看和提取文件归档。下面列举一些常用的 tar 命令及其选项:
# 1. 创建归档文件:
tar -cvf archive.tar file1 file2 # 创建.tar格式的归档文件
tar -czvf archive.tar.gz file1 file2 # 创建.tar.gz格式的归档文件(压缩)
tar -cjvf archive.tar.bz2 file1 file2 # 创建.tar.bz2格式的归档文件(压缩)
# 解压归档文件:
tar -xvf archive.tar # 解压.tar格式的归档文件
tar -xzvf archive.tar.gz # 解压.tar.gz格式的归档文件
tar -xjvf archive.tar.bz2 # 解压.tar.bz2格式的归档文件
# 查看归档文件内容:
tar -tvf archive.tar # 查看.tar格式的归档文件内容
tar -tzvf archive.tar.gz # 查看.tar.gz格式的归档文件内容
tar -tjvf archive.tar.bz2 # 查看.tar.bz2格式的归档文件内容
# 向归档文件中添加文件:
tar -rvf archive.tar file3 # 向.tar格式的归档文件中添加文件
tar -rzvf archive.tar.gz file3 # 向.tar.gz格式的归档文件中添加文件(压缩)
tar -rjvf archive.tar.bz2 file3 # 向.tar.bz2格式的归档文件中添加文件(压缩)
# 以下是一些常用的 `zip` 命令及其选项,用于创建、解压和管理 ZIP 格式的压缩文件:
# 创建压缩文件:
zip archive.zip file1 file2 # 创建压缩文件并添加文件
zip -r archive.zip directory/ # 递归地压缩整个目录及其内容
# 解压缩文件:
unzip archive.zip # 解压缩文件到当前目录
unzip -d destination_dir archive.zip # 解压缩文件到指定目录
# 查看压缩文件内容:
unzip -l archive.zip # 列出压缩文件中的文件和目录
unzip -l archive.zip file1 # 查看压缩文件中特定文件的详细信息
# 添加文件到压缩文件:
zip -u archive.zip file3 # 向现有压缩文件中添加文件
# 更新压缩文件中的文件:
zip -f archive.zip file1 # 更新压缩文件中的指定文件
# 删除压缩文件中的文件:
zip -d archive.zip file2 # 从压缩文件中删除指定文件
git
# git ssh 配置
git config --global core.sshCommand C:/Windows/System32/OpenSSH/ssh.exe
# 查看远程地址
git remote -v
git remote set-url origin <新的远程地址>
# -u 参数在第一次推送时使用,以后推送时可以省略该参数,Git 会自动使用之前建立的关联关系
git push -u origin feature
# 修改全部 commit 的姓名邮箱
git filter-branch -f --env-filter "GIT_AUTHOR_NAME='Newname'; GIT_AUTHOR_EMAIL='new@email'; GIT_COMMITTER_NAME='Newname'; GIT_COMMITTER_EMAIL='new@email';" HEAD
# 修改最后一次提交的作者
git commit --amend --no-edit --reset-author
# Rebase a Fork
git remote add upstream url
git remote -v
git fetch upstream
git checkout main
git rebase upstream/main
git push origin main
甲骨文
# 获取ipv6
sudo dhclient -6 <网卡名>
docker
https://docs.docker.com/config/daemon/ipv6/
# 为bridge 添加 ipv6
# 编辑 /etc/docker/daemon.json
{
"ipv6": true,
"fixed-cidr-v6": "2001:db8:1::/64",
"experimental": true,
"ip6tables": true
}
sudo systemctl restart docker
进程
# print work directory of process x
pwdx <pid>
ls -l /proc/<pid>/exe
locale
# 如果想要 zh-CN
sudo apt install -y locales locales-all
chromedriver on arm
https://stackoverflow.com/a/65107381 https://github.com/electron/electron/releases
sudo apt install chromium
# chromedriver
# https://github.com/electron/electron/releases
# service = Service(executable_path="/home/debian/bin/chromedriver")
# webdriver.Chrome(options=options, service=service)
find, grep, wc
# find 命令用于在文件系统中搜索文件
# 基本格式:find [搜索范围] [表达式]
find . -name "myFile.txt" # 在当前目录及其子目录中查找名为 "myFile.txt" 的所有文件
# grep 命令用于在文件中搜索特定的文本模式
# 基本格式:grep [选项] 模式 [文件]
grep "Hello" file.txt # 在 file.txt 文件中搜索包含 "Hello" 的行
grep -i "Hello" file.txt # 在 file.txt 文件中进行大小写不区分的搜索 "Hello"
grep -r "Hello" . # 在当前目录及其所有子目录中的所有文件中递归搜索包含 "Hello"
# wc 命令用于计算给定文本的行数、单词数、字符数或字节数
# 基本格式:wc [选项] [文件]
wc file.txt # 输出 file.txt 文件的行数、单词数、字节数
wc -l file.txt # 只输出 file.txt 文件的行数
wc file1.txt file2.txt # 输出 file1.txt 和 file2.txt 两个文件的行数、单词数、字节数
awk, xargs
# AWK 命令格式
# awk 'pattern { action }' file
# 示例:在 file.txt 中查找包含 "error" 的行,并打印出来
# `/error/` 是匹配模式,匹配所有包含 "error" 的行
# `print $0` 是动作,打印当前行
# file.txt 是要处理的文件
awk '/error/ { print $0 }' file.txt
# AWK 的内置变量
# $0 代表整行内容
# $1, $2, $3, ... 代表第 1, 2, 3, ... 列的内容
# NF 代表最后一列的列号
# NR 代表当前行号
# FS 代表字段分隔符,默认是空格或制表符
# 示例:在 file.txt 中打印第一列和最后一列
awk '{ print $1, $NF }' file.txt
# 使用 printf 格式化输出
# printf 可以指定字段的宽度和对齐方式
# 示例:在 file.txt 中打印第一列和最后一列,第一列左对齐,宽度为 10,第二列左对齐,宽度为 20
awk '{ printf "%-10s %-20s\n", $1, $NF }' file.txt
# Bash xargs 命令
# xargs [options] [command]
# xargs 命令的作用是从标准输入(stdin)读取数据,然后将这些数据作为参数传递给指定的命令。
# 如果没有指定命令,xargs 默认使用 echo 命令。
# 示例:使用 xargs 删除多个文件
# 假设你有一个包含文件名的文件 filenames.txt,你可以使用以下命令删除这些文件:
cat filenames.txt | xargs rm
# 在这个例子中,cat filenames.txt 命令会输出文件 filenames.txt 的内容,
# 然后 xargs rm 命令会将这些输出作为 rm 命令的参数。这样,rm 命令就会删除 filenames.txt 文件中列出的所有文件。
# 注意:xargs 命令非常强大,但也需要谨慎使用。特别是当你使用 rm 或其他具有破坏性的命令时,你应该先使用 echo 命令检查 xargs 的输出,以确保它不会删除错误的文件。
bash <(…) command > file 或 command < file
# Bash 进程替换语法
# <(command)
# 进程替换会创建一个文件(通常在 /dev/fd 目录下),这个文件的内容是括号中命令的输出。
# 然后,这个文件的名称会替换 <(...),因此可以作为其他命令的参数。
# 示例:比较两个命令的输出
# <(command1) 和 <(command2) 会被替换为两个文件的名称,这两个文件的内容分别是 command1 和 command2 的输出。
# 然后,diff 命令会比较这两个文件的内容,从而比较 command1 和 command2 的输出。
diff <(command1) <(command2)
# 注意:尽管 <(...) 看起来像是重定向(redirection)语法,但它实际上是一种进程替换(process substitution)语法。
# 重定向语法(如 command > file 或 command < file)用于将命令的输出重定向到文件,或从文件中读取命令的输入。
# 而进程替换语法 <(...) 用于将命令的输出作为另一个命令的输入。
# Bash 重定向语法
# command > file
# command < file
# command > file 是输出重定向。
# 它会将 command 的标准输出(stdout)写入到 file 中。
# 如果 file 已经存在,这个命令会覆盖 file 的内容。
# 如果你想将输出追加到 file 的末尾,而不是覆盖 file,你可以使用 command >> file。
echo "Hello, World!" > output.txt
# command < file 是输入重定向。
# 它会将 file 的内容作为 command 的标准输入(stdin)。
# 这就好像你在 command 的命令行提示符下手动输入了 file 的内容。
sort < input.txt
最后修改于 2023-05-04