草庐IT

Linux基础命令一

tushanbu 2023-03-28 原文

Linux基础一


基础命令

ls
ls //查看目录

[root@lnh ~]# mkdir xbz
[root@lnh ~]# touch {1..5}
[root@lnh ~]# ls  
1  2  3  4  5  anaconda-ks.cfg  xbz
//先创建目录和文件再查看

-l 查看文件类型

[root@lnh ~]# ls -l
total 4
-rw-r--r--. 1 root root    0 Jun 29 19:33 1
-rw-r--r--. 1 root root    0 Jun 29 19:33 2
-rw-r--r--. 1 root root    0 Jun 29 19:33 3
-rw-r--r--. 1 root root    0 Jun 29 19:33 4
-rw-r--r--. 1 root root    0 Jun 29 19:33 5
-rw-------. 1 root root 1003 Jun 28 04:46 anaconda-ks.cfg
drwxr-xr-x. 2 root root    6 Jun 29 19:16 xbz
   //先创建数字1-5,可以看出它们是普通文件,xbz是目录文件
 b //块设备文件(block)
 c //字符设备文件(character)
 l //符号链接文件(symbolic link file)
 p //命令管道(pipe)
 s //套接字文件(socket)

-h//查看单位的大小

[root@lnh ~]# ls -lh
total 4.0K
-rw-r--r--. 1 root root    0 Jun 29 19:33 1
-rw-r--r--. 1 root root    0 Jun 29 19:33 2
-rw-r--r--. 1 root root    0 Jun 29 19:33 3
-rw-r--r--. 1 root root    0 Jun 29 19:33 4
-rw-r--r--. 1 root root    0 Jun 29 19:33 5
-rw-------. 1 root root 1003 Jun 28 04:46 anaconda-ks.cfg
drwxr-xr-x. 2 root root    6 Jun 29 19:16 xbz

-a//显示以.开头的为隐藏文件

[root@lnh ~]# ls -a
.   2  5                .bash_logout   .cshrc    xbz
..  3  anaconda-ks.cfg  .bash_profile  .tcshrc
1   4  .bash_history    .bashrc        .viminfo
//.表示当前目录
//..表示父目录

-d//查看文件的属性

[root@lnh ~]# ls -ld xbz
drwxr-xr-x. 2 root root 51 Jun 29 20:20 xbz

-i//显示在内存或者硬盘中的位置

[root@lnh ~]# ls -li xbz
total 0
134646511 -rw-r--r--. 1 root root 0 Jun 29 20:20 1
134646521 -rw-r--r--. 1 root root 0 Jun 29 20:20 2
134849103 -rw-r--r--. 1 root root 0 Jun 29 20:20 3
134849109 -rw-r--r--. 1 root root 0 Jun 29 20:20 4
134849110 -rw-r--r--. 1 root root 0 Jun 29 20:20 5

-r//将目录和文件创建的时间进行倒置

[root@lnh ~]# ls -lt
total 4
drwxr-xr-x. 2 root root   51 Jun 29 20:20 xbz
-rw-r--r--. 1 root root    0 Jun 29 19:33 1
-rw-r--r--. 1 root root    0 Jun 29 19:33 2
-rw-r--r--. 1 root root    0 Jun 29 19:33 3
-rw-r--r--. 1 root root    0 Jun 29 19:33 4
-rw-r--r--. 1 root root    0 Jun 29 19:33 5
-rw-------. 1 root root 1003 Jun 28 04:46 anaconda-ks.cfg
[root@lnh ~]# ls -lrt
total 4
-rw-------. 1 root root 1003 Jun 28 04:46 anaconda-ks.cfg
-rw-r--r--. 1 root root    0 Jun 29 19:33 5
-rw-r--r--. 1 root root    0 Jun 29 19:33 4
-rw-r--r--. 1 root root    0 Jun 29 19:33 3
-rw-r--r--. 1 root root    0 Jun 29 19:33 2
-rw-r--r--. 1 root root    0 Jun 29 19:33 1
drwxr-xr-x. 2 root root   51 Jun 29 20:20 xbz
[root@lnh ~]# ll -t
total 4
drwxr-xr-x. 2 root root   51 Jun 29 20:20 xbz
-rw-r--r--. 1 root root    0 Jun 29 19:33 1
-rw-r--r--. 1 root root    0 Jun 29 19:33 2
-rw-r--r--. 1 root root    0 Jun 29 19:33 3
-rw-r--r--. 1 root root    0 Jun 29 19:33 4
-rw-r--r--. 1 root root    0 Jun 29 19:33 5
-rw-------. 1 root root 1003 Jun 28 04:46 anaconda-ks.cfg
[root@lnh ~]# ll -rt
total 4
-rw-------. 1 root root 1003 Jun 28 04:46 anaconda-ks.cfg
-rw-r--r--. 1 root root    0 Jun 29 19:33 5
-rw-r--r--. 1 root root    0 Jun 29 19:33 4
-rw-r--r--. 1 root root    0 Jun 29 19:33 3
-rw-r--r--. 1 root root    0 Jun 29 19:33 2
-rw-r--r--. 1 root root    0 Jun 29 19:33 1
drwxr-xr-x. 2 root root   51 Jun 29 20:20 xbz

-R//展开所有目录的文件

[root@lnh ~]# ls -lR
.:
total 4
-rw-r--r--. 1 root root    0 Jun 29 19:33 1
-rw-r--r--. 1 root root    0 Jun 29 19:33 2
-rw-r--r--. 1 root root    0 Jun 29 19:33 3
-rw-r--r--. 1 root root    0 Jun 29 19:33 4
-rw-r--r--. 1 root root    0 Jun 29 19:33 5
-rw-------. 1 root root 1003 Jun 28 04:46 anaconda-ks.cfg
drwxr-xr-x. 2 root root   51 Jun 29 20:20 xbz

./xbz:
total 0
-rw-r--r--. 1 root root 0 Jun 29 20:20 1
-rw-r--r--. 1 root root 0 Jun 29 20:20 2
-rw-r--r--. 1 root root 0 Jun 29 20:20 3
-rw-r--r--. 1 root root 0 Jun 29 20:20 4
-rw-r--r--. 1 root root 0 Jun 29 20:20 5
[root@lnh ~]# ll -R
.:
total 4
-rw-r--r--. 1 root root    0 Jun 29 19:33 1
-rw-r--r--. 1 root root    0 Jun 29 19:33 2
-rw-r--r--. 1 root root    0 Jun 29 19:33 3
-rw-r--r--. 1 root root    0 Jun 29 19:33 4
-rw-r--r--. 1 root root    0 Jun 29 19:33 5
-rw-------. 1 root root 1003 Jun 28 04:46 anaconda-ks.cfg
drwxr-xr-x. 2 root root   51 Jun 29 20:20 xbz

./xbz:
total 0
-rw-r--r--. 1 root root 0 Jun 29 20:20 1
-rw-r--r--. 1 root root 0 Jun 29 20:20 2
-rw-r--r--. 1 root root 0 Jun 29 20:20 3
-rw-r--r--. 1 root root 0 Jun 29 20:20 4
-rw-r--r--. 1 root root 0 Jun 29 20:20 5

cd//相当于改变当前目录

[root@lnh tushanbu]# cd .
[root@lnh tushanbu]# cd ..
[root@lnh ~]# cd tushanbu/
[root@lnh tushanbu]# cd ~
[root@lnh ~]# cd tushanbu/
[root@lnh tushanbu]# cd /root/
[root@lnh ~]# 
//.表示当前目录
//..表示返回上一级目录
//~表示返回家目录
///root表示返回管理员用户

pwd//表示当前的工作目录

[root@lnh ~]# pwd
/root
//表示当前在管理员用户下面

mkdir//创建目录
-p//确保目录名称存在,不存在的就建一个

[root@lnh ~]# mkdir -p bbb/bb
[root@lnh ~]# ll
total 4
-rw-r--r--. 1 root root    0 Jun 29 19:33 1
-rw-r--r--. 1 root root    0 Jun 29 19:33 2
-rw-r--r--. 1 root root    0 Jun 29 19:33 3
-rw-r--r--. 1 root root    0 Jun 29 19:33 4
-rw-r--r--. 1 root root    0 Jun 29 19:33 5
-rw-------. 1 root root 1003 Jun 28 04:46 anaconda-ks.cfg
drwxr-xr-x. 3 root root   16 Jun 29 21:06 bbb
drwxr-xr-x. 2 root root   39 Jun 29 20:42 tushanbu
drwxr-xr-x. 2 root root   51 Jun 29 20:20 xbz
drwxr-xr-x. 2 root root    6 Jun 29 21:02 xxx
drwxr-xr-x. 2 root root    6 Jun 29 21:03 yyy

-v//为每个创建的目录打印一条消息

[root@lnh ~]# mkdir -pv b
[root@lnh ~]# ll
total 4
-rw-r--r--. 1 root root    0 Jun 29 19:33 1
-rw-r--r--. 1 root root    0 Jun 29 19:33 2
-rw-r--r--. 1 root root    0 Jun 29 19:33 3
-rw-r--r--. 1 root root    0 Jun 29 19:33 4
-rw-r--r--. 1 root root    0 Jun 29 19:33 5
drwxr-xr-x. 2 root root    6 Jun 29 21:15 a
-rw-------. 1 root root 1003 Jun 28 04:46 anaconda-ks.cfg
drwxr-xr-x. 2 root root    6 Jun 29 21:15 b
drwxr-xr-x. 2 root root    6 Jun 29 21:15 bb
drwxr-xr-x. 3 root root   16 Jun 29 21:06 bbb
drwxr-xr-x. 2 root root   39 Jun 29 20:42 tushanbu
drwxr-xr-x. 2 root root   51 Jun 29 20:20 xbz
drwxr-xr-x. 2 root root    6 Jun 29 21:02 xxx
drwxr-xr-x. 2 root root    6 Jun 29 21:03 yyy

rmdir //删除目录,只能删除空目录,里面有东西就删除不了
tree //可以查看生成树目录

[root@lnh ~]#  mkdir -p 111/{222/{xx,hh},777,888/bb}
[root@lnh ~]# tree
.
├── 1
├── 10
├── 111
│   ├── 222
│   │   ├── hh
│   │   └── xx
│   ├── 777
│   └── 888
│       └── bb

touch//创建文件

[root@lnh ~]# touch {1..10}
[root@lnh ~]# ls
1   2  4  6  8  a                b   bbb       xbz  yyy
10  3  5  7  9  anaconda-ks.cfg  bb  tushanbu  xxx

stat //显示文件或者系统状态

[root@lnh ~]# stat xbz
  File: xbz
  Size: 51        	Blocks: 0          IO Block: 4096   directory
Device: fd00h/64768d	Inode: 134646507   Links: 2
Access: (0755/drwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Context: unconfined_u:object_r:admin_home_t:s0
Access: 2022-06-29 20:20:34.414333304 +0800
Modify: 2022-06-29 20:20:33.266333285 +0800
Change: 2022-06-29 20:20:33.266333285 +0800
 Birth: -

rm //删除文件
-r //删除目录
-f //删除文件,强制性删除

[root@lnh ~]# rm -rf 111
[root@lnh ~]# rm -f {1..10}
[root@lnh ~]# ls
222  a  anaconda-ks.cfg  b  bb  bbb  tushanbu  xbz  xxx  yyy

cp //复制文件
-a //复制备份
-r //用于目录之间的复制
-p//复制后保留原来的权限

[root@lnh ~]# cp -a a 222
[root@lnh ~]# cd 222/
[root@lnh 222]# ls
a
[root@lnh 222]# cd ..
[root@lnh ~]# cp -r bb xbz
[root@lnh ~]# cd xbz/
[root@lnh xbz]# ls
1  2  3  4  5  bb
[root@lnh xbz]# cd ..
[root@lnh ~]# ll
total 4
drwxr-xr-x. 3 root root   15 Jun 29 21:55 222
drwxr-xr-x. 2 root root    6 Jun 29 21:15 a
-rw-------. 1 root root 1003 Jun 28 04:46 anaconda-ks.cfg
drwxr-xr-x. 2 root root    6 Jun 29 21:15 b
drwxr-xr-x. 2 root root    6 Jun 29 21:15 bb
drwxr-xr-x. 3 root root   16 Jun 29 21:06 bbb
drwxr-xr-x. 2 root root   39 Jun 29 20:42 tushanbu
drwxr-xr-x. 3 root root   61 Jun 29 21:56 xbz
drwxr-xr-x. 2 root root    6 Jun 29 21:02 xxx
drwxr-xr-x. 2 root root    6 Jun 29 21:03 yyy
[root@lnh ~]# cp -rp b xbz
[root@lnh ~]# cd xbz/
[root@lnh xbz]# ll
total 0
-rw-r--r--. 1 root root 0 Jun 29 20:20 1
-rw-r--r--. 1 root root 0 Jun 29 20:20 2
-rw-r--r--. 1 root root 0 Jun 29 20:20 3
-rw-r--r--. 1 root root 0 Jun 29 20:20 4
-rw-r--r--. 1 root root 0 Jun 29 20:20 5
drwxr-xr-x. 2 root root 6 Jun 29 21:15 b
drwxr-xr-x. 2 root root 6 Jun 29 21:56 bb

mv //移动文件

[root@lnh ~]# mv 222 xbz/
[root@lnh ~]# cd xbz/
[root@lnh xbz]# ls
1  2  222  3  4  5  b  bb

install//可复制文件并且带有属性

[root@lnh ~]# touch 333
[root@lnh ~]# touch 444
[root@lnh ~]# ls
333  444  a  anaconda-ks.cfg  b  bb  bbb  tushanbu  xbz  xxx  yyy
[root@lnh ~]# ll
total 4
-rw-r--r--. 1 root root    0 Jun 29 22:05 333
-rw-r--r--. 1 root root    0 Jun 29 22:05 444
drwxr-xr-x. 2 root root    6 Jun 29 21:15 a
-rw-------. 1 root root 1003 Jun 28 04:46 anaconda-ks.cfg
drwxr-xr-x. 2 root root    6 Jun 29 21:15 b
drwxr-xr-x. 2 root root    6 Jun 29 21:15 bb
drwxr-xr-x. 3 root root   16 Jun 29 21:06 bbb
drwxr-xr-x. 2 root root   39 Jun 29 20:42 tushanbu
drwxr-xr-x. 5 root root   81 Jun 29 22:00 xbz
drwxr-xr-x. 2 root root    6 Jun 29 21:02 xxx
drwxr-xr-x. 2 root root    6 Jun 29 21:03 yyy
[root@lnh ~]# install 333 444
[root@lnh ~]# ll
total 4
-rw-r--r--. 1 root root    0 Jun 29 22:05 333
-rwxr-xr-x. 1 root root    0 Jun 29 22:06 444
drwxr-xr-x. 2 root root    6 Jun 29 21:15 a
-rw-------. 1 root root 1003 Jun 28 04:46 anaconda-ks.cfg
drwxr-xr-x. 2 root root    6 Jun 29 21:15 b
drwxr-xr-x. 2 root root    6 Jun 29 21:15 bb
drwxr-xr-x. 3 root root   16 Jun 29 21:06 bbb
drwxr-xr-x. 2 root root   39 Jun 29 20:42 tushanbu
drwxr-xr-x. 5 root root   81 Jun 29 22:00 xbz
drwxr-xr-x. 2 root root    6 Jun 29 21:02 xxx
drwxr-xr-x. 2 root root    6 Jun 29 21:03 yyy

硬链接/软链接

[root@lnh ~]# mkdir tushanbu
[root@lnh ~]# cd tushanbu/
[root@lnh tushanbu]# touch 333
[root@lnh tushanbu]# ll
total 0
-rw-r--r--. 1 root root 0 Jun 29 20:37 333
[root@lnh tushanbu]# ln -s 333 444//创建一个软链接,333被创建成为了444,此时444指向333
[root@lnh tushanbu]# ls
333  444
[root@lnh tushanbu]# ll
total 0
-rw-r--r--. 1 root root 0 Jun 29 20:37 333
lrwxrwxrwx. 1 root root 3 Jun 29 20:38 444 -> 333
//此处删除333(相当于电脑的软件),444(相当于软件的快捷方式)会变成一闪一闪不能使用,如果恢复333,444可以继续使用
[root@lnh tushanbu]# ln 333 555
[root@lnh tushanbu]# ll
total 0
-rw-r--r--. 2 root root 0 Jun 29 20:37 333
lrwxrwxrwx. 1 root root 3 Jun 29 20:38 444 -> 333
-rw-r--r--. 2 root root 0 Jun 29 20:37 555
//可以看见333那里的数字1变成了2相当于被调用了两次

有关Linux基础命令一的更多相关文章

  1. ruby - 在 Ruby 中编写命令行实用程序 - 2

    我想用ruby​​编写一个小的命令行实用程序并将其作为gem分发。我知道安装后,Guard、Sass和Thor等某些gem可以从命令行自行运行。为了让gem像二进制文件一样可用,我需要在我的gemspec中指定什么。 最佳答案 Gem::Specification.newdo|s|...s.executable='name_of_executable'...endhttp://docs.rubygems.org/read/chapter/20 关于ruby-在Ruby中编写命令行实用程序

  2. postman接口测试工具-基础使用教程 - 2

    1.postman介绍Postman一款非常流行的API调试工具。其实,开发人员用的更多。因为测试人员做接口测试会有更多选择,例如Jmeter、soapUI等。不过,对于开发过程中去调试接口,Postman确实足够的简单方便,而且功能强大。2.下载安装官网地址:https://www.postman.com/下载完成后双击安装吧,安装过程极其简单,无需任何操作3.使用教程这里以百度为例,工具使用简单,填写URL地址即可发送请求,在下方查看响应结果和响应状态码常用方法都有支持请求方法:getpostputdeleteGet、Post、Put与Delete的作用get:请求方法一般是用于数据查询,

  3. ruby-on-rails - rbenv:从 RVM 移动到 rbenv 后,在 Jenkins 执行 shell 中找不到命令 - 2

    我从Ubuntu服务器上的RVM转移到rbenv。当我使用RVM时,使用bundle没有问题。转移到rbenv后,我在Jenkins的执行shell中收到“找不到命令”错误。我内爆并删除了RVM,并从~/.bashrc'中删除了所有与RVM相关的行。使用后我仍然收到此错误:rvmimploderm~/.rvm-rfrm~/.rvmrcgeminstallbundlerecho'exportPATH="$HOME/.rbenv/bin:$PATH"'>>~/.bashrcecho'eval"$(rbenvinit-)"'>>~/.bashrc.~/.bashrcrbenvversions

  4. 软件测试基础 - 2

    Ⅰ软件测试基础一、软件测试基础理论1、软件测试的必要性所有的产品或者服务上线都需要测试2、测试的发展过程3、什么是软件测试找bug,发现缺陷4、测试的定义使用人工或自动的手段来运行或者测试某个系统的过程。目的在于检测它是否满足规定的需求。弄清预期结果和实际结果的差别。5、测试的目的以最小的人力、物力和时间找出软件中潜在的错误和缺陷6、测试的原则28原则:20%的主要功能要重点测(eg:支付宝的支付功能,其他功能都是次要的)80%的错误存在于20%的代码中7、测试标准8、测试的基本要求功能测试性能测试安全性测试兼容性测试易用性测试外观界面测试可靠性测试二、质量模型衡量一个优秀软件的维度①功能性功

  5. ES基础入门 - 2

    ES一、简介1、ElasticStackES技术栈:ElasticSearch:存数据+搜索;QL;Kibana:Web可视化平台,分析。LogStash:日志收集,Log4j:产生日志;log.info(xxx)。。。。使用场景:metrics:指标监控…2、基本概念Index(索引)动词:保存(插入)名词:类似MySQL数据库,给数据Type(类型)已废弃,以前类似MySQL的表现在用索引对数据分类Document(文档)真正要保存的一个JSON数据{name:"tcx"}二、入门实战{"name":"DESKTOP-1TSVGKG","cluster_name":"elasticsear

  6. ruby - 从 Ruby : capturing the output while displaying the output? 运行 shell 命令 - 2

    我有一个问题。我想从另一个ruby​​脚本运行一个ruby​​脚本并捕获它的输出信息,同时让它也输出到屏幕。亚军#!/usr/bin/envrubyprint"Enteryourpassword:"password=gets.chompputs"Hereisyourpassword:#{password}"我运行的脚本文件:开始.rboutput=`runner`putsoutput.match(/Hereisyour(password:.*)/).captures[0].to_s正如您在此处看到的那样,存在问题。在start.rb的第一行,屏幕是空的。我在运行程序中看不到“输入您的密

  7. ruby - 是否有将图像文件转换为 ASCII 艺术的命令行程序或库? - 2

    有这样的事吗?我想在Ruby程序中使用它。 最佳答案 试试这个http://csl.sublevel3.org/jp2a/此外,Imagemagick可能还有一些东西 关于ruby-是否有将图像文件转换为ASCII艺术的命令行程序或库?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/6510445/

  8. ruby - 在 Ruby 的 if 语句中检查 bash 命令 - 2

    如何在Ruby的if语句中检查bash命令的返回值(true/false)。我想要这样的东西,if("/usr/bin/fswscell>/dev/null2>&1")has_afs="true"elsehas_afs="false"end它会提示以下错误含义,它总是返回true。(irb):5:warning:stringliteralincondition正确的语法是什么?更新:/usr/bin/fswscell寻找afs安装和运行状态。它会抛出这样的字符串,Thisworkstationbelongstocell如果afs没有运行,命令以状态1退出 最

  9. ruby - 可以正常中断的来自 Rake 的长时间运行的 shell 命令? - 2

    在几个项目中,我希望有一个类似rakeserver的rake任务,它将通过任何需要的方式开始为该应用程序提供服务。这是一个示例:task:serverdo%x{bundleexecrackup-p1234}end这行得通,但是当我准备停止它时,按Ctrl+c并没有正常关闭;它中断了Rake任务本身,它说rakeaborted!并给出堆栈跟踪。在某些情况下,我必须执行Ctrl+c两次。我可能可以用Signal.trap写一些东西来更优雅地中断它。有没有更简单的方法? 最佳答案 trap('SIGINT'){puts"Yourmessa

  10. ruby - Capistrano 中的执行、测试和捕获命令有什么区别? - 2

    关于SSHkit-Github它说:Allbackendssupporttheexecute(*args),test(*args)&capture(*args)来自SSHkit-Rubydoc,我明白execute实际上是test的别名?test之间有什么区别?,execute,capture在Capistrano/SSHKit中我应该什么时候使用? 最佳答案 执行只是执行命令。使用非0退出引发错误。测试方法的行为与execute完全相同,但是它返回bool值(true如果命令以0退出,而false否则)。它通常用于控制任务中的流程

随机推荐