Ubuntu常用命令

一、关于terminal

1. 启动terminal快捷键:Ctrl+Alt+T

在同一terminal开启多标签:Ctrl+Shift+T

普通用户:新启动的terminal的默认为普通用户,显示 "用户名@主机名: ~$",其中“~”代表当前用户路径,默认路径为/home/your_login_name/ ;"$"代表普通用户。

如果进入root超级用户,则显示”root@主机名: ~# ",其中“~"代表超级用户路径/root;"#"代表超级用户。

进入root权限:

sudo su -

其中,”-"表示进入root的主目录,如省略则保持之前的路径不变。

退出:

exit

注意:~// 不是同一目录,

  • ~/为当前用户的主目录路径;
  • / 为computer的根目录,其下包括home、usr、root、lib、bin等文件夹。

Ubuntu系统下的目录介绍可参考:Linux各目录及每个目录的详细介绍 - lin_zone - 博客园

2. 在terminal中搜索历史命令:

Ctrl+r :  进入reverse-i-search模式,输入命令关键字即可显示相关命令

二、路径:

1. 路径跳转:

cd 路径 

./ 表示当前目录; 直接写名字也表示当前目录下的操作;

../ 表示上一级目录;

PS:在文件夹下,使用Ctrl + L快捷键显示当前路径;ESC键还原到文件多级路径。

2. 显示当前路径

pwd

3. 列出目录下的文件

列出文件名:

ls /usr/share/cmake-3.5/Modules/

列出详细信息(创建时间、可读写状态等):

 ll /usr/share/cmake-3.5/Modules/

或者

 ls -lh /usr/share/cmake-3.5/Modules/

4. 统计目录下的文件数:

ls ./ | wc -l

 “| ”为管道符,其作用是将上一条命令的输出作为下一条命令的参数。 连续使用管道符则将第一个命令的输出作为第二个命令的输入,再将第二个命令的输出作为第三个命令的输入,依此类推。

wc -l filename

 表示统计文件的行数。

  •  查看当前目录下的文件数量(包含子目录中的文件,但不包含子文件夹数目)
ls -lR|grep "^-"| wc -l

ls的-R参数代表包含子目录;   grep "^-"表示仅匹配行首的“-”字符。

  • 查看某文件夹下文件夹的个数,包括子文件夹里的:
ls -lR|grep "^d"|wc -l

grep "^d"表示仅匹配行首的“d”字符,ls -l出来的文件夹行首为"d"字符。

5. 建文件夹:

例如创建名为build的文件夹

mkdir build  //只能建一级;

如果需要建多级文件夹:

mkdir -p ./test/build

6. 查看文件大小

使用du  (disk usage)命令查看文件大小

du test_file 

查看指定文件夹大小:

du -sh folder_name  #-s, --summarize 

当前文件夹大小:

du -h --max-depth=0   # -h表示以human-readable形式显示,即添加单位K M G

当前文件夹下一级子目录文件夹大小:

du -h --max-depth=1

7. 查看硬盘使用量:

df -h  #disk file system

8. 打开文件夹窗口:

nautilus ~/

9. 使用系统默认方式打开文件夹、文件或网页(输入网页地址):

xdg-open your_path_or_file_or_web

 三、文件管理

1. find查找文件

注意:在shell中输入的ubuntu系统的命令以及安装的软件的命令都在bin中存储的可执行文件,因此都可以使用find命令查找

find ./ -name rostopic  #在当前文件夹及其子目录下查找rostopic文件
find ./ -iame rostopic  #不区分名称rostopic的大小写
find / -name *rostopic* #模糊查找   
find / -name rostopic   #在根目录下查找

查看当前路径下24小时内修改过的regular file文件: 

find ./ -mtime 1 -type f -print

查看当前路径下48小时内修改过的regular file文件: 

find ./ -mtime 2 -type f -print

删除指定日期修改过的文件:

find ./ -maxdepth 1 -name "*" -ctime 5 -exec rm -rfv {} \;

查看所有文件:

find ./ -type d  #查找当前路径下的所有子文件夹
find ./ -type f  #查找当前路径下所有文件(包括子文件夹下的文件)

多条件查找:

find ./ -name *png -o -name *jpg | wc -l  #查找满足png或者jpg匹配的文件,并统计找到的文件数目

2. grep查找文件内的关键字

grep -rin "world_to_search" ./

r:递归查找文件夹下所有文件

i:忽略大小写

n:显示查找到的行号 

"world_to_search" :需要查找的文本

"./" : 查找的目录

3. 查看文件,特别是不断刷新的日志

将文件最后几行显示在terminal中,如果文件增加了内容,实时地将文件增加的内容显示在terminal中。

tail your_file_name

将整个文本打印在terminal上:

cat your_file_name

4、解压 & 压缩文件

4.1 tar

tar压缩格式及对应文件后缀名:

flag压缩格式文件后缀名
-zgzip.gz
-jbzip2.bz
-Jxz

4.1.1 tar.gz

查看压缩文件内的信息:

tar -tf test.tar.gz  //-t : list the contents of an archive, -f: use archive file

解压缩文件(解压到当前目录):

tar -xzvf test.tar.gz  //-z为gzip, -v: verbosely list files processed

解压到指定目录:

tar -xzvf test.tar.gz -C your_destination_file  //your_destination_file目录必须存在,若不存在并不会新建

-z 表示解压gzip格式压缩的文件夹。如果显示:

gzip: stdin: not in gzip format
tar: Child returned status 1
tar: Error is not recoverable: exiting now
则可能是以其他格式压缩,但是压缩命名时没有按照相应规范命名,而是使用gz后缀命名了。此时只能尝试不同解压格式了,运行:

tar -xjvf test.tar.gz  //-j表示使用bzip2

如果显示:

bzip2: (stdin) is not in gzip format
tar: Child returned status 1
tar: Error is not recoverable: exiting now

则运行:

​tar -xvf test.tar.gz ​

 4.1.2 tar.xz是两级压缩文件(压缩后文件非常小)

压缩:

tar -cJvf target.tar.xz ./file1 ./file2 //如果需要压缩多个文件,只需要在后面依次写出即可

可分两级解压:

先 xz -d *.tar.xz 将 *.tar.xz解压成 *.tar ; 再用 tar xvf.tar解包。

如果一步解压,命令如下:

tar -xJvf *.tar.xz

 4.2 unzip

压缩文件夹:

zip -r test.zip test

解压到指定文件夹

unzip test.zip -d /home/yly/test   

4.3 unrar

unrar x test.rar

5、比较两个文本文件差别

diff file1.txt file2.txt

输出结果:

45c45 
< context in file1.txt;
------------------------------------
> context in file2.txt;


9a14,15
> #include <thread>
> #include <iostream>

20,23d19
< std::thread thread1(fun1);
< std::thread thread2(fun2);
< std::thread thread3(fun3);

这里不要把<和>按照大于和小于号理解,按照表示diff参数中<表示前面文件的内容,>表示后面文件的内容。

45c45 表示file1.txt和file2.txt中第45行不同;

9a14,15表示file2.txt相对于file1.txt增加了file2.txt中第14-15行的内容;

20,23d19表示file2.txt相对于file1.txt缺少file1.txt中的第20-23行的内容。

6. 查看可执行文件的硬件架构

file your_binary_file

 7. 查看可执行文件依赖的库命令

ldd your_binary_file

8.  查看二进制文件(包括可执行文件和库) 的信息

readelf -a your_elf_file

查看动态链接库所依赖的动态链接库: 

readelf -d your_dynamic_link_lib

 备注: 查看readelf参数手册:

 man readelf

四、进程&服务管理

查看进程状态

ps -ef   #process status

或者 

ps aux   #process status

查看进程占用资源:

top

对于top显示的资源占用信息解读可参见:Linux top命令详解 - 牛奔 - 博客园

杀死程序

kill -9 PIDnumber

或者

pkill process_name

查看内存和swap使用情况:

free -h

调整进程优先级(CPU等资源分配优先级):

nice -n -20 ./your_bash.sh

nice,"友善度、谦让度",在Linux系统中,nice值的范围从-20到+19,正值表示低优先级,负值表示高优先级。


重定向:

>/dev/null

/dev/null代表linux的空设备文件,所有往这个文件里面写入的内容都会丢失,俗称“黑洞”。这条命令的作用是将标准输出1重定向到/dev/null中,那么执行了>/dev/null之后,标准输出就会不再存在。

>表示输出重定向

>>输出重定向来向文件尾部增加输出记录

查看服务启动状态

service --status-all

五、查看计算机信息:

查看本机系统架构(x86, arm等)

uname -a

查看MAC, IP, DNS等信息 (Ubuntu 16.04)

nmcli dev show

查看IP等

ifconfig

查看网关

netstat -rn

查看cpu信息:

# 总核数 = 物理CPU个数 X 每颗物理CPU的核数 
# 总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU的核数 X 超线程数

# 查看物理CPU个数
cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l

# 查看每个物理CPU中core的个数(即核数)
cat /proc/cpuinfo| grep "cpu cores"| uniq

# 查看逻辑CPU的个数
cat /proc/cpuinfo| grep "processor"| wc -l

查询时间:

date 

Unix时间戳:

date +%s

备注:Unix time, POSIXme 或 Unix timestamp,是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数: 

更详细的关于时间查询和设定可参考:linux使用date命令获取系统时间_tinysakura的博客-优快云博客_linux 获取时间 

六、修改打开文件的默认程序

 /etc/gnome/defaults.list 中定义了打开各种类型的文件所对应的默认应用程序

例如:

text/x-c++hdr=gedit.desktop
text/x-c++src=gedit.desktop
text/x-xsrc=gedit.desktop

则使用gedit打开cpp格式文件。但是如果安装了vim,这三项被修改为ubuntusdk.desktop, 并默认使用vim打开cpp后缀的文件。如果想还原使用gedit打开,

sudo gedit /etc/gnome/defaults.list

并将以上三项中ubuntusdk.desktop修改回gedit.desktop,并重启电脑即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yuyuelongfly

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值