linux命令行是有,Linux命令行技巧-程序员宅基地

技术标签: linux命令行是有  

学习啦小编将和大家分享一些学习Linux命令行的技巧,希望能对大家有所助益。如果在本文中遇到不太熟悉的命令,可以在终端中键入以下命令寻求帮助。下面跟着学习啦小编一起来了解一下吧。

Linux命令行技巧

这篇文章希望向你展示一些不需要很高的技术就可以像一个高手一样使用 Linux 终端的有用技巧。你只需要一个 Linux 终端和一些自由时间来体会这些命令。

1. 找到正确的命令

执行正确的命令对你的系统来说非常重要。然而在 Linux 中有如此多的、难以记忆的各种的命令行。那么怎样才能找到你需要的正确命令呢?答案是 apropos。你只需要运行:

# apropos

其中你要用真正描述你要查找的命令的语句代替 “description”。这里有一个例子:

# apropos "list directory"

dir(1)-list directory contents

ls(1)-list directory contents

ntfsls (8)-list directory contents on an NTFS filesystem

vdir (1)-list directory contents

左边你看到的是命令,右边是它们的描述。

2. 执行之前的命令

很多时候你需要一遍又一遍执行相同的命令。尽管你可以重复按你键盘上的向上光标键,但你也可以用 history 命令替代。这个命令会列出自从你上次启动终端以来所有输入过的命令:

# history

1fdisk-l

2apt-get install gnome-paint

3hostname tecmint.com

4hostnamectl tecmint.com

5manhostnamectl

6hostnamectl--set-hostname tecmint.com

7hostnamectl-set-hostname tecmint.com

8hostnamectlset-hostname tecmint.com

9mount-t "ntfs"-o

10fdisk-l

11mount-t ntfs-3g/dev/sda5 /mnt

12mount-t rw ntfs-3g/dev/sda5 /mnt

13mount-t -rw ntfs-3g/dev/sda5 /mnt

14mount-t ntfs-3g/dev/sda5 /mnt

15mountman

16manmount

17mount-t -o ntfs-3g/dev/sda5 /mnt

18mount-o ntfs-3g/dev/sda5 /mnt

19mount-ro ntfs-3g/dev/sda5 /mnt

20cd/mnt

...

正如你上面看到的,你会得到一个你运行过的命令的列表。每一行中有一个数字表示你在第几行输入了命令。你可以通过以下方法重新调用该命令:

!#

其中要用命令的实际编号代替 #。为了更好的理解,请看下面的例子:

!501

等价于:

# history

3. 使用 midnight 命令

如果你不习惯使用类似 cd、cp、mv、rm 等命令,你可以使用 midnight 命令。它是一个简单的可视化 shell,你可以在上面使用鼠标:

e32a2c9abf0b45f7bee41581cc23bfdd.png

Midnight 命令

借助 F1 到 F12 键,你可以轻易地执行不同任务。只需要在底部选择对应的命令。要选择文件或者目录,按下 “Insert” 键。

简而言之 midnight 就是所谓的 “mc”。要安装 mc,只需要运行:

$ sudoapt-get install mc [OnDebian based systems]

#yum install mc [OnFedora based systems]

下面是一个使用 midnight 命令器的简单例子。通过输入以下命令打开 mc:

# mc

现在使用 TAB 键选择不同的窗口 - 左和右。我有一个想要移动到 “Software” 目录的 LibreOffice 文件:

406c736ce231e569660567e4dff6617e.png

Midnight 命令移动文件

按 F6 按钮移动文件��新的目录。MC 会请求你确认:

a377f7f78cc7f348bd70f9d2b4d87b38.png

移动文件到新目录

确认了之后,文件就会被移动到新的目标目录。

扩展阅读:如何在 Linux 中使用 Midnight 命令文件管理器

4. 在指定时间关闭计算机

有时候你需要在下班几个小时后再关闭计算机。你可以通过使用下面的命令在指定时间关闭你的计算机:

$ sudoshutdown21:00

这会告诉你在你指定的时间关闭计算机。你也可以告诉系统在指定分钟后关闭:

$ sudoshutdown+15

这表示计算机会在 15 分钟后关闭。

5. 显示已知用户的信息

你可以使用一个简单的命令列出你 Linux 系统的用户以及一些关于它们的基本信息。

# lslogins

这会输出下面的结果:

UID USER PWD-LOCK PWD-DENY LAST-LOGIN GECOS

0 root 00Apr29/11:35 root

1 bin 01 bin

2 daemon 01 daemon

3 adm 01 adm

4lp01lp

5sync01sync

6shutdown01Jul19/10:04shutdown

7halt01halt

8 mail 01 mail

10 uucp 01 uucp

11operator01operator

12 games 01 games

13 gopher 01 gopher

14 ftp 01 FTP User

23 squid 01

25 named 01Named

27 mysql 01MySQLServer

47 mailnull 01

48 apache 01Apache

...

6. 查找文件

查找文件有时候并不像你想象的那么简单。一个搜索文件的好例子是:

#find/home/user -type f

这个命令会搜索 /home/user 目录下的所有文件。find 命令真的很强大,你可以传递更多选项给它使得你的搜索更加详细。如果你想搜索超过特定大小的文件,可以使用:

#find.-type f -size10M

上面的命令会搜索当前目录中所有大于 10M 的文件。确保不要在你 Linux 系统的根目录运行该命令,因为这可能导致你的机器 I/O 瓶颈。

我最经常和 find 命令一起使用的选项之一是 “exec”,这允许你对 find 命令的结果运行一些操作。

例如,假如我们想查找一个目录中的所有文件并更改权限。可以通过以下简单命令完成:

#find/home/user/files/-type f -execchmod644{} \;

上面的命令会递归搜索指定目录内的所有文件,并对找到的文件执行 chmod 命令。

7. 用一个命令创建目录树

你很可能知道可以使用 mkdir 命令创建新的目录。因此如果你想创建一个新的目录,你可能会运行:

#mkdir new_folder

但如果你想在该目录下创建 5 个子目录呢?运行 5 次 mkdir 命令并非是一个好的选择。相反你可以类似下面这样使用 -p 选项:

#mkdir-p new_folder/{folder_1,folder_2,folder_3,folder_4,folder_5}

最后你会在 new_folder 中有 5 个目录:

#ls new_folder/

folder_1 folder_2 folder_3 folder_4 folder_5

8. 复制文件到多个目录

通常使用 cp 命令进行文件复制。复制文件通常看起来类似:

#cp/path-to-file/my_file.txt /path-to-new-directory/

现在假设你需要复制该文件到多个目录:

#cp/home/user/my_file.txt /home/user/1

#cp/home/user/my_file.txt /home/user/2

#cp/home/user/my_file.txt /home/user/3

这有点荒唐。相反,你可以用简单的一行命令解决问题:

#echo/home/user/1/ /home/user/2/ /home/user/3/|xargs-n 1cp/home/user/my_file.txt

9. 删除大文件

有时候文件可能会变得很大。我看过由于缺乏管理技能一个日志文件就超过 250G 的例子。用 rm 命令可能不足以删除该文件,因为有大量的数据需要移除。应该避免这个很“笨重”的操作。相反,你可以使用一个简单的方法解决这个问题:

#>/path-to-file/huge_file.log

当然你需要根据你实际情况替换路径和文件名。上面的命令写一个空输出到该文件。用更简单的话说它会清空文件而不会导致你的系统产生大的 I/O 消耗。

10. 在多个 Linux 服务器上运行相同命令

最近我们的一个读者在 LinuxSay 论坛提问说如何通过 ssh 在多个 Linux 服务器上执行一个命令。他机器的 IP 地址是:

10.0.0.1

10.0.0.2

10.0.0.3

10.0.0.4

10.0.0.5

这里有一个简单的解决方法。将服务器的 IP 地址写到文件 list.txt 中,像上面那样一行一个。然后运行:

#forin $i(catlist.txt);dossh user@$i 'bash command';done

上面的命令中你需要用实际登录的用户替换 “user”,用你希望执行的实际命令替换 “bash command”。这个方法非常适用于通过使用 SSH 密钥进行无密码验证,因为这样你不需要每次都为用户输入密码。

注意取决于你 Linux 系统的设置,你可能还需要传递一些额外的参数给 SSH 命令。

总结

上面的例子都很简单,我希望它们能帮助你发现 Linux 的优美之处,你如何能简单实现在其它操作系统上需要更多时间的不同操作。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_42524013/article/details/116556956

智能推荐

Base64Decoder使用时找不到包_xvlyc-程序员宅基地

文章浏览阅读568次。使用Base64加解密时,eclipse的设置public static void main(String[] args){String s=“H4sIAAAAAAAAAJVTPW/VMBT9K/wD2/kgbXVlyc/xo1Ff7JA4iNfFS6dKTJ3K72FDQgiQqkclGJgK”+“A1FB3ehQ9krdUCfs5MWJURey+N5zj2/uxzEsi5Uwel0JSqKEAJp8WLYyN0VOX5xg7CJbF2pRqVoP”+“JBeY+7AQTwppcqYFjXBEcI_xvlyc

Flutter中的MaterialButton不能使用全局主题颜色的真正原因_flutter textbutton 设置全局颜色不起作用-程序员宅基地

文章浏览阅读3.1k次。Flutter中的MaterialButton不能使用全局主题颜色的真正原因最近在使用flutter开发项目时遇到的问题,在页面中想设置下按钮的宽度,首先想到的是RaisedButton,主要是有阴影,并且官方推荐的,但是不能设置宽度和高度,然后选用其父类MaterialButton,可以使用minWidth这个属性,也有阴影等效果,但是新的问题,我设置的全局主题中的button颜色,不能应用..._flutter textbutton 设置全局颜色不起作用

.Net Core中的日志组件(Logging)-程序员宅基地

文章浏览阅读783次。1、介绍  Logging组件是微软实现的日志记录组件包括控制台(Console)、调试(Debug)、事件日志(EventLog)和TraceSource,但是没有实现最常用用的文件记录日志功能(可以用其他第三方的如NLog、Log4Net。之前写过NLog使用的文章)。2、默认配置  新建.Net Core Web Api项目,添加下面代码。 [Route("api/..._.net core logging

stm32软件模拟i2c通讯读取lm75a温度_float readtemperature(void){ unsigned char temp[2]-程序员宅基地

文章浏览阅读1.1w次,点赞16次,收藏105次。stm32硬件i2c有着一些bug,此外对于i2c这种通用的串行通信协议,从源头掌握和使用显然更加靠谱一些,当然,对于arm,还是直接操作寄存器来得方便的多。1、I2C协议1.1 i2c串行总线概述采用串行总线技术可以使系统的硬件设计大大简化、系统的体积减小、可靠性提高。同时,系统的更改和扩充更为容易。常用的串行扩展总线有:== I2C (Inter IC BUS)总线==、单总线(1-..._float readtemperature(void){ unsigned char temp[2]={0}; float temp_value=0

一文带你学习,动态规划算法-程序员宅基地

文章浏览阅读1.1k次,点赞4次,收藏7次。动态规划其实就是,给定一个问题,我们把它拆成一个个子问题,直到子问题可以直接解决。然后呢,把子问题答案保存起来,以减少重复计算。再根据子问题答案反推,得出原问题解的一种方法一般这些子问题很相似,可以通过函数关系式(DP方程)递推出来。动态规划就致力于解决每个子问题一次,减少重复计算。其核心思想就是:拆分子问题,记住过往,减少重复计算一个具体的例子:A : “上面等式的值是多少”B : 计算 “8”A : 在上面等式的左边写上 “1+” 呢?A : “此时等式的值为多少”_动态规划算法

android错误:Installation error: INSTALL_FAILED_VERSION_DOWNGRADE_packageinstaller 代码安装apk install_failed_version_do-程序员宅基地

文章浏览阅读546次。Installation error: INSTALL_FAILED_VERSION_DOWNGRADE,安装过一个开发的APP之后,需要把应用程序的安装包中的包文件目录修改一下,然后就出现了这个问题了,以前也出现过没有太注意,仔细查了一下资料,按其字面意思就是手机上安装的app版本比你当前想要安装的app版本低一些,所以只要提高版本号就好了,修改项目中AndroidManifest.xml文件中_packageinstaller 代码安装apk install_failed_version_downgrade

随便推点

python3之http.server模块_python http.server-程序员宅基地

文章浏览阅读5.7w次,点赞30次,收藏104次。有时候我们需要快速地搭建一个web服务,这时我们就可以使用python里面的http.server模块搭建http服务器。实现的方式有以下几种。BaseHTTPServer模块在Python3中已被合并到http.server1. 命令行启动pyhton -m http.server 80 #pyhton3中启动方式,开启的端口为80python -m SimpleHTTPServer 8080 #python2启动方式这种是常用的方式,很简单。2. 代_python http.server

「面试必背」TCP,UDP,Socket,Http网络编程面试题(快收藏)_socket面试题-程序员宅基地

文章浏览阅读3.7k次。网络通讯在系统交互中是必不可少的一部分,无论是职场面试还是工作中都是绕不过去的,本节我们来谈谈 Java 网络编程中的一些知识和网络编程面试题。1.先看一天面试的经验:2.什么是网络编程3.网络编程中两个主要的问题4.网络协议是什么在计算机网络要做到井井有条的交换数据,就必须遵守一些事先约定好的规则,比如交换数据的格式、是否需要发送一个应答信息。这些规则被称为网络协议。5.为什么要对网络协议分层简化问题难度和复杂度。由于各层之间独立,我们可以分割大问题为小_socket面试题

android游戏开发入门题大学题,android基础教程ppt-程序员宅基地

文章浏览阅读810次,点赞9次,收藏17次。对程序员来说,很多技术的学习都是“防御性”的。也就是说,我们是在为未来学习。我们学习新技术的目的,或是为了在新项目中应用,或仅仅是为了将来的面试。但不管怎样,一定不能“止步不前”,不能荒废掉。!文章以下内容会给出阿里与美团的面试题(答案+解析)、面试题库、Java核心知识点梳理等《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!**

前端「HTML+CSS」零基础入门学习笔记_前端【html+css零基础入门学习笔记-程序员宅基地

文章浏览阅读1.3k次,点赞29次,收藏41次。HTML+CSS入门学习,这篇就够了!_前端【html+css零基础入门学习笔记

递推法_递推法的一般步骤-程序员宅基地

文章浏览阅读1.9k次。目录设计思想典型例题一、兔子繁殖问题二、最大公约数三、猴子吃桃问题设计思想 利用所求解问题的本身具有的性质(递推关系)来求得问题解得有效方法。具体的做法是:对于一个问题,可以根据N=n之前的一步(n-1)或多步(n-1,n-2,n-3,·····)的结果推导出n时的解:f(n)=F(f(n-1),(n-2),·····) 称为递推关系式。递推算法的关键问题是得到相邻的数据项之间的关系,即递推关系。一般步骤:(1)确_递推法的一般步骤

@解决方案:GO单级减压阀中国PR1-4AH1Q5C384 #维护保养-程序员宅基地

文章浏览阅读328次,点赞5次,收藏4次。代理销售多种品牌,其中艾默生emerson、阿自倍尔azbil、费希尔fisher、普罗名特prominent、普尔声pulsar、霍克hawk等国外进口品牌在国外均有稳定的货源渠道,100%进口原装正品,序列号可查,价格优势明显,拥有完善的技术支持和售后,还可提供自动化工程技术服务及成套解决方案。经过的不懈努力,福建佰胜目前已与众多世界知名生产厂商达成友好合作关系并取得多个品牌的中国区代理权,并逐步积累了在工控自动化领域关于货源渠道、价格、货期、服务等各方面的巨大优势。16.不得在该类调压阀上使用油脂。

推荐文章

热门文章

相关标签