shell命令

1 内部命令和外部命令

使用 type 命令查询:

ding@ding-ubuntu:~$ type cd
cd 是 shell 内建
ding@ding-ubuntu:~$ type man
man 是 /usr/bin/man
ding@ding-ubuntu:~$ type ls
ls 是 `ls --color=auto' 的别名
ding@ding-ubuntu:~$ 

2 命令帮助查询

1 help 命令(内部命令用法:help 命令          外部命令用法:命令 --help)

help 命令是用于显示 shell 内建命令的简要帮助信息,如下所示:

ding@ding-ubuntu:~$ help pwd
pwd: pwd [-LP]打印当前工作目录的名字。选项:-L  打印 $PWD 变量的值,如果它包含了当前的工作目录-P 打印当前的物理路径,不带有任何的符号链接默认情况下,`pwd' 的行为和带 `-L' 选项一致退出状态:除非使用了无效选项或者当前目录不可读,否则返回状态为0。

外部命令的 help:外部命令基本上都有一个参数 --help,通过这个参数可以得到相应的帮助

ding@ding-ubuntu:~$ man --help
用法: man [选项...] [章节] 手册页...-C, --config-file=文件   使用该用户设置文件-d, --debug                输出调试信息-D, --default              将所有选项都重置为默认值--warnings[=警告]    开启 groff 的警告主要运行模式:-f, --whatis               等同于 whatis-k, --apropos              等同于 apropos-K, --global-apropos       在所有页面中搜索文字-l, --local-file把“手册页”参数当成本地文件名来解读-w, --where, --path, --location输出手册页的物理位置-W, --where-cat, --location-cat输出 cat 文件的物理位置-c, --catman               由 catman 使用,用来对过时的 cat页重新排版-R, --recode=编码        以指定编码输出手册页源码

2 man 命令(外部命令 + 部分内部命令),查询 Linux 系统中在线软件文档

ding@ding-ubuntu:~$ man ls
ding@ding-ubuntu:~$ man man

3 info 命令 (来自自由软件基金会的 GNU 项目,是 GNU 的超文本帮助系统)

ding@ding-ubuntu:~$ info man
ding@ding-ubuntu:~$ info ls

3 常用命令

sudo:su为超级用户(super),sudo = su + do,就是以超级用户运行;

ls:查看目录信息;

ding@ding-ubuntu:~$ ls -a
ding@ding-ubuntu:~$ ls -al// 命令帮助
ding@ding-ubuntu:~$ man lsNAMEls - list directory contentsSYNOPSISls [OPTION]... [FILE]...-a, --alldo not ignore entries starting with .     // 不忽略以 .开头的条目-A, --almost-alldo not list implied . and ..              // 不列出隐藏项 .和..--authorwith -l, print the author of each file    // 打印每个文件的作者-l     use a long listing format                 // 使用长列表格式

cd:目录切换(进入路径)

ding@ding-ubuntu:~$ cd /
ding@ding-ubuntu:/$ cd /home/ding/// 命令帮助
ding@ding-ubuntu:~$ help cd
cd: cd [-L|[-P [-e]] [-@]] [目录]改变 shell 工作目录。改变当前目录至 DIR 目录。默认的 DIR 目录是 shell 变量 HOME 的值。

pwd:显示当前路径

ding@ding-ubuntu:~$ pwd
/home/ding

uname:打印系统信息

ding@ding-ubuntu:~$ uname -a
Linux ding-ubuntu 5.3.0-26-generic #28~18.04.1-Ubuntu SMP Wed Dec 18 16:40:14 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux// 命令帮助
NAMEuname - print system informationSYNOPSISuname [OPTION]...DESCRIPTIONPrint certain system information.  With no OPTION, same as -s.-a, --allprint all information, in the following order, except omit -p and -i if unknown:-s, --kernel-nameprint the kernel name-n, --nodenameprint the network node hostname-r, --kernel-releaseprint the kernel release-v, --kernel-versionprint the kernel version-m, --machineprint the machine hardware name-p, --processorprint the processor type (non-portable)-i, --hardware-platformprint the hardware platform (non-portable)

clear:清屏

cat:显示文件内容

ding@ding-ubuntu:~/桌面$ cat test.c
/* test.c -- 测试程序 */
#include <stdio.h>int main(int argc, char argv[])
{printf("hello, world!\r\n");return 0;
}

su:切换超级用户

ding@ding-ubuntu:~$ sudo su                      // 切换至超级用户
root@ding-ubuntu:/home/ding# sudo su ding        // 从root切换回当前用户

rm:删除文件(谨慎操作)

经常使用 rm -r 文件夹     来删除文件夹(rm -rf 文件夹  这样更好用)

ding@ding-ubuntu:~$ rm -rf /*    // 删库跑路-rf 强制递归删除文件,/为根目录,*为通配符,表示删除/路径下所有文件ding@ding-ubuntu:~$ rm --help
用法:rm [选项]... [文件]...
Remove (unlink) the FILE(s).-f, --force           ignore nonexistent files and arguments, never prompt// 忽略不存在的文件和参数,不提示-r, -R, --recursive   remove directories and their contents recursively// 递归删除目录及其内容-d, --dir             remove empty directories-v, --verbose         explain what is being done默认时,rm 不会删除目录。使用--recursive(-r 或-R)选项可删除每个给定
的目录,以及其下所有的内容。

touch:创建文件(更新 / 修改文件时间属性)

ding@ding-ubuntu:~$ touch a.cding@ding-ubuntu:~$ touch --help
用法:touch [选项]... 文件...
Update the access and modification times of each FILE to the current time.若文件不存在,系统会建立一个新的文件必选参数对长短选项同时适用。-a         只更改访问时间-c, --no-create  不创建任何文件-d, --date=字符串  使用指定字符串表示时间而非当前时间-f         (忽略)-m          只更改修改时间-r, --reference=FILE   use this file's times instead of current time-t STAMP               use [[CC]YY]MMDDhhmm[.ss] instead of current time--time=WORD        change the specified time:WORD is access, atime, or use: equivalent to -aWORD is modify or mtime: equivalent to -m--help       显示此帮助信息并退出--version     显示版本信息并退出请注意,-d 和-t 选项可接受不同的时间/日期格式。

cp:复制文件(cp -r 复制文件夹)

ding@ding-ubuntu:~$ cp a.c b.c     // 将a.c复制一份,重命名为b.c
ding@ding-ubuntu:~$ cp -r 软件/ 桌面/     // 将“软件”文件夹复制到“桌面”文件夹下ding@ding-ubuntu:~$ cp --help
用法:cp [选项]... [-T] 源文件 目标文件或:cp [选项]... 源文件... 目录或:cp [选项]... -t 目录 源文件...
Copy SOURCE to DEST, or multiple SOURCE(s) to DIRECTORY.必选参数对长短选项同时适用。-n, --no-clobber      不要覆盖已存在的文件(使前面的 -i 选项失效)-R, -r, --recursive     递归复制目录及其子目录内的所有内容

复制文件夹的结果:

mkdir:创建文件夹

ding@ding-ubuntu:~$ mkdir test

cd ../:回到上级目录,cd ../../:回到上级上级目录

rmdir:删除空目录(不好用,非空目录删不掉)

mv:移动文件 or 重命名文件

ding@ding-ubuntu:~$ mv a.c b.c            // a.c重命名为b.c
ding@ding-ubuntu:~$ mv test/ 桌面/        // “test”文件夹移动到“桌面”下
ding@ding-ubuntu:~/桌面$ mv test/ test_重命名    // 重命名文件夹ding@ding-ubuntu:~$ mv --help
用法:mv [选项]... [-T] 源文件 目标文件或:mv [选项]... 源文件... 目录或:mv [选项]... -t 目录 源文件...
Rename SOURCE to DEST, or move SOURCE(s) to DIRECTORY.必选参数对长短选项同时适用。--backup[=CONTROL]       为每个已存在的目标文件创建备份-b                           类似--backup 但不接受参数-f, --force                  覆盖前不询问-i, --interactive            覆盖前询问-n, --no-clobber             不覆盖已存在文件

路径说明

 /     表示根目录
./     表示当前目录
../    表示父级目录

ifconfig:显示网络配置信息

ding@ding-ubuntu:~$ ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500// IP地址           // 子网掩码             // 广播inet 192.168.43.84  netmask 255.255.255.0  broadcast 192.168.43.255inet6 fe80::11e5:d8bc:a8b:9c56  prefixlen 64  scopeid 0x20<link>ether 00:0c:29:94:7a:11  txqueuelen 1000  (以太网)RX packets 8478  bytes 2004488 (2.0 MB)RX errors 0  dropped 0  overruns 0  frame 0TX packets 4142  bytes 642217 (642.2 KB)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536inet 127.0.0.1  netmask 255.0.0.0inet6 ::1  prefixlen 128  scopeid 0x10<host>loop  txqueuelen 1000  (本地环回)RX packets 2675  bytes 177837 (177.8 KB)RX errors 0  dropped 0  overruns 0  frame 0TX packets 2675  bytes 177837 (177.8 KB)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

ifconfig还有非常多的配置选项,下面是一小部分:

ifconfig eth0 up        # 启动eth0网卡
ifconfig eth0 down      # 关闭eth0网卡
ifconfig eth0 reload    # 重启

下面是关闭 / 打开网卡的测试:

ding@ding-ubuntu:~$ sudo ifconfig ens33 down    // 关闭网卡
ding@ding-ubuntu:~$ ping www.baidu.com
ping: www.baidu.com: 未知的名称或服务       // 此时无法连接网络
ding@ding-ubuntu:~$ sudo ifconfig ens33 up      // 打开网卡
ding@ding-ubuntu:~$ ping www.baidu.com
PING www.a.shifen.com (112.80.248.75) 56(84) bytes of data.     // 网络恢复正常
64 bytes from 112.80.248.75 (112.80.248.75): icmp_seq=1 ttl=55 time=57.9 ms 

ifconfig命令还可以临时修改IP地址(重启清除),如下所示:

ding@ding-ubuntu:~$ ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500// 当前IP地址为192.168.43.84inet 192.168.43.84  netmask 255.255.255.0  broadcast 192.168.43.255ding@ding-ubuntu:~$ sudo ifconfig ens33 192.168.43.100  // 修改IP地址
[sudo] ding 的密码:
ding@ding-ubuntu:~$ ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500// 查看新IP地址inet 192.168.43.100  netmask 255.255.255.0  broadcast 192.168.43.255
ding@ding-ubuntu:~$ ping 192.168.43.84      // 原IP地址无效
connect: 网络不可达
ding@ding-ubuntu:~$ ping 192.168.43.100     // 新IP地址生效
PING 192.168.43.100 (192.168.43.100) 56(84) bytes of data.
64 bytes from 192.168.43.100: icmp_seq=1 ttl=64 time=0.033 ms

reboot:重启系统

poweroff:关机

man:系统帮助命令(不仅能查询shell命令,还可以查询c语言函数)

ding@ding-ubuntu:~$ man printf
PRINTF(1)                                      User Commands                                      PRINTF(1)NAMEprintf - format and print dataSYNOPSISprintf FORMAT [ARGUMENT]...printf OPTIONDESCRIPTIONPrint ARGUMENT(s) according to FORMAT, or execute according to OPTION:--help display this help and exit--versionoutput version information and exitFORMAT controls the output as in C printf.  Interpreted sequences are:\"     double quote\\     backslash\a     alert (BEL)\b     backspace\c     produce no further output\e     escape\f     form feed\n     new line

sync:同步数据写入磁盘(常用,因为在大型系统中,写入修改文件会先保存至内存缓冲区,再集中一次写入到硬盘中,这样能提高读写效率,延长硬盘使用寿命,这个命令能直接保存内存缓冲到磁盘中)

通配符说明:

通配符是一类键盘字符。

当查找文件夹时;当不知道真正字符或者不想键入完整名字时,常常使用通配符代替一个或多个真正字符。

星号(*)

可以使用星号代替零个、单个或多个字符。如果正在查找以AEW开头的一个文件,但不记得文件名其余部分,可以输入AEW*,查找以AEW开头的所有文件类型的文件,如AEWT.txt、AEWU.EXE、AEWI.dll等;要缩小范围可以输入AEW*.txt,查找以AEW开头的所有文件类型并.txt为扩展名的文件如AEWIP.txt、AEWDF.txt;要查询以 .c 结尾的文件,可以输入 *.c。

问号(?)

可以使用问号代替一个字符。如果输入love?,查找以love开头的一个字符结尾文件类型的文件,如lovey、lovei等。要缩小范围可以输入love?.doc,查找以love开头的一个字符结尾文件类型并.doc为扩展名的文件如lovey.doc、loveh.doc。

通配符包括星号“*”和问号“?”

星号表示匹配的数量不受限制,而后者的匹配字符数则受到限制。这个技巧主要用于英文搜索中,如输入““computer*”,就可以找到“computer、computers、computerised、computerized”等单词,而输入“comp?ter”,则只能找到“computer、compater、competer”等单词。

find:查找文件命令

一般格式:find + 目录名称 + 参数[-name] + 文件名如不设置目录,则在当前目录下查找可使用通配符,如 *.c 查找目录下以 .c结尾的所有文件ding@ding-ubuntu:~$ ls test/    // test目录下有4个 .c文件
file1.c  file2.c  file3.c  file4.cding@ding-ubuntu:~$ find -name file1.c  // 查找 file1.c
./test/file1.cding@ding-ubuntu:~$ find -name *.c      // 查找以 .c结尾的所有文件
./test/file1.c
./test/file3.c
./test/file2.c
./test/file4.c

grep:查找文件内容

一般用法:grep + 参数[-nr] + 要查找的字符串 + 路径
参数:-i 或 --ignore-case : 忽略字符大小写-s 或 --no-messages : 忽略错误提示信息-n 或 --line-number : 显示查找到的行编号-r 或 --recursive   : 递归查找目录下所有文件

如下为查询结果:

ding@ding-ubuntu:~$ grep -nrs "你好世界" ./
./test/file1.c:1:你好世界
ding@ding-ubuntu:~$ grep -nrs "串查" ./
./test/file1.c:2:字符串查找
ding@ding-ubuntu:~$ grep -nrs "试文本" ./
./test/file1.c:3:测试文本

du:显示目录或文件的大小

ding@ding-ubuntu:~$ du -sh test/
8.0K    test/

df:检查磁盘空间

ding@ding-ubuntu:~$ df
文件系统           1K-块      已用      可用 已用% 挂载点
udev             4038152         0   4038152    0% /dev
tmpfs             812492      2096    810396    1% /run
/dev/sda1      153767376  10257644 135629132    8% /
tmpfs            4062456         0   4062456    0% /dev/shm
tmpfs               5120         4      5116    1% /run/lock
tmpfs            4062456         0   4062456    0% /sys/fs/cgroup

gedit:使用 gedit 打开文件

ding@ding-ubuntu:~$ gedit test/file1.c 

ps:查看当前的系统进程

top:查看当前进程实时运行状态

file:查看文件类型

ding@ding-ubuntu:~$ file test/file1.c
test/file1.c: UTF-8 Unicode text

Linux专栏4:shell命令相关推荐

  1. linux传统用户界面是,linux用户界面与Shell命令习题.doc

    linux用户界面与Shell命令习题 实训5 用户界面与Shell命令 一.实验要求 掌握图形化用户界面和字符界面下使用Shell命令的方法. 掌握ls.cd等Shell命令的功能. 掌握重定向.管 ...

  2. java连接linux服务器执行shell命令(框架分析+推荐)

    java连接linux服务器执行shell命令(框架分析+推荐) 一.分类+连接方式 程序打成jar包,在本地服务器上执行shell命令.这种使用MyRuntimeUtil工具类 java程序远程li ...

  3. linux系统下shell命令使用通配符批量创建文件或目录

    linux系统下shell命令使用通配符批量创建文件或目录 批量创建log文件 批量创建文件夹 批量删除目录 批量创建log文件 touch {1..5}.log 批量创建文件夹 mkdir dir_ ...

  4. Linux中常见shell命令总结

    1.具体的shell命令用法可以通过help或man命令进入手册来查询其具体的用法. 2.终端本质上对应着linux上的/dev/tty设备,linux的多用户登录就是通过不同的/dev/tty设备完 ...

  5. Linux Android 常用shell命令汇总 不断更新

    文章目录 @[toc] 01 前言 02 正文 01 前言 Linux shell命令应该算是非常入门的东西,但是实际上在使用的时候,会遇到各种各样的问题,前几天我在我们的项目上需要做一个功能,根据进 ...

  6. linux shell express,Linux下使Shell 命令脱离终端在后台运行

    在Linux下,如果你要执行的shell命令耗时特别长,并且:(1)你的网络不稳定,随时可能断网:或者(2)你在执行了shell命令之后必须要关闭终端软件(例如SecureCRT).你是否遇到过这样的 ...

  7. 122.Linux系统和Shell命令行简介,走上数据分析之路

    122Linux系统和Shell命令行简介,走上数据分析之路 本节作者:刘永鑫 中国科学院遗传与发育生物学研究所 版本1.0.2,更新日期:2020年8月31日 本项目永久地址:https://git ...

  8. < Linux >:shell命令初步认识,Linux权限

    目录 1.Shell命令以及运行原理 2.Linux权限的概念 3.Linux权限管理 3.1.文件访问者的分类(人) 3.2.文件类型和文件权限属性(事物属性) 3.3.粘滞位 4.file指令 1 ...

  9. 【Linux权限】Shell命令及运行原理 | Linux权限管理 | 粘滞位

    文章目录 一.shell命令以及运行原理 二.Linux权限的概念 三.Linux权限管理

  10. php实现linux命令,PHP在Linux下运行Shell命令

    原本在本机开发PHP的时候,Shell调用一切正常.上线的时候才反应到线上的服务器对权限做了严格的控制,一顿折腾之后梳理出在严格权限控制的Linux上如何通过Nginx/Apache 以Web的方式调 ...

最新文章

  1. 《大道至简》第一章编程的精义伪代码读后感
  2. CSDN博客转载攻略
  3. 为啥有的程序员不爱说话,却表达能力爆表?(附教程)
  4. 混合式安全灵活性可充分满足无边界企业的发展
  5. react(92)--批量删除进行置空操作
  6. python6清空屏幕,python:文件的读取、创建、追加、删除、清空
  7. python三层设计_python 三层架构说明
  8. mq系列传感器的程序_Cooper Instruments传感器定制解决方案
  9. java版Spring Cloud+VR全景+直播短视频带货+三级分销+b2b2c多商家入驻前后端分离商城源码
  10. Linux安装log4cpp
  11. CefSharp入门-winform
  12. HDU 5025 Saving Tang Monk
  13. 针对五款IPA文件安装工具的深度评测
  14. Java项目:体育用品商城(java+SpringBoot+jsp+html+maven+mysql)
  15. 《南方周末》今日发文揭开了这场抢票插件阻击战的内幕
  16. c语言.jpg图片转成数组_电脑使用图片转换器打开heic图片方法
  17. 微信聊天记录不小心被删了怎么办?看看如何恢复吧!
  18. 冷却塔为什么设计成双曲线型?
  19. 强化学习蘑菇书Easy RL第一章
  20. 联想电脑拯救者y7000触摸屏失灵的修复方法

热门文章

  1. koala的使用与遇到的问题
  2. 互联网裁员寒冬来袭,悲伤逆流成河,Java程序员如何绝地求生?
  3. 城市三级联动的json文件
  4. uniapp 实现app自动更新
  5. 坚果云和亿方云差异在哪?企业该选择哪个网盘?
  6. Vue的数据绑定、Vue的事件绑定、Class和Style的绑定
  7. SQL查询出距当前时间最近的一条或多条记录。
  8. js根据ip地址获取省份城市的方法
  9. 前端md5生成唯一标识
  10. javascript和python优缺点_python比js的优势