linux系统

shell和bash的区别

  • sh 跟bash的区别,实际上是bash有没开启POSIX模式的区别
    • sh是bash的一种特殊的模式,sh就是开启了POSIX标准的bash, /bin/sh 相当于 /bin/bash --posix
    • Linux系统上/bin/sh往往是指向/bin/bash的符号链接ln -s /bin/bash /bin/sh
    • sh 遵循POSIX规范:“当某行代码出错时,不继续往下解释”。bash 就算出错,也会继续向下执行。

shell中&和&&区别

  • 使用&来实现并发效果时,实际上是把&左侧的命令丢入后台运行,右侧剩余命令看做整体任务在前台运行,以此来实现并发效果。
  • 而&&是串行执行两侧命令,先执行完左侧后再执行右侧。

shell中$(( ))$( )、``与${ }的区别

  • 在bash中,$( )与``(反引号)都是用来作命令替换的,建议用$( ),两者区别
    • ``很容易与''搞混乱
    • 在多层次的复合替换中,``必须要额外的跳脱处理(反斜线),而$( )比较直观。
    • $( )的弊端是,并不是所有的类unix系统都支持这种方式,但反引号是肯定支持的。
  • 一般情况下,$var与${var}是没有区别的,但是用${ }会比较精确的界定变量名称的范围
  • $(())可用作进制转换
    echo $((2#110))   # 二进制转十进制
    echo $((16#2a))   # 十六进制转十进制
    echo $((8#11))    # 八进制转十进制
    

Shell 输入/输出重定向

command > file # 将输出重定向到 file
command < file # 将输入重定向到 file
command >> file # 将输出以追加的方式重定向到 file
n >& m # 将输出文件 m 和 n 合并
n <& m # 将输入文件 m 和 n 合并
<< tag # 将开始标记 tag 和结束标记 tag 之间的内容作为输入

yum和apt-get的区别

  • linux系统基本上分两大类:
    • 1.RedHat系列:Redhat、Centos、Fedora等
    • 2.Debian系列:Debian、Ubuntu等
  • RedHat 系列
    • 1 常见的安装包格式 rpm包,安装rpm包的命令是“rpm -参数”
    • 2 包管理工具 yum
    • 3 支持tar包
  • Debian系列
    • 1 常见的安装包格式 deb包,安装deb包的命令是“dpkg -参数”
    • 2 包管理工具 apt-get
    • 3 支持tar包

yum update和yum upgrade的区别

  • yum update和yum upgrade的功能都是一样的,都是将需要更新的package更新到源中的最新版
  • 唯一不同的是,yum upgrade会删除旧版本的package,而yum update则会保留,生产环境建议用update

Linux /usr/bin与/usr/local/bin的区别

首先注意usr 指 Unix System Resource,而不是User

  • /usr/bin下面的都是系统预装的可执行程序,会随着系统升级而改变。
  • /usr/local/bin目录是给用户放置自己的可执行程序的地方,推荐放在这里,不会被系统升级而覆盖同名文件。
  • 如果两个目录下有相同的可执行程序,谁优先执行受到PATH环境变量的影响,比如我的一台服务器的PATH变量为echo $PATH

curl和wget区别

  • wget是个专职的下载利器,简单,专一,极致
  • curl可以下载,但是长项不在于下载,而在于模拟提交web数据,POST/GET请求,调试网页,等等。
  • 在下载上,wget可以递归,支持断点;而curl支持URL中加入变量,因此可以批量下载。
  • 建议用wget来下载文件,加 -c选项不怕断网;使用curl 来跟网站的API 交互,简便清晰。

which,whereis,locate,find的区别

  • which:常用于查找可直接执行的命令。只能查找可执行文件,该命令基本只在$PATH路径中搜索,查找范围最小,查找速度快。默认只返回第一个匹配的文件路径,通过选项 -a 可以返回所有匹配结果。
  • whereis:不只可以查找命令,其他文件类型都可以(man中说只能查命令、源文件和man文件,实际测试可以查大多数文件)。在$PATH路径基础上增加了一些系统目录的查找,查找范围比which稍大,查找速度快。可以通过 -b 选项,限定只搜索二进制文件。
  • locate:超快速查找任意文件。它会从linux内置的索引数据库查找文件的路径,索引速度超快。刚刚新建的文件可能需要一定时间才能加入该索引数据库,可以通过执行updatedb命令来强制更新一次索引,这样确保不会遗漏文件。该命令通常会返回大量匹配项,可以使用 -r 选项通过正则表达式来精确匹配。
  • find:直接搜索整个文件目录,默认直接从根目录开始搜索,建议在以上命令都无法解决问题时才用它,功能最强大但速度超慢。除非你指定一个很小的搜索范围。通过 -name 选项指定要查找的文件名,支持通配符。

生成RSA私钥公钥

openssl genrsa -out key.pem -f4 2048
openssl rsa -in key.pem -pubout -out key_pub.pem

ssh-key免密登陆服务器

ssh-keygen -C "邮箱"

###############手动复制
cat id_rsa.pub | pbcopy
vim ~/.ssh/authorized_keys # 打开远程服务器文件,粘贴上述公钥
###############自动动复制
ssh-copy-id -i key_file user@host

chmod 644 ~/.ssh/authorized_keys # 文件的权限要设为644,即只有文件所有者才能写。如果权限设置不对,SSH 服务器可能会拒绝读取该文件

###############简化输入参数
vim ~/.ssh/config
Host test
HostName 127.0.0.1
User root
Port 22
IdentityFile ~/.ssh/temp_id_rsa

###############指定私钥ssh登陆
ssh -i ~/.ssh/private_key_name username@remote_host
ssh test # 注因为在.ssh/config中简化了输入参数,可以不用-i指定了

###############ssh-agent ssh-add
ssh-agent:
ssh-agent bash #
eval $(ssh-agent) # 想在当前对话启用ssh-agent
ssh-add my-private-key-file

scp -o StrictHostKeyChecking=no ./docker-compose.yml root@xxx.xxx.xxx.xxx:/root # 上传本地文件docker-compose.yml到远程服务器的root目录
ssh -o StrictHostKeyChecking=no root@xxx.xxx.xxx.xxx "export COMPOSE_PROJECT_NAME=gitlab && docker-compose down && docker-compose up -d" # 登陆远程服务器并执行相关shell命令
ssh –i OpenSSHPrivateKey remoteHost
ssh-agent -k # 退出ssh-agent

# 出现如下错误时
Error while signing data with privateKey: error:06000066:public key routines:OPENSSL_internal:DECODE_ERROR
# 解决方案,私钥文件从OpenSSH私钥格式转换成PEM格式:
ssh-keygen -p -m PEM -f /home/test/.ssh/id_rsa

安装各种软件

#################安装nginx###########################
yum install -y epel-release && yum install -y nginx
systemctl enable nginx # 开机启动
systemctl start nginx # 启动

#################安装docker###########################
wget -qO- get.docker.com | bash
systemctl enable docker
systemctl start docker

adb相关命令

adb connect 192.168.31.xxx:5555
adb install ~/Documents/db.apk # 安装软件
adb shell pm uninstall --user 0 com.mitv.tvhome
posted on 2022-10-29 23:53  DJ荒野  阅读(178)  评论(0编辑  收藏  举报