草庐IT

Linux:20个linux常用命令

IC Beginner 2023-04-20 原文

文章目录

写在前面:本文尽量简洁且持续筛选、更新。若文中有任何错误,请务必在评论区指出,感谢!

20个linux常用命令

1. ls:列出文件list

List列出当前路径下的文件与文件夹。

ls 常用参数:
-l:列出文件的详细信息
-a:all,列出所有文件,包括隐藏文件
注:参数可以叠加使用,如-la表示列出所有文件及其详细信息

2. cd:切换目录change directory

## cd用法
cd /home		# 切换/进入home目录
cd ..			# 到上一目录(父目录)
cd ../..		# 到父目录的父目录
cd .			# 进入当前目录(其实啥都不做)

3. cp:复制copy

cp 常用参数:
-i:interactive mode,若有同名文件,会询问是否覆盖(如果没这个参数,会不提示,直接覆盖)
-r:recursive copy,复制文件夹时连同子文件(夹)一起复制,如果是对文件夹进行操作,一定要带这个参数

## cp用法
cp -ir sourceDir/ home/targetDir/	# 把当前路径下的sourceDir文件夹复制到home目录下,取名为targetDir,且带参数-i和-r

4. mv:移动move

即剪切操作。源文件会被删除。

mv 参数:
-i: interactive mode,同cp的-i参数,若覆盖会询问

## mv用法
mv -i sourceFile /home/targetFile	# 把当前目录下的sourceFile剪切到/home目录下并命名为targetFile

5. rm:移除,删除remove

rm 参数:
-i:interactive,同上,若覆盖,先询问
-r:recursive mode,删除所有子文件(夹)

## rm用法
rm Dir/	# 删除Dir文件夹(错误示例,会报错)
rm -r Dir/	# 删除Dir文件夹(正确,对文件夹操作一定要带-r)

6. mkdir:创建文件夹make directory

## mkdir用法
mkdir newDir/	# 在当前路径创建一个空文件夹newDir/

7. rmdir:移除,删除文件夹remove directory

## rmdir用法
rmdir oldDir/	# 在当前路径删除oldDir文件夹及其子文件(夹)

8. chown:更改所有者change owner

chown 参数:
-R: 同-r,recursive

## chown用法
chown user -R myDir/	# 把文件夹myDir的所有者改成user

9. chmod:更改文件的权限模式change mode

文件权限模式针对三类对象:当前用户user(这里也是文件的所有者),组group,其他用户other。
文件权限有读Read,写Write,执行Execute。

chmod参数:
u: user,权限对象为当前用户(这里是所有者)
g:group,权限对象为所有者和组
o:other,权限对象为其他用户
r:read = 4,读权限
w:write = 2,写权限
e:execute = 1,执行权限
+:u/g/o与r/w/e组合使用,加入
-:删除
=:设置
4:仅读
5:仅读+执行
6:仅读+写
7:读+写+执行

## chmod用法
chmod 754 myDir/	# 当前用户(所有者)可读+写+执行,组group可读+执行,其他用户可读
chmod g+w myDir/	# 为组group添加写write权限
chmod -R 777 myDir/ # 给myDir/及其所有子目录添加所有权限
ls -n # 可以查看当前目录下各子目录的文件权限

10. find:查找

find 常用参数:
-name:根据文件名查找
-mtime n:n为数字,表示找出在n天前的当天被更改过的文件(0表示今天)
-mtime +n:查找在n天前(不包括n天当天)被改过的文件
-mtime -n:查找在n天之内(包括n天当天)被改过的文件
-size +/-:查找比XXsize大/小的文件

## find用法
find /home -name myFile		# 在/home目录下查找文件名为myFile的文件(注:myFile也可以搭配正则表达式使用)
find /home -name *.txt		# 在/home目录下查找以txt为后缀的文件
find /home -mtime 0			# 在/home目录下查找今天内被改过的文件
find /home -mtime +1		# 在/home目录下查找昨天之前(不包括昨天)被改过的文件
find /home -mtime -1		# 在/home目录下查找昨天至今(即昨天和今天)被改过的文件
find /home -size +100M		# 在/home目录下查找大于100MB的文件,注意c表示byte
find . -name "*.sv"         # 在当前目录及子目录下查找所有后缀为.sv的文件/文件夹
find . -name "*.svn" | xargs rm (可加-rf) # 在当前目录及子目录下查找所有后缀为.svn的文件/文件夹,并删除

11. |:管道

将前一个命令的输出结果像管道一样传递给后一个命令作为输入

## 管道|用法
ls | find -name myFile	# 列出当前路径的文件(夹)并查找名字为“myFile”的,打印出来

12. grep:按行查找并匹配

grep参数:
-r:recursive,查找所有子文件(夹)
-n:number,显示行号
-w:word,完整匹配整个单词
-i:insensitive search,忽略大小写
-l:显示文件名称,而非匹配到的行的内容
-v:反向选择,显示出没匹配到的行的内容

## grep用法
grep -i mystring file.txt	# 忽略大小写,在file.txt中查找并打印出有“mystring”的行
ls -l | grep -i mystring	# 在ls -l的输出中把有“mystring”的行打印出来(忽略大小写)

13. tar:打包,压缩,解压

tar常用参数
-jcv:压缩
-jxv:解压

## tar用法
tar -jcv myDir/		# 压缩myDir文件夹
tar -jxv DownloadDir.tar.gz myDir/	# 解压DownloadDir.tar.gz到当前文件夹下,并命令为myDir

14. cat:打印文件内容

## cat用法
cat myFile	# 显示myFile

15. ps:查看进程process select

ps 常用参数:
-A:显示所有进程
-a:不与terminal有关的所有进程
-u:有效用户的相关进程
-x:一般与-a一起用,列出完整的进程信息
-l:long,详细列出PID的信息

## ps用法
ps Aux 	# 查看系统所有的进程数据
ps ax	

16. kill:杀死进程

kill常用参数:
-SIGHUP:启动被终止的进程
-SIGINT:相当于ctrl+c,中断进程
-SIGKILL:强制中断进程
-SIGTERM:以正常的结束进程方式来终止进程
-SIGSTOP:相当于ctrl+z,暂停进程

## kill用法
kill -SIGKILL 10876	# 强制中断PID=10876的进程(PID可以通过ps查到,有时可以加上| grep进行筛选)

17. passwd:修改密码password

## passwd用法
passwd	# 修改当前用户的密码

18. pwd:显示工作目录print work directory

# pwd用法
pwd	# 显示当前路径的具体位置

19. tee:显示并保存

显示内容并将内容保存在文件中。

python3.6 test.py | tee result.log	# 运行test.py文件,显示编译与运行结果并保存成result.log文件

20. reboot:重启

## reboot用法
reboot	# 输完立马重启(记得保存文件)

其他命令

  1. alias 设置别名
alias cp='cp -i'  # 输入cp默认调用cp -i
alias rm='rm -i'
alias mv='mv -i'
  1. bg查看后端运行的进程 background
bg #会显示后端进程的号码
kill %1 #强制杀死1号进程
  1. touch创建新文件
touch new_file.txt # 创建一个new_file.txt文件
  1. du -h 打印文件/文件夹的大小
du -h #打印当前目录下所有子目录与子文件夹的大小
du -h --max-depth=0 #打印当前目录的大小
du -h --max-depth=1 #打印当前目录下所有子目录的大小 

有关Linux:20个linux常用命令的更多相关文章

  1. 华为常用命令 - 2

    system-view进入系统视图quit退到系统视图sysname交换机命名vlan20创建vlan(进入vlan20)displayvlan显示vlanundovlan20删除vlan20displayvlan20显示vlan里的端口20Interfacee1/0/24进入端口24portlink-typeaccessvlan20把当前端口放入vlan20undoporte1/0/10删除当前VLAN端口10displaycurrent-configuration显示当前配置02配置交换机支持TELNETinterfacevlan1进入VLAN1ipaddress192.168.3.100

  2. kvm虚拟机安装centos7基于ubuntu20.04系统 - 2

    需求:要创建虚拟机,就需要给他提供一个虚拟的磁盘,我们就在/opt目录下创建一个10G大小的raw格式的虚拟磁盘CentOS-7-x86_64.raw命令格式:qemu-imgcreate-f磁盘格式磁盘名称磁盘大小qemu-imgcreate-f磁盘格式-o?1.创建磁盘qemu-imgcreate-fraw/opt/CentOS-7-x86_64.raw10G执行效果#ls/opt/CentOS-7-x86_64.raw2.安装虚拟机使用virt-install命令,基于我们提供的系统镜像和虚拟磁盘来创建一个虚拟机,另外在创建虚拟机之前,提前打开vnc客户端,在创建虚拟机的时候,通过vnc

  3. Ubuntu20.04系统WineHQ7.0安装微信 - 2

    提供3种Ubuntu系统安装微信的方法,在Ubuntu20.04上验证都ok。1.WineHQ7.0安装微信:ubuntu20.04安装最新版微信--可以支持微信最新版,但是适配的不是特别好;比如WeChartOCR.exe报错。2.原生微信安装:linux系统下的微信安装(ubuntu20.04)--微信适配的最好,反应最快,但是微信版本只到2.1.1,版本太老,很多功能都没有。3.深度deepin-wine6安装微信:ubuntu20.04+系统deepin-wine6安装新版微信--综合比较好,当前个人使用此种方法1个月,微信版本3.4;没什么大问题,尚可。一、WineHQ7.0安装微信

  4. 【Linux操作系统】——网络配置与SSH远程 - 2

    Linux操作系统——网络配置与SSH远程安装完VMware与系统后,需要进行网络配置。第一个目标为进行SSH连接,可以从本机到VMware进行文件传送,首先需要进行网络配置。1.下载远程软件首先需要先下载安装一款远程软件:FinalShell或者xhell7FinalShellxhell7FinalShell下载:Windows下载http://www.hostbuf.com/downloads/finalshell_install.exemacOS下载http://www.hostbuf.com/downloads/finalshell_install.pkg2.配置CentOS网络安装好

  5. Linux磁盘分区中物理卷(PV)、卷组(VG)、逻辑卷(LV)创建和(LVM)管理 - 2

    文章目录一基础定义二创建逻辑卷2-1准备物理设备2-2创建物理卷2-3创建卷组2-4创建逻辑卷2-5创建文件系统并挂载文件三扩展卷组和缩减卷组3-1准备物理设备3-2创建物理卷3-3扩展卷组3-4查看卷组的详细信息以验证3-5缩减卷组四扩展逻辑卷4-1检查卷组是否有可用的空间4-2扩展逻辑卷4-3扩展文件系统五删除逻辑卷5-1备份数据5-2卸载文件系统5-3删除逻辑卷5-4删除卷组5-5删除物理卷六LVM逻辑卷缩容6-1缩容注意事项6-2标准缩容步骤一基础定义LVM,LogicalVolumeManger,逻辑卷管理,Linux磁盘分区管理的一种机制,建立在硬盘和分区上的一个逻辑层,提高磁盘分

  6. ruby - 如何在 Ruby 中获取 linux 系统信息 - 2

    如何在Ruby中获取linux系统(这必须适用于Fedora、Ubuntu等)的软件/硬件信息? 最佳答案 Chef背后的优秀人才,拥有一颗名为Ohai的优秀gemhttps://github.com/opscode/ohai以散列形式返回系统信息,例如操作系统、内核、规范、fqdn、磁盘、空间、内存、用户、接口(interface)、sshkey等。它非常完整,非常好。它还会安装命令行二进制文件(也称为ohai)。 关于ruby-如何在Ruby中获取linux系统信息,我们在Stack

  7. ruby - rbenv:在 Linux Mint 上找不到 gem 命令 - 2

    我在LinuxMint17.2上。我最近使用apt-getpurgeruby​​删除了ruby​​。然后我安装了rbenv然后rbenvinstall2.3.0所以现在,~/.rbenv/versions/2.3.0/bin/ruby存在。但是现在,我无法执行geminstallrubocop。我明白了:$geminstallrubocoprbenv:gem:commandnotfoundThe`gem'commandexistsintheseRubyversions:2.3.0但是我可以~/.rbenv/versions/2.3.0/bin/geminstallrubocop。但是,

  8. ruby - 在 Linux 上编译 Ruby 1.9.2 所需的先决条件? - 2

    我是Ruby和RoR的新手。我有一个带有Ubuntu镜像的干净Linode实例,我想从源代码编译Ruby而不是使用apt-get。我已经在谷歌上搜索了执行此操作的说明,但经过一些尝试后,当我尝试运行一些教程示例时,我不断收到有关缺少zlib和其他一些包的错误。任何人都可以给我详细的说明(或链接),教我如何在从源代码编译Ruby之前安装必要的必备包吗?我的目的是编译Ruby的最新稳定版本,然后安装Rubygems和Rails。提前感谢您的帮助!!! 最佳答案 Thisblogpost涵盖从源代码编译ruby​​所需的包和安装过程;它引

  9. ruby-on-rails - encode_www_form 将空格转换为 + 而不是 %20 - 2

    我正在尝试从使用RubyonRails的散列创建http参数,我尝试使用URI.encode_www_form(params),但这没有正确生成参数。下面是我的哈希值params['Name'.to_sym]='NiaKun'params['AddressLine1'.to_sym]='AddressOne'params['City'.to_sym]='CityName'这个方法把空格转成+,我要的是把空格转成%20我收到"Name=Nia+Kun&AddressLine1=Address+One&City=City+Name"但我需要将此空格转换为%20

  10. Linux网络编程必备的POSIX API的细节 - 2

    目录POSIXAPI大集合五元组三次握手的过程,内核协议栈分析listen函数DDOS攻击,洪水攻击DDOS攻击的应对措施数据发送 怎么保证顺序?如何保证包地顺序到达(序号+确认应答机制+重传)TCP断开连接的过程问题1.大量的CLOSE_WAIT+FIN_WAIT2是为啥?time_wait状态存在的原因?POSIXAPI大集合五元组(sip,sport,dip,dport,protocol)三次握手的过程,内核协议栈分析内核协议栈中是有内核数据结构的.  我们send/write数据,都是先发送到内核协议栈中,然后由内核协议栈封装发送到物理介质中传输到对端的对端的接收过程也是经有内核协议栈

随机推荐