Linux基础命令和shell命令汇总(持续完善中...)

作为需要必要掌握的基础命令,最近有好朋友跟我反馈说他不会,看我不锤死他。(当然,若是有写错的地方请指出)

本机连接Linux

打开本机电脑命令行,例如windows terminalmobaxterm应用,步骤如下;

  • 输入ssh -p Port username@ip;其中Port是linux主机的端口号,默认是22端口;username是linux主机的用户名,ip是就是ip地址;例如:ssh root@192.168.3.173
  • 输入对应密码就可进入Linux系统了,但是进入的是命令行界面;(若是不想每次输入密码,可以配置免密,搜一下ssh免密登录即可)

(当然还有很多种连接方法:比如配置vnc-server连接图形界面;配置udp然后用windows远程桌面连接来连接等等,这个以后有机会再写吧。另:推荐vscode+remote ssh插件,大家都说好用,大家说好才是真的好。)

Linux基本常用命令(记住了还需练习,多多使用便于记忆)

查看当前资源消耗,网络端口,进程号等

  • reboot重启,shutdown关机
  • uname -a显示系统信息;
  • htop界面出现cpu, 内存,应用等各项资源使用情况(若是提示没安装,输入sudo apt-get install htop安装即可);
  • nvidia-smiNV显卡的资源消耗情况;每隔1s刷新一次:watch -n 1 nvidia-smi,以下同理;
  • free -h内存使用情况;
  • df -h磁盘使用情况,(未挂载的不算);
  • ps aux列出当前所有使用的进程;
  • ps aux | grep xxxx查找指定线程xxxx,其中grep是查找命令,后续应该会写到;
  • kill pid终止进程号为pid的进程;
  • 如果当前你执行了某个命令,想迅速终止他,按下ctrl + c即可;
  • ifconfig查看网口ip和当前网速;
  • ping ip测试主机通信;ip是指对方机器的ip地址;
  • wget url从网络连接url下载文件;curl -O也是同等命令;
  • history查看历史命令记录;
  • Linux上的复制和粘贴会和windows有所不同,怕麻烦的话,就用鼠标右键;

文件夹操作

  • ls列出当前文件夹内的所有文件和文件夹;(不展示隐藏文件)
  • ls -lha列出当前文件夹内的所有文件和文件夹,(不同上面的是,可以列出文件大小,读写权限,列出隐藏文件);ll与该命令类似;
  • tree -L 2 .tree插件需要安装一下 (sudo apt-get install tree),列出树状目录,深度为2;
  • du -sh查看该文件夹的大小;du -sh *查看该文件夹下每一个文件(夹)的大小
  • cd test/ 进入test文件夹下,可以是多级文件夹;
  • cd .. 进入上一级文件夹;…/代表的就是上一级目录
  • cd - 返回到上次进来的文件夹;
  • pwd当前所在位置的绝对路径;
  • mkdir -p test/subpath/创建test/subpath/文件夹,如果是多级文件夹需要加上-p参数;
  • rm -r test/删除test/文件夹,也可以用rmdir xxx命令来删除;rm -rf test/直接删除(毫不犹豫);
  • mv test/ test_copy/如果当前文件下存在test_copy/文件夹,该命令是指将test文件夹移动到test_copy文件夹下;如果当前文件夹不存在test_copy/文件夹,则该命令是指将文件夹改名为test_copy/文件夹;
  • mv test/ test2/subpath1/将test文件(夹)移动到test_2/subpath1/路径下;
  • cp -r test/ test2/subpath1/将test文件(夹)拷贝到test_2/subpath1/路径下;-r表示recursive
  • find ./test/ -name main.so会在test/文件夹根据名字main.so递归查找,返回查找到的路径,若是没有打印,则是没有找到;main.so等文件(夹)名字可以用通配符表示,例如main*,返回文件前缀是以main开头的;
  • grep -r "pattern" ./test/subpath2/在文件夹test/subpath2/下递归查找每一个文本中含有pattern关键字的文件;
  • chmod -R 777 test/递归赋予test/文件夹的权限(包括执行、读、写);-R表示递归recursive

  • scp -r username@ip:path ./test/将远端文件(夹)拷贝到本地test/文件夹下;username服务器用户名,ip是服务器ip,path是服务器文件(夹)绝对路径。(ps:因为我们有需要把服务器上的下载下来或者把本地的文件传到服务器上去,所以可以用这个命令更方便些。)
  • ln -s source_path link_path创建文件(夹)软链接;(所谓软链接就是在link_path这里创建一个文件夹,然后进入该文件夹后,显示的内容和source_path中显示的内容是一样的。通常场景比如说数据集太大,文件夹太大不方便移动,磁盘空间不够,避免移来移去;删除link_path文件夹软链接就会消失了。)
  • mount/umount挂载/解挂载操作,这个你用到的时候再去另外搜索吧!

文件操作(和文件夹操作类似)

  • touch text.txt在当前文件夹下创建一个文件,名为text.txt;
  • ls -lh text.txt查看text.txt文件有多大;
  • cat text.txt将text.txt的文件内容显示在命令行窗口上;
  • head -n 10 text.txt显示出text.txt的前10行;
  • tail -n 10 text.txt显示出text.txt的后10行;
  • grep main_path text.txt在text.txt文件中搜索查找
  • rm text.txt删除text.txt文件
  • chmod 777 test.txt赋予test.txt文件权限(包括文件执行、读写等);
  • cp/mv和文件夹操作相同;
  • diff file1 file2比较file1和file2文件的不同,打印差异;
  • echo "" > text.txt清空text.txt文件;其中echo是打印命令,> 是重定向符号,代表从头写入,>>代表追加写入;

  • vim text.txt进入vim界面进行文件内容的修改;这里介绍一些基本的vim操作如下:
    • gg文件光标移动到文件开头;G文件光标移动到文件尾行;
    • p粘贴,yy 复制当前行;
    • ggdG也可以清空内容;gg=G格式化,例如c++代码格式化;
    • /pig_id文件查找;
    • :set nu显示行号;
    • i 进入插入模式;这样你就可以在文件中编辑了,和记事本一样;
    • 你编辑完成后,按ESC键推出插入模式,按下:wq保存退出;:q退出但不保存;:q!强制退出;

文件夹解压和压缩(只给出一些常用的哈)

  • unzip Pig.zip # 解压
  • zip -r Pig.zip test/ # 压缩,递归处理,将指定目录test/下的所有文件和子目录一并压缩
  • tar -zxvf Pig.tar.gz # 解压,
  • tar -zxvf Pig.tar.gz -C test2/ # 将pig.tar.gz文件解压到test2文件夹下
  • tar -zcvf Pig.tar.gz test/ # 将test/其下所有文件(夹)压缩

安装应用

  • 遇到xxx.run,xxx.sh文件,可以执行bash xxxx.run/sh
  • 遇到xxx.deb文件,可以执行dpkg -i xxx.deb
    • dpkg -l列出当前系统中已经dkpg安装的软件以及软件包的状态;dpkg -l "nginx*"查找某一应用;
    • sudo dpkg -r xxx卸载
  • 有些软件下载下来是压缩包,所以只用运行解压命令即可;

tmux语法(apt-get install tmux)

先来说说为什么要用它呢,我们在连接服务器的时候可能会有如下需求:1.可能会起多个命令窗口,避免文件夹切来切去; 2.想让他一直保持在后台运行(比如训练任务);3.保存命令记录,便于回溯;

  • tmux new -s pig新建名为pig的session
  • tmux a -t pig进入名为pig的session
  • tmux ls查看所有session;看!这里又出现了ls,所以命令其实并不多,常用就还是那么几个;
  • ctrl+b, d退出该session,但session处于detach状态,意思是里面的命令行或者运行着的任务其实还在;
  • ctrl+d退出,session退出了;
  • ctrl+b, %分为左右窗格;ctrl+b, "分为上下窗格;ctrl+b, 方向键切换到其他窗格;ctrl+b, x关闭窗格;
  • ctrl+b, c新建一个窗口;ctrl+b, 序号切换窗口

docker命令

请看我的这篇文章 地址在这

其他命令(可能不太常用?),但你可以稍微记一下大概是干什么的

  • source xxx刷新配置文件等;
  • alias sss=xxxx给某一特定命令取个别名,方便快捷操作;
  • export ssss=xxxxx使ssss=xxxxx,且在该命令行销毁前一直是生效状态;

shell语法(这个我想有时间再更吧~)

好的,那么到这里,相信你已经掌握了基本的Linux’基本命令,带着这些知识去探索Linux世界吧!加油!

  • 11
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值