Ubuntu常用命令汇总

Ubuntu常用命令汇总Ubuntu 常用命令汇总

1. 获取Ubuntu版本号:可执行以下任一命令

cat /etc/issue lsb_release -a

2. 查看Ubuntu系统位数:可执行以下任一命令

uname -ar getconf LONG_BIT

3. 查看Ubuntu机器的处理器架构,结果为i686或x86_64:可执行以下任一命令

arch uname -m

4. 显示当前目录内容(目录清单),(如果按文件改动时间顺序来排序,则可用: $ ls -lt):

ls

5. 显示当前目录下文件的详细信息,包括读写权限,文件大小,文件生成日期等(若想按照更改的时间先后排序,则需加-t参数,按时间降序(最新修改的时间排在最前)执行: $ ll -t, 按时间升序执行: $ ll -t | tac):

ll

6. 改变当前工作目录位置(若进入系统根目录,如usr,则可直接执行: $ cd /usr),若文件夹有空格,则需用引号括起来,如进入目录名为a b的目录,则执行:

cd "a b"

7. 删除当前目录中指定文件,如删除.xxx的所有文件(对于链接文件,只是删除了链接,原有文件均保持不变;如果没有使用-r选项,则rm不会删除目录;如果想删除前再次获取确认,可使用-i选项,如: $ rm -i .xxx)执行:

rm *.xxx

8. 删除空目录,如xxx,一个目录被删除之前必须是空的,删除某目录时也必须具有对父目录的写权限,执行:

rmdir xxx
mkdir tmp

12. 查看某个指令的详细说明,如查看rm指令,则执行:

man rm

13. 创建静态库,如使用当前目录中的所有.o文件创建libxx.a静态库,则执行:

ar -r libxx.a *.o

查看静态库libxx.a包含哪些.o文件,则执行:会在当前目录下产生libxx.a中包含的所有.o文件

ar -x libxx.a

14. 创建动态库,如使用当前目录中的所有.o文件创建libxx.so动态库(若有两个在不同目录的.cpp文件直接生成动态库,则执行: $ g++ -shared add/add.cpp subtract/subtract.cpp -o libtest.so)(若从静态库b1.a, b2,a直接生成动态库b.so,则相应命令为: $ g++ -shared -fPIC -Wl,–whole-archive b1.a b2.a  -Wl,–no-whole-archive -o b.so):

g++ -shared -o libxx.so *.o

查看动态库libxx.so中包含哪些.cpp文件,则执行:

strings -a libxx.so | grep .cpp

15. 查看当前所处路径(完整路径),执行:

pwd

16. 提示需要权限执行的命令,如果你不是root用户,那么在执行一些命令做一些操作的时候有时是不允许的,此时可以在命令前面加上sudo,如安装tree,执行:

sudo apt install tree

17. 查看静态库是否含有某个函数,如查看xx.a静态库中是否有fun1函数(也可以查看某个库所有包含的函数信息并写入fun.txt中,则执行: $ nm xx.a > fun.txt),执行:

nm xx.a | grep fun1

查看动态库是否含有某个函数,如查看yy.so动态库中是否有fun2函数(也可以查看某个库所有包含的函数信息并写入info.txt中,则执行: $ nm yy.so > info.txt),执行(如果仅导出已定义的符号,则加上”-D”选项,执行: $ nm -D yy.so | grep fun2):

nm yy.so | grep fun2

18. 查看cpuinfo相关信息:

cat /proc/cpuinfo

19. 显示系统日期:

date

20. cal命令用于查看公历(阳历)日历,可以查看指定年份的(也可以查看当前月的,直接用cal,无需带任何参数),如查看2019年的,执行

cal -y 2013

21. 关闭系统(若非root,则shutdown前需加sudo):

shutdown -h now

22. 重启系统(若非root,则shutdown前需加sudo):

shutdown -r now

23. 与windows共享目录命令,如共享目录为test(http://download.csdn.net/detail/jiaoxiaogu/),执行:

cd /mnt/hgfs/test

24. 创建一个指向文件或目录的软连接(当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个固定的目录,放上该文件,然后在其它的目录下用ln命令链接(link)它就可以,不必重复的占用磁盘空间),格式为:$ ln -s 源文件 目标文件.文件保持同步变化;目录只能创建软链接,目录创建链接必须用绝对路径,在链接目标目录中修改文件都会在源文件目录中同步变化.如给源目录/home/spring/aa创建一个新的目录/usr/local/aa,执行:

ln -s /home/spring/aa /usr/local/aa

25. 更改文件或目录的日期时间,包括存取时间和更改时间(若有两个文件a.b,c.e,将c.e的文件的日期修改成a.b的日期,则为:$ touch a.b c.e),或者新建一个不存在的文件(若将已存在的aa.x文件新建成一个bb.y文件(bb.y文件原始是不存在的),并且保持与aa.x文件的内容、创建修改时间一致,则执行:$ touch aa.x bb.y),格式:$ touch 源文件名 目的文件名

每个文件都有时间戳,这个时间戳包括访问时间和修改时间,而touch命令主要就是用来修改文件的访问时间和修改时间.如将文件a.txt的时间戳改为当前时间,则执行:

touch a.txt

26. 显示文件内容(若显示aa.txt的文件内容,则:$ cat aa.txt),或者将几个文件连接起来显示,如显示aa.txt, bb.txt则执行:

cat aa.txt bb.txt

27. 将输出的文件内容自动的加上行号,如显示文件aa.txt,执行:

nl aa.txt

28. 可通过more命令,以一页一页的方式显示文件的内容,按空格键(space)为显示下一页;按b键会往回(back)一页显示;按q键退出,如查看aa.txt内容,执行:

more aa.txt

29. 可通过less命令,分页显示文件的内容,类似于more,但比more功能更强大;按q键退出;若搜索文件中某个字符串xxx,则按Esc键,然后Shift+”:”,可使用/xxx来做到;通过加入-N参数来显示每行的行号,如查看aa.txt内容,执行:

less aa.txt

30. 通过head命令,用来显示文件的开头内容,如显示aa.txt,执行:

head aa.txt

31. 通过tail命令,用来显示文件的末尾内容,如显示aa.txt,执行:

tail aa.txt

32. 查看某个系统命令是否存在或者查看某个可执行文件的位置,若查找ls命令的位置,则执行:会返回/bin/ls,若找不到该命令(或该执行文件),则不会有任何返回结果:

which ls 

33. 在当前目录查找文件名后缀为txt的所有文件(若从系统根目录查找,则执行:$ find / -name “*.txt”;若从你的$HOME目录查找,则执行:$ find ~ -name “*.txt”;在/etc目录查找,则执行:$ find /etc -name “*.txt”;若要在当前目录查找文件名以一个小写字母开头,最后是4到9加上.log结束的文件,则执行:$ find . –name “[a-z]*[4-9].log”)执行:(若想按排序输出查找的结果,则在最后添加 “| sort”, 如:$ find / -name “.txt” | sort)

find . -name "*.txt"

在当前目录查找此目录下所有文件内包含的指定关键字”ab”,则执行:

find . -type f -print -exec grep ab {} \;

34. chmod命令用于改变linux系统文件或目录的访问权限.Linux系统中的每个文件和目录都有访问许可权限,用它来确定谁可以通过何种方式对文件和目录进行访问和操作.文件或目录的访问权限分为只读、只写和可执行三种.有三种不同类型的用户可对文件或目录进行访问,文件所有者(一般是文件的创建者),同组用户,其他用户.每一文件或目录的访问权限都有三组,每组用三位来表示,分别为文件属主的读、写和执行权限;与属主同组的用户的读、写和执行权限;系统中其他用户的读、写和执行权限.当用”ls -l”命令显示文件或目录的详细信息时,最左边的一列为文件的访问权限.第一列共有10个位置,第一个字符指定了文件类型.在通常意义上,一个目录也是一个文件.如果第一个字符是横线,表示是一个非目录的文件.如果是d,表示是一个目录.从第二个字符开始到第十个共9个字符,3个字符一组,分别表示了3组用户对文件或者目录的权限.权限字符用横线代表空许可,r代表只读,w代表写,x代表可执行.确定了一个文件的访问权限后,用户可以利用chmod命令来重新设定不同的访问权限.权限代号:r:读权限,用数字4表示;w:写权限,用数字2表示;x:执行权限,用数字1表示;-:删除权限,用数字0表示;s:特殊权限.如对目录test及其子目录所有文件添加可读可写可执行权限,则执行:

chmod -R 777 test

35. 可以用tar命令进行压缩、解压缩、打包、解包等.打包是指将一大堆文件或目录变成一个总的文件;压缩则是将一个大的文件通过一些压缩算法变成一个个小文件.使用tar程序打出来的包常称为tar包,tar包文件的命令通常都是以.tar结尾的.生成tar包后,就可以用其它的程序来进行压缩.常用参数:-c:建立新的压缩文件;-x:从压缩的文件中提取文件;-z:支持gzip解压文件;-j:支持bzip2解压文件;-Z:支持compress解压文件;-v:显示操作过程;-f:指定压缩文件.如,有个目录test1,将其打包则执行:$ tar cvf test1.tar test1;若将其打包并以gzip压缩,则执行:$ tar zcvf est1.tar.gz test1; 若解包或解压缩,则相应的把cvf和zcvf换成xvf和zxvf即可,如把test2.tar.gz解压缩,则执行:则会在当前目录下生成一个test2文件

tar xvzf est2.tar.gz

36. 查看文件或目录空间大小,可以用du命令,如显示/test目录大小,则执行:$ du -hs /test;若想查看/test目录及/test目录下的每个子目录的大小,则执行:

du -h /test

37. diff能比较单个文件或者目录内容.如果指定比较的是文件,则只有当输入为文本文件时才有效.以逐行的方式,比较文本文件的异同处.如果指定比较的是目录的时候,diff命令会比较两个目录下名字相同的文本文件.列出不同的二进制文件、公共子目录和只在一个目录出现的文件.如比较1.txt和2.txt两个文本文件,可执行:会将内容不同的地方在行之前用”!”标出.

diff -c 1.txt 2.txt

38. grep命令是一种强大的文本搜索工具.如从test.txt文件中查找android关键词,则执行:$ grep -n ‘android’ test.txt.也可以同时从多个文件中查找关键词,如在test1.txt和text2.txt中查找android,则执行:$ grep -n ‘android’ test1.txt test2.txt

如果要在当前目录下所有文件中查找”AB”字符串,则执行:

grep -rn "AB" *

39. wc命令用于统计指定文件中的行数、字数、字节数,并将统计结果显示输出.如执行:$ wc test.txt,输出为8 9 10 test.txt,其中8表示行数,9表示字数,10表示字节数,test.txt表示文件名.如果统计当前目录下带有后缀名为frm、asp、bas的代码行数,则命令为:执行完此命令后会在当前目录下生成一个result.txt文件,里面包含了每个文件(frm/bas/asp)的代码行数以及总的代码行数.

find . -name "*.frm" -or -name "*.bas" -or -name "*.asp" | xargs wc -l > result.txt

40. free命令可以显示Linux系统中空闲的、已用的物理内存及swap内存,及被内核使用的buffer.如执行:则会以MB为单位显示内存使用情况

free -m

41. 可以使用apt-get命令来安装/更新一个deb包,如安装g++,则执行:若不是root用户,需加sudo

apt-get install g++

42. c++filt命令:C++函数在Linux系统下编译之后会变成类似这样:_ZN9CBC_EAN1312RenderBitmapERP12CFX_DIBitmapRi,乍一看并不知道函数的原始名称,此时可以用c++filt命令,执行:即可显示原始函数名称CBC_EAN13::RenderBitmap(CFX_DIBitmap*&,int&)

c++filt _ZN9CBC_EAN1312RenderBitmapERP12CFX_DIBitmapRi

43. echo命令是内建的shell命令,用于显示变量的值或者打印一行文本,如查看由哪些文件目录加入到了系统环境变量中(PATH前面的$表示后面接的是变量),则可执行:可以通过输入:$ echo 2 >> /home/spring/1.txt,将2追加写入到1.txt文件中

echo $PATH
ps -ef | grep test

46. 杀死指定的进程可以用kill命令,如杀死进程PID为30732的进程,则可以执行:$ kill -9 30732,若需要批量杀死进程,则可执行:

ps aux | grep test | awk '{print $2}' | xargs kill -9
eog /images/a.jpg

49. 远程拷贝文件: 可以通过”scp”命令,如从远程服务器传某个指定目录或文件到本地指定目录,则执行:$ scp -r xxx spring@10.0.0.66:/home/spring/yyy/;若存放到本地根目录,可以执行:$ scp -r a.jpg spring@10.0.0.66:~/;执行以上命令时会要求输入本地机子的密码,若不想每次都输入,可以执行:$ ssh-copy-id spring@10.0.0.66,这样下次在传文件时就不用重复输入密码了;若从本地传文件到远程服务器,则执行:

scp -r b.jpg test@10.0.8.88:/home/test/fbc/

50. 查看机子ip和MAC地址执行:

ifconfig

51. 安装SSH-SERVER执行:可以通过ssh命令访问指定的ubuntu主机,假设要访问的ubuntu主机名为spring, ip为10.0.1.1,又知道此主机的密码,则执行:ssh spring@10.0.1.1 ,回车,再输入这台主机的密码即可

sudo apt-get install -y openssh-server

52. 安装Google Chrome,依次执行以下命令:

wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add - sudo sh -c 'echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google-chrome.list' sudo apt-get update sudo apt-get install google-chrome-stable

53. 解决弹出对话框”System program problem detected Do you want to report the problem now?”的问题,在终端输入:

sudo rm /var/crash/* 

54. 在Ubuntu上查看指定文件是采用何种编码方式可以使用file命令,如查找test目录下所有的.cpp文件的编码格式,则执行:

file test/*.cpp

55. 在Ubuntu上安装.deb文件命令,如code_1.13.0-_amd64.deb,执行:

sudo dpkg -i code_1.13.0-_amd64.deb

56. 在Ubuntu上查看GCC编译器支持哪些宏,则执行命令:其中macro.txt的名字可任意

touch macro.txt; cpp -dM ./macro.txt

57. 在Ubuntu下去除文件中的”^M”字符(此字符在windows上产生),如a.cpp,则执行命令:

dos2unix a.cpp

58. 为了实时监控日志文件,可以通过tail命令,如实时查看info.log,则可执行命令:

tail -f info.log

59. 查看可执行文件和动态库依赖哪些动态库,可以通过ldd命令,如查看libopencv_core.so,则执行:

ldd libopencv_core.so

60. 可以通过chown命令设置文件所有者,如将kcov-36.tar.gz的用户组权限由root调整为spring,若非root权限,需加sudo,执行:

sudo chown spring kcov-36.tar.gz

若将当前目录下的所有文件的用户组调整为spring,所属组也调整为spring,则执行:

sudo chown -R spring:spring *

63. 查看某个编译器(preprocessor)定义的宏,如/usr/bin/gcc和/usr/bin/g++,可通过执行如下命令获取:

echo | /usr/bin/gcc -dM -E - echo | /usr/bin/g++ -dM -E -x c++ -

64. 在linux上可通过ldd查看liunx上的可执行文件或动态库依赖哪些动态库,但是在linux上查看android上的可执行文件或动态库依赖哪些动态库不能通过ldd,此时可通过android上的objdump可执行文件获取,如armv7中的arm-linux-androideabi-objdump,查看android armv7上的opencv动态库libopencv_core.so,可通过执行如下命令获取:

arm-linux-androideabi-objdump -p libopencv_core.so | grep NEEDED

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/177795.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月26日 下午6:44
下一篇 2026年3月26日 下午6:44


相关推荐

  • pstree命令详解

    pstree命令详解pstree 命令是用于查看进程树之间的关系 即哪个进程是父进程 哪个是子进程 可以清楚的看出来是谁创建了谁 pstree 几个重要的参数 A 各进程树之间的连接以 ASCII 码字符来连接 U 各进程树之间的连接以 utf8 字符来连接 某些终端可能会有错误 p 同时列出每个进程的 PID u 同时列出每个进程的所属账号名称 例子 pstree upsystemd 1 agetty 2021 agetty 2022 bash

    2026年3月18日
    2
  • dell服务器显示器fre,戴尔发布Gaming 24/27游戏显示器新品 支持144/155Hz FreeSync

    dell服务器显示器fre,戴尔发布Gaming 24/27游戏显示器新品 支持144/155Hz FreeSync访问购买页面:具体说来,24英寸机型覆有防眩光涂层(硬度3H),长宽比为16:9、支持1670万色,水平/垂直可视角度为160/170°。此外还有LEDedgelight、ComfortView、戴尔显示管理器、且兼容VESA壁挂安装。接口方面,该机型提供了2×HDMI1.4、DisplayPort、一个USB3.0上联+两个USB3.0下联、耳机…

    2022年5月8日
    44
  • 闭包、作用域

    闭包、作用域一 闭包是什么 闭包 closure 就是能够读取其他函数内部变量的函数 在 javascript 中 只有函数内部的子函数才能读取局部变量 所以闭包可以理解成 定义在一个函数内部的函 在本质上 闭包是将函数内部和函数外部连接起来的桥梁 闭包的最典型的应用是实现回调函数 callback 二 JS 中闭包的优缺点及特性 优点 1 保护函数内的变量安全 2 在内存中维持一个变量 用的太多就变成了缺点 占内存 3 逻辑连续 当闭包作为另一个函数调用的参数时

    2026年3月17日
    2
  • 申请软件著作权步骤[通俗易懂]

    申请软件著作权步骤[通俗易懂]前言:申请软件著作权对格式要求很严格,材料一定要保证格式正确,一般来说需要参考模板。另外,邮寄材料到版权中心的方式比较慢,而且万一材料格式或者内容不合适的话补正的话很麻烦,最好还是到现场办理成功率高。就我的经验来说,材料出现的错误率最高的是:1>要求签章的地方未按要求进行签章;2>材料提供的不全;3>材料内容不恰当,需要更改,比如浏览器需要加上安装卸载过程、微信小程序需要体现是在…

    2022年6月24日
    25
  • VirtualBox命令行VBoxManage创建与管理虚拟机教程

    VirtualBox命令行VBoxManage创建与管理虚拟机教程VBoxManageisthecommand-lineinterfacetoVirtualBox.前言本文要操作的虚拟机信息如下:名称:UbuntuRDHome镜像名称:ubuntu-16.04.3-server-amd64.iso网络连接:桥接主机环境:$uname-a命令输出:LinuxUbuntuServer

    2022年6月8日
    31
  • plc编程小技巧_plc编程入门培训

    plc编程小技巧_plc编程入门培训PLC是一种在工业中被广泛应用的自动控制元件。然而PLC应用与编程人才短缺已经成为制约我国自动控制领域发展的瓶颈。通过学习PLC可编程控制器程序设计使学员掌握可编程序控制器的工作原理和PLC控制系统硬件软件的设计方法,可编写复杂的PLC程序,为从事PLC控制系统的设计、调试和改造工作打下基础。可以独立承担相关项目的设计与开发。让您由一位电工升级为货真价实的工程师![1]随着现代工业设备自动化,越来越多的工厂设备将采用PLC人机界面等自动化器件来控制,因此设备自动化程度越来越高。对设备的维护人员的技术要求越

    2025年10月4日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号