首页 > 系统相关 >Linux杂项

Linux杂项

时间:2023-11-09 14:15:13浏览次数:48  
标签:sudo 远程 SSH Linux 进程 服务器 杂项 ssh

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
```
这将显示系统中已经安装的所有软件包列表。
  1. 使用以下命令删除指定的软件包(将 <package_name> 替换为要删除的软件包的实际名称):

    shell

    复制

    sudo apt-get remove <package_name>
    ```
    这将卸载指定的软件包,并删除其相关的文件和配置。
    
sudo apt-get autoremove
```
这将自动删除不再需要的软件包和依赖项。

ps aux

STAT的缩写

ps -aux 命令的输出中,STAT 表示进程的状态,通常以单个字符的形式显示。这些状态字符的含义如下:

  1. R:运行 (Running)

    • 进程当前正在执行或在可运行队列中等待执行。
  2. S:睡眠 (Sleeping)

    • 进程当前正在休眠,等待某些事件的发生,例如等待输入、磁盘操作等。
  3. D:不可中断休眠 (Uninterruptible Sleep)

    • 进程正在进行不可中断的休眠,通常是等待磁盘I/O操作完成。这些进程通常不会响应中断信号。
  4. T:已停止 (Stopped)

    • 进程已经停止运行,通常是由用户发送 SIGSTOP 信号或者由系统发送 SIGTSTP 信号造成的。
  5. Z:僵尸 (Zombie)

    • 进程已经终止,但其父进程还没有等待收集其退出状态。僵尸进程通常会在其父进程收集完退出状态后被清理。
  6. I:空闲 (Idle)

    • 内核进程,通常是系统的空闲进程。
  7. <:高优先级 (High Priority)

    • 优先级较高的进程。
  8. N:低优先级 (Low Priority)

    • 优先级较低的进程。
  9. W:换出 (Paging)

    • 进程被换出到磁盘。
  10. L:锁定 (Lock)

    • 进程被锁定到内存。
  11. s:会话的领导 (Leader)

    • 进程是会话的领导。
  12. l:多线程 (Multi-threaded)

    • 进程包含多个线程。
  13. +:前台进程组 (Foreground Process Group)

    • 进程是前台进程组的一部分。

这些状态字符提供了关于每个进程当前状态的信息,有助于管理员和用户了解系统上正在运行的进程的状态。

标签:sudo,远程,SSH,Linux,进程,服务器,杂项,ssh
From: https://www.cnblogs.com/runninginsilence/p/17819594.html

相关文章

  • Dalvik虚拟机是在Linux内核上面运行的吗?为什么能执行安卓APK程序?
    Dalvik虚拟机确实是在Linux内核之上运行的。它是安卓系统的关键组件,专门设计来执行APK文件中的代码。这里是它的工作原理和一个生活中的例子:工作原理:基于Linux内核:安卓系统基于Linux内核,这为安卓设备提供了底层功能,如硬件抽象、网络通信、安全机制等。Dalvik虚拟机:在Linux......
  • Linux第十周学习报告
    本周学习的是上周没有学完的I/O重定向(老师把上节课讲过的一部分又讲了一遍,这里重复的就不写进来了)1、在第三个终端中使用date>/dev/pts/4使其重定向到终端四,在终端四中输出时间  2、改变描述符为2的文件的输出方向,date命令是正确的,执行结果在终端显示;输入命令如果是错误......
  • 安卓系统的内核是Linux,但是它为什么能运行APK程序
    安卓系统虽然基于Linux内核,但是它并不直接运行Linux的二进制程序。安卓为其设备提供了一个特殊的运行环境,这个环境包括了一个叫做Dalvik虚拟机(在Android4.4及以后版本中被ART替代)的组件,它能够运行专门为安卓设计的APK文件中的程序。 这里有一个生活中的比喻: 想象Linux内核......
  • Linux操作系统5
    呢每周学的是i/o重定向与管道 主要还是重定向I/O重定向,打开一个终端三,输入date命令,会显示出当时时间。如果在date命令后面加上>,并且指向date。txt文件,那么结果机会写入该文件。还有一个passwd命令,使用该命令时,系统会产生一个进程,pid为10277.在/proc虚拟文件系统中,可以查看内核......
  • oraclelinuxJDK安装
    JDK下载Oracle官网从此处点击进入来到Oracle官网,点击Products(产品)找到Java并点击进去点击DownloadJava该按钮往下翻,找到Java8选择Linux系统,找到适合自己系统的安装包,我的是CentOS8x64点击下载,勾选1,点击2 接下来需要登陆Oracle账户才能下载,无账户的可......
  • linux文件权限
    文件的基本权限权限的作用通过对文件设定权限可以达到以下三种访问限制权限:只允许用户自己访问;允许一个预先指定的用户组中的用户访问;允许系统中的任何用户访问。查看权限ll/etc/passwd输出:-rw-r--r--.1rootroot20539月192017/etc/passwd文件权限解释 r......
  • Linux中不允许root用户直接ssh远程登录
    当我们在ubuntu中登录ssh的时候,会出现如下问题:是因为系统默认禁止root用户登录ssh,此时我们可以这样解决:1、首先,按Ctrl+C退出密码输入界面2、然后输入:su-(一定是su-,不是su)3、编辑sshd_config文件,我们输入:vi/etc/ssh/sshd_config出现如下文件编辑的界面,如下图:我们往下拖......
  • 最佳实践for Postgresql-Linux
    适用范围postgresqlonlinuxLinux内核提供了各种可能影响性能的配置选项,为了获得最佳性能,PostgreSQL数据库取决于正确定义的操作系统参数。操作系统内核参数配置不当可能会导致数据库服务器性能下降与系统稳定。因此,必须根据数据库服务器及其工作负载配置这些参数。就像任何其他......
  • Linux下*.tar.gz文件解压缩命令
    Linux下*.tar.gz文件解压缩命令1.压缩命令:命令格式:tar -zcvf  压缩文件名.tar.gz  被压缩文件名  可先切换到当前目录下。压缩文件名和被压缩文件名都可加入路径。2.解压缩命令:命令格式:tar -zxvf  压缩文件名.tar.gz解压缩后的文件只能放在当前......
  • 关于LINUX权限(启动tomcat)-bash: ./startup.sh: Permission denied
    关于LINUX权限-bash:./startup.sh:Permissiondenied在执行./startup.sh,或者./shutdown.sh的时候,爆出了Permissiondenied,其实很简单,就是今天在执行tomcat的时候,用户没有权限,而导致无法执行,用命令chmod修改一下bin目录下的.sh权限就可以了chmodu+x*.sh在此执行,OK了。......