翼度科技»论坛 云主机 LINUX 查看内容

Linux 操作命令

9

主题

9

帖子

27

积分

新手上路

Rank: 1

积分
27
路是脚踏出来的,历史是人写出来的。人的每一步行动都在书写自己的历史。
Linux 基础命令


  • open:打开文件操作,如环境配置文件。
    1. open ~/.zshrc
    复制代码
  • vi:vi (visual interface), linux 中最经典的文本编辑器 vim(vi improved)是 vi 发展出来的一个文本编辑器,支持代码补全、编译、错误跳转等方便编程的功能非常丰富。
    1. vim /etc/hosts
    复制代码
  • echo:输出、查看相关常量值,打印一个值。
    1. # 查看当前系统正在使用的 shell
    2. echo $SHELL
    3. # 查看当前进程正在使用的 shell
    4. echo $0
    复制代码
  • cat / more / less:获取输出文件里的相关内容。cat 是一次性显示整个文件的内容,more 和 less一般用于显示文件内容超过一屏的内容,并且提供翻页(空格)、单行加载(回车键)的功能。more  比 cat 强大,提供分页显示的功能,less 比 more 更强大,提供翻页,跳转,查找等命令。而且 more 和 less 都支持:用空格显示下一页,按键 B 显示上一页。
    1. # 查看系统 hosts 文件内容
    2. more /etc/hosts
    3. # 查看当前系统支持的 shell 程序
    4. cat /etc/shells
    复制代码
  • touch:创建文件。
    1. touch Profile
    复制代码
  • mkdir:创建文件夹。参数 -p 确保目录名称存在,如果目录不存在的就新创建一个。
    1. # 若不加 -p,且原本 File 目录不存在,则产生错误。
    2. mkdir -p File/Test
    复制代码
  • rm -f *:清空文件夹内部文件。
  • sudo:Linux sudo 命令以系统管理者的身份执行指令。
    1. # vim 编辑器编辑 hosts 文件
    2. sudo vi /etc/hosts
    复制代码
  • env:查看当前所有环境变量。
  • chsh -s /bin/bash:修改当前系统使用的Shell程序。
  • where:查找安装包所在位置。
    1. where brew
    复制代码
  • cp:指令是用于复制文件或目录的指令,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到此目录中。
Linux 重定向

重定向理解:
shell 重定向包含输出重定向和输入重定向。何为输入输出方向?何为标准输入输出方向?
标准输入方向:从键盘读取用户输入的数据,然后再把数据拿到程序(C语言程序、Shell 脚本程序等)中使用;这就是标准的输入方向,也就是从键盘到程序。
标准输出方向:相反,程序运行产生的数据一般都是直接呈现到显示器上,这就是标准的输出方向,也就是从程序到显示器。
其实,输入输出方向就是数据流动的方向,那么输入重定向就是改变程序数据的来源的。输出重定向就是改变程序输出屏幕到其他地方。
硬件设备和文件描述符:
计算机硬件有很多,常见的输入设备有键盘、鼠标、麦克风、手写板等,输出设备有显示器、投影仪、打印机等。不过,在 Linux 中,标准输入设备指的是键盘,标准输出设备指的是显示器。
同时,Linux 中一切皆文件,包括标准输入设备(键盘)和标准输出设备(显示器)在内的所有计算机硬件都是文件,为了表示和区分已经打开的文件,Linux 会给每个文件分配一个 ID,这个 ID 就是一个整数,被称为文件描述符(File Descriptor)。
文件描述符文件名类型硬件0stdin标准输入键盘1stdout标准输出显示器2stderr标准错误输出显示器Linux 程序在执行任何形式的 I/O 操作时,都是在读取或者写入一个文件描述符。一个文件描述符只是一个和打开的文件相关联的整数,它的背后可能是一个硬盘上的普通文件、FIFO、管道、终端、键盘、显示器,甚至是一个网络连接。
Shell 输出重定向:
类 型符 号作 用标准输出重定向命令 > 文件以覆盖的方式,把命令的正确输出结果输出到指定的文件或设备中。命令 >> 文件以追加的方式,把命令的正确输出结果输出到指定的文件或设备中。标准错误输出重定向命令 2> 文件以覆盖的方式,把命令的错误信息输出到指定的文件或设备中。命令 2>> 文件以追加的方式,把命令的错误信息输出到指定的文件或设备中。正确输出和错误信息同时保存命令 > 文件 2> &1以覆盖的方式,把正确输出和错误信息同时保存到同一个文件中。命令 >> 文件 2> &1以追加的方式,把正确输出和错误信息同时保存到同一个文件中。命令 &> 文件以覆盖的方式,把正确输出和错误信息同时保存到同一个文件中。命令 &>> 文件以追加的方式,把正确输出和错误信息同时保存到同一个文件中。命令 >> 文件1 2>> 文件2把正确的输出追加到文件1中,把错误信息追加到文件2中。在输出重定向中,>代表的是覆盖,>> 代表的是追加。注意,在类似 命令 2> 文件这样的写法中,2 是文件描述符,它对应的是 stderr。
对于重定向中的标准输出文件,可以省略文件描述符 1 不写,而标准错误输出文件,必须要写上文件描述如 2。如果你愿意,也可以将 命令 > 文件 写作 命令 1> 文件,但这样做是多此一举。
另外还要注意,2 和 > 之间不能有空格,也就是说,不能将 命令 2> 文件 写作 命令 2 > 文件。
Shell 输入重定向:
输入重定向就是改变输入的方向,不再使用键盘作为命令输入的来源,而是使用文件作为命令的输入。
符号说明命令 < 文件将指定的文件作为命令的输入。命令  文件2将文件1作为命令的输入,并将命令的处理结果输出到文件2。示例:
  1. # 统计文件中有多少行文本:readme.txt
  2. $ cat readme.txt  # 预览一下文件内容
  3. $ wc -l < readme.txt  # 输入重定向
复制代码
我们使用输入重定向符号  789> qwe> END4# wc 命令会一直等待用输入,直到遇见分界符 END 才结束读取[/code]diff 命令解析

diff 是文件及目录对比命令,具体解析应用如下,其 shell 中 $? 是一个特殊的 shell 变量,用于存储上一个命令的执行状态。当一个 shell 命令执行完毕后,它会返回一个状态值,表示该命令执行的结果。
  1. $ wc -l << END
  2. > 123
  3. > 456
  4. > 789
  5. > qwe
  6. > END
  7. 4
  8. # wc 命令会一直等待用输入,直到遇见分界符 END 才结束读取
复制代码
Shell 中条件判断
  1. # diff 对比文件内容是否一致 > /dev/null 代表把 diff 的输出重定向到 null,不会在终端显示。
  2. diff "${PODS_PODFILE_DIR_PATH}/Podfile.lock" "${PODS_ROOT}/Manifest.lock" > /dev/null
  3. # $? 代表上一句命令,也就是 diff 命令的返回值。如果是0,说明文件内容相同。不是 0 说明文件内容不一致。
  4. if [ $? != 0 ] ; then
  5.     # print error to STDERR
  6.     echo "error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation." >&2
  7.     exit 1
  8. fi
  9. # This output is used by Xcode 'outputs' to avoid re-running this script phase.
  10. echo "SUCCESS" > "${SCRIPT_OUTPUT_FILE_0}"
复制代码
来源:https://www.cnblogs.com/hubert-style/p/17928141.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!
来自手机

举报 回复 使用道具