回想当时入门Linux时抱着鸟叔的私房菜啃,看了没几页就放弃了。
如果主要从事算法相关工作,其实高频使用的命令就那么些,一起看看吧!
用户相关
•id– 显示用户的详细信息(uid、gid和group)
•last– 列出有关最近登录的信息,包括时间、用户名、IP地址和会话持续时间
•who– 显示已授权的用户
•groupadd "testgroup"– 创建名为 "testgroup" 的组
•adduser NewUser– 添加名为 "NewUser" 的用户
•userdel NewUser– 删除名为 "NewUser" 的用户
•usermod NewUser– 修改有关用户 "NewUser" 的信息
目录导航相关
•cd /- 进入根目录
•cd- 进入主目录(使用$HOME变量)
•cd /root- 进入 /root 目录
•cd ..- 向上移动一级
•cd /root/.ssh- 进入隐藏文件夹 .ssh
文件操作相关
•ls -al– 显示当前文件夹中的文件和目录
•pwd– 显示当前工作目录
•mkdir NewFolder– 创建名为 'NewFolder' 的新目录
•rm NewFile– 删除名为 'NewFile' 的文件
•rm -f NewFile– 强制删除名为 'NewFile' 的文件
•rm -r NewFolder– 递归删除名为 'NewFolder' 的目录
•rm -rf NewFolder– 强制递归删除名为 'NewFolder' 的目录
•cp oldfile1 newfile2– 复制 'oldfile1' 的内容到 'newfile2'
•cp -r olddir1 newdir2– 递归复制目录 'olddir1' 到 'newdir2'。如果不存在,将创建 Dir2
•mv oldfile1 newfile2– 将 'oldfile1' 重命名为 'newfile2'
•ln -s /etc/log/file logfile– 创建指向文件的符号链接
•touch newfile– 创建名为 'newfile' 的空文件
•cat > newfile– 将标准输入放入 'newfile'
•more newfile– 逐屏输出 'newfile' 的内容
•head newfile– 输出文件 'newfile' 的前10行
•tail newfile– 输出文件 'newfile' 的最后10行
•gpg -c newfile– 使用密码以gpg格式加密 'newfile' 并保存在相同目录中
•gpg newfile.gpg– 解密gpg文件
•wc newfile– 显示新文件中的字节数、单词数和行数
文件/目录权限相关
•chmod 777 /root/ssh– 为所有有权访问服务器的人(所有者、组、其他人)设置读、写和执行权限
•chmod 755 /root/ssh– 为所有者设置rwx权限,为组和其他人设置r_x权限
•chmod 766 /root/ssh– 为所有者设置rwx权限,为组和其他人设置rw权限
•chown newuser newfile– 将newfile的所有者更改为newuser
•chown newuser:newgroup newfile– 将newfile的所有者和组所有者都更改为newuser和newgroup
•chown newuser:newgroup newfolder– 将目录newfolder的所有者和组所有者都更改为newuser和newgroup
•stat -c “%U %G” newfile– 显示newfile的用户和组所有者
搜索
•grep searchargument newfile– 在newfile中搜索searchargument
•grep -r searchargument newfolder– 在newfolder中递归搜索searchargument
•locate newfile– 显示newfile的所有位置
•find /etc/ -name "searchargument"– 在 /etc 目录中找到以 searchargument 开头的文件
•find /etc/ -size +50000k– 在 /etc 目录中找到大于 50000k 的文件
解压缩相关
•tar -cf archive.tar newfile– 从文件 'newfile' 创建一个压缩 'archive.tar'
•tar -xf archive.tar– 解压文件 'archive.tar' 的内容
•tar -zcvf archive.tar.gz /var/log/– 从 /var/log/ 目录创建一个tar压缩,并使用gzip进行压缩
•gzip newfile– 压缩新文件(将具有 .gz 扩展名)
软件包安装相关
•rpm -i pkg_program.rpm– 在CentOS、RHEL等上安装RPM软件包
•rpm -e pkg_name– 在CentOS、RHEL等上删除RPM软件包
•dnf install pkg_name– 在CentOS、RHEL等上使用DNF从仓库安装软件包。YUM曾经是使用的工具,但最近已被DNF取代
•dpkg -i pkg_name– 在Debian、Ubuntu、Mint等上安装DEB软件包
•dpkg -r pkg_name– 在Debian、Ubuntu、Mint等上删除DEB软件包
•apt install pkg_name– 在Debian、Ubuntu、Mint等上从仓库安装软件包
•apt remove pkg_name– 在Debian、Ubuntu、Mint等上删除软件包
•apt upgrade && apt update– 更新系统(Debian、Ubuntu、Mint等)中的软件包并更新仓库
进程相关
•ps– 显示当前正在运行的进程
•ps aux | grep 'bash'– 查找 'bash' 的进程ID(PID)
•pmap -x 11– 在进程内存中映射具有PID 11的进程
•top– 显示所有正在运行的进程
•kill pid– 通过PID终止一个进程
•killall process– 终止所有名称为 ‘process’的进程
•pkill process-name– 通过名称向一个进程发送信号
•bg– 将一个暂停的进程发送到后台
•fg– 将一个运行中的进程带到前台
•fg process– 将名为 ‘process‘ 的进程带到前台
•lsof– 列出被进程打开的文件
•renice 19 PID– 为一个进程设置最低优先级
•pgrep bash– 查找 'bash' 的进程ID
•pstree– 显示进程的树状表示
系统相关
•uname– 显示系统信息
•uname -r– 显示有关Linux内核的信息
•uptime– 显示系统运行时间和平均负载
•hostname– 显示主机名
•hostname -i– 显示主机的IP地址
•last reboot– 显示重启历史
•date– 显示日期和时间
•timedatectl– 输出并修改日期和时间设置
•cal– 显示日历
•w– 显示当前登录的用户
•whoami– 显示你的用户名
•finger root– 显示有关root用户的信息(需要使用 "apt-get install finger" 进行安装)
硬件相关
•dmesg– 在启动期间显示系统消息
•cat /proc/cpuinfo– 显示处理器信息
•cat /proc/meminfo– 显示内存信息
•lshw– 显示设备的详细信息
•lsblk– 显示块设备信息
•free -m– 释放内存:RAM和swap(使用-M切换为MB)
•lspci -tv– 以树状视图显示PCI设备信息
•lsusb -tv– 以树状视图显示USB设备
•dmidecode– 显示有关BIOS设备的信息
•hdparm -i /dev/xda– 显示有关磁盘的信息
•hdparm -tT /dev/xda– 显示xda的读写速度
•badblocks -s /dev/xda– 执行坏块测试
磁盘管理相关
•df -h– 显示挂载分区上的可用空间(以字节为单位)
•df -i– 显示文件系统中的空闲inode
•fdisk -l– 提供关于磁盘、分区和文件系统的信息
•du -sh– 以MB、GB、TB显示挂载分区上的未分配空间
•findmnt– 显示所有挂载点
•mount /dev/sdb1 /mnt– 将sdb磁盘的分区1挂载到 /mnt 目录
网络相关
•ip addr show– 显示所有可用网络接口的IP地址
•ip address add 192.168.0.1/24 dev eth0– 为eth0接口分配地址192.168.0.1
•ifconfig– 显示所有可用网络接口的IP地址
•ping 192.168.0.1– 发送ICMP协议请求以连接到192.168.0.1节点
•whois domain– 显示有关域名的信息
•dig domain– 检索有关域的DNS信息
•dig -x 192.168.0.1– 执行反向DNS解析
•host serverspace.us– 解析主机地址
•hostname -I– 显示本地地址
•wget file_name(link to file)– 下载文件
•netstat -pnltu– 显示主机上所有正在监听的端口(需要 "apt-get install net-tools" 进行安装)
远程连接相关
•ssh root@host– 以root用户身份通过ssh连接到远程主机
•ssh -p port_number user@host– 使用非默认ssh端口连接到远程主机,指定用户
•ssh host– 使用当前用户使用默认连接
•telnet host– 使用telnet连接(端口23)