groups 可以查看用户组 具体的用法可以参考终端的指南。
usermod -aG sudo <用户名>
将用户添加到sudo组。 将用户添加到指定组,这样就拥有了权限。
scp传输文件:
我自己使用成功的案例:
scp -r C:\zzk\env\video\ [email protected]:/home/test/zzk/video
[email protected]:/home/kagami/zenglg
nimamasilajideliyive4000+
-r 递归复制
-P(大写) 指定端口号
-p 保留源文件属性(可能是用户组之类的)
alias相关的
单用户反正是
ddd 直接打开 .bashrc
zzk标记alias命令的位置
然后常用的命令就写到那里
特定用户写入到 .bashrc中;
全局配置则是 /etc/bashrc中;
alias命令的使用:
直接绑定常用的命令:
如果需要参数的话: 代办
运行通过ssh登录到root账户
使用pass 修改了root的密码但是ssh还是无法登入进root:
原因是因为ssh不允许通过root用户进行登录;
sudo vim /etc/ssh/sshd_config
将 PermitRootLogin without-password 注释掉
然后添加 PermitRootLogin yes
然后重启 sshd:
【知识点】配置 linux文件连接
是的,你可以通过配置SSH密钥来实现免密码SSH登录,这样你就不必每次都输入密码。以下是实现免密码SSH登录的步骤:
1. **生成SSH密钥对:** 在本地计算机上生成SSH密钥对,包括公钥和私钥。你可以使用`ssh-keygen`命令来执行此操作。默认情况下,它会将密钥文件保存在用户的家目录下的`.ssh`目录中。
bashCopy code
`ssh-keygen -t rsa`
这将生成RSA密钥对。你可以按照提示输入密钥保存的位置和密码,或者直接按Enter来使用默认选项。
2. **将公钥复制到远程服务器:** 将你的公钥添加到你想要免密码登录的远程服务器上的`~/.ssh/authorized_keys`文件中。你可以使用`ssh-copy-id`命令来简化这个过程。
bashCopy code
`ssh-copy-id username@remote_server_ip`
这将把你的公钥复制到远程服务器上,允许你使用私钥进行身份验证。
3. **测试SSH连接:** 现在,你应该能够通过SSH连接到远程服务器而无需输入密码:
bashCopy code
`ssh username@remote_server_ip`
如果一切设置正确,你将可以无密码登录到远程服务器。
注意事项:
- 请确保你的私钥文件(通常为`~/.ssh/id_rsa`)在本地计算机上具有适当的权限,通常为`-rw-------`(只有所有者可读可写)。
- 在复制公钥到远程服务器之前,确保远程服务器上的`~/.ssh`目录和`~/.ssh/authorized_keys`文件具有适当的权限。通常,`~/.ssh`目录权限应为`700`,`~/.ssh/authorized_keys`文件权限应为`600`。
- 如果你之前使用密码登录到服务器,现在应该能够使用SSH密钥登录。如果出现问题,你可以尝试使用`ssh -v`选项进行详细的调试。
实际操作就是:
ssh-keygen -t rsa
在你的操作端生成秘钥;
然后进入~/.ssh中找到pub后缀的公钥,传输到远程服务器中。
然后在远程服务器中 通过 cat 将秘钥添加到 ~/.ssh/aut 什么文件里面。
大功告成。
文本处理三剑客
grep
标准格式是: grep -i "pattern" file.txt
pattern 默认就是正则表达式。
-i 不区分大小写
-v 反向过滤
-C 3 显示匹配行以及上下文 -A就是上,-B就是下,很好理解。
使用函数我觉得更好应该;
环境变量
环境变量是都可以访问到的变量。
使用 export 就可以导出变量。
然后添加到环境变量的path,里面就可以直接访问到。
格式为: PATH=/path1:/path2:/path3
位置变量
相当于函数获取参数
一到九 直接为 $9
, 更多的参数需要是 ${10}
,一般没有这么多参数
$*
会把所有参数看成一个整体;
$@
同样获取所有的参数,但是不会将他们拼成一个字符串。
预定义变量
预先定义好的变量,一般是一些状态、常用的值。
$$
当前执行的进程 id
$!
最后执行的后台进程的pid
$?
上一个命令的执行状态
``
【知识点】使用 netstat 查看网络端口情况和对应的 process
使用命令 netstat -anp
【知识点】用户级别切换默认级别的shell
这个就是直接选择用户目录下的 某一个shell,这里用fish举例子
chsh -s /usr/bin/fish
【知识点】使得 Screen启动的程序可以查看日志:
screen是支持的,只不过默认没有打开。
gpt说的是有效的。
在你的用户目录下创建 .screenrc文件
termcapinfo xterm* ti@:te@
termcapinfo xterm-color* ti@:te@
defscrollback 10000
保存重启 screen 就可以看到效果了。
apt删除之前安装过的软件
sudo apt-get list --installed
```
这将显示系统中已经安装的所有软件包列表。
-
使用以下命令删除指定的软件包(将
<package_name>
替换为要删除的软件包的实际名称):shell
复制
sudo apt-get remove <package_name> ``` 这将卸载指定的软件包,并删除其相关的文件和配置。
sudo apt-get autoremove
```
这将自动删除不再需要的软件包和依赖项。
ps aux
STAT的缩写
在 ps -aux
命令的输出中,STAT
表示进程的状态,通常以单个字符的形式显示。这些状态字符的含义如下:
-
R:运行 (Running)
- 进程当前正在执行或在可运行队列中等待执行。
-
S:睡眠 (Sleeping)
- 进程当前正在休眠,等待某些事件的发生,例如等待输入、磁盘操作等。
-
D:不可中断休眠 (Uninterruptible Sleep)
- 进程正在进行不可中断的休眠,通常是等待磁盘I/O操作完成。这些进程通常不会响应中断信号。
-
T:已停止 (Stopped)
- 进程已经停止运行,通常是由用户发送
SIGSTOP
信号或者由系统发送SIGTSTP
信号造成的。
- 进程已经停止运行,通常是由用户发送
-
Z:僵尸 (Zombie)
- 进程已经终止,但其父进程还没有等待收集其退出状态。僵尸进程通常会在其父进程收集完退出状态后被清理。
-
I:空闲 (Idle)
- 内核进程,通常是系统的空闲进程。
-
<:高优先级 (High Priority)
- 优先级较高的进程。
-
N:低优先级 (Low Priority)
- 优先级较低的进程。
-
W:换出 (Paging)
- 进程被换出到磁盘。
-
L:锁定 (Lock)
- 进程被锁定到内存。
-
s:会话的领导 (Leader)
- 进程是会话的领导。
-
l:多线程 (Multi-threaded)
- 进程包含多个线程。
-
+:前台进程组 (Foreground Process Group)
- 进程是前台进程组的一部分。
这些状态字符提供了关于每个进程当前状态的信息,有助于管理员和用户了解系统上正在运行的进程的状态。
标签:sudo,远程,SSH,Linux,进程,服务器,杂项,ssh From: https://www.cnblogs.com/runninginsilence/p/17819594.html