基本指令等:

部分快捷键:

ctrl+c 强制结束当前运行程序,终止命令
ctrl+d 结束当前运行程序  
先按ESC然后按. 或者同时按住ALT和. 则输入上一条命令的最后一个参数,与!$相同
Ctrl+l 清屏,相当于clear命令
Ctrl+o 执行当前命令,并重新显示本命令
Ctrl+s 阻止屏幕输出,锁定
Ctrl+q 允许屏幕输出
Ctrl+z 挂起命令


image


特殊字符指令

  1. > :把文件大小变为0,在工作中删除可能被其他程序占 用的文件释放空间时先用这个指令,再删除。
    注意:>指令并没有删除掉文件,只是大小清为0
cp /dev/zero /boot/bigfile
> /boot/bigfile
rm -f /boot/bigfile

A

  1. alias:别名,直接输入显示当前已有的别名。
    alias #### = 'VALUE', 定义别名,相当于输入####就执行VALUE
    在命令行中定义的别名,仅仅对当前shell进程有效,如果想要永久有效,则定义写入到配置文件中
    但是注意写入配置之后并未写入内存,并不会立即生效,如果想要立即生效,可以用 . ~/bashrc 或者 source ~/bashrc,注意.命令和路径中间有空格:
    ~/.bashrc下的更改只对当前用户有效。
    /etc/bashrc下的更改对所有用户有效。
    unalias #### :取消别名(永久取消也得在~/.bashrc中修改)
    unalisa -a :取消所有别名
    注意:如果别名定义的和其他命令重名,则优先执行别名(因为优先级别名最高),如果想要取消它,可以删除别名
    如果只是暂时用它原本的用法,则可以用 '###' 或者"####"或者 #### 或者 command ######,或者直接执行他的路径,
    21:04[root@centos7 ~]# alias hostname='echo hello world'
    21:05[root@centos7 ~]# hostname
    hello world
    21:05[root@centos7 ~]# 'hostname'
    centos7.6test
    21:05[root@centos7 ~]# \hostname
    centos7.6test
    21:05[root@centos7 ~]# which hostname
    alias hostname='echo hello world'
    /usr/bin/echo
    21:05[root@centos7 ~]# whereis hostname
    hostname: /usr/bin/hostname /etc/hostname /usr/share/man/man7/hostname.7.gz /usr/share/man/man1/hostname.1.gz /usr/share/man/man5/hostname.5.gz
    21:06[root@centos7 ~]# /usr/bin/hostname
    centos7.6test

B

  1. bc:linux中的计算器命令。
    用法:直接输入bc ,然后用obase(输出进制)和ibase(输入进制),输入要转换到的进制和数值,来控制输入输出结果  
    如果什么都不写直接输入数值,就是以10进制为基础的 。 退出用quit指令。
    obase=2
    1234
    10011010010
    quit
  2. basename:取出基名,后面可以跟文件,目录,或者特殊文件,都可以取出最后的基名

C

  1. cat:输出文本文件内容,后面跟上文件地址。如果跟上二进制文件则会乱码。
    注意和输出字符串的echo区分,echo它后面跟上字符串(或者变量保存的字符串内容,但变量前面需要加上${}输出其中的内容,其中花括号可以不写
    注意:对于反向单引号,经测试反向单引号`中只写入变量并不能显示其中内容,系统的错误解释中说反向单引号中内容不是命令,说明里面只能输入命令,变量则作为命令的参数
    反向单引号中是优先级最高,在语句中先执行里面的命令
cat /etc/shells;  
cat /etc/motd; 
cat /etc/profile.d/evn.sh; 
cat /etc/profile;
cat /etc/issue;
  1. clock :查看硬件时钟
    clock -s: 把硬件时钟写到系统时间上
    clock -w: 把系统时间写到硬件时钟上

  2. cal:查看日历 可以指定某年某月 cal 9 1752 ; cal MM YYYY
  3. cd:改变当前所在目录,可以写绝对路径,也可以写相对路径.
    相对当前路径来说,一个点.代表当前目录,默认就是一个点所以不写,两个点代表父目录..
    切换至父目录:cd ..
    切换至当前用户主目录:cd 或 cd ~
    切换至其他用户主目录:cd ~zhang
    切换至以前的工作目录:cd -

  4. chown zhang ####:改变文件所有者
  5. cp [OPTION]... [-T] SOURCE DEST
    cp [OPTION]... SOURCE... DIRECTORY
    cp [OPTION]... -t DIRECTORY SOURCE...
    cp SRC DEST
    SRC是文件:
    如果目标不存在:新建以DEST为名的文件,并将SRC中内容填充至DEST中
    如果目标存在:
    如果DEST是文件:将SRC中的内容覆盖至DEST中
    基于安全,建议为cp命令使用-i选项
    如果DEST是目录:在DEST下新建与原文件同名的文件,并将SRC中内容填充至新文件中

    cp SRC... DEST
    SRC... 多个文件
    DEST 必须存在,且为目录,其它情形均会出错

    cp SRC DEST
    SRC是目录:此时使用选项:-r
    如果DEST不存在:则创建指定目录,复制SRC目录中所有文件至DEST中
    如果DEST存在:
    如果DEST是文件:报错
    如果DEST是目录:在DEST下新建与原目录同名的目录,并将SRC中内容复制至新目录中


    image


    注意:cp直接拷贝可能会改变原文件的属性,比如说拷贝 /dev/zero 到其他地方会变成一个很大的二进制字符文件, 因此用 -a 选项可以保留源文件属性,-a 也就实现了备份的功能,两个文件包括属性都一模一样
    -a :-dR -r和-R一样,可以拷贝文件夹
    --preserve=all, 保留所有属性
    cp可以拷贝文件夹
    -d --no-dereference --preserv=links 不复制原文件,只复制链接名
    -r, R:拷贝文件夹(递归拷贝)
    -v : 可以看到拷贝过程
    -av
    -i 覆盖前提示
    -n 不覆盖,注意两者顺序
    --preserv[=ATTR_LIST]

    mode: 权限
    ownership: 属主属组
    timestamp:
    links
    xattr
    context
    all

    -p 等同--preserv=mode,ownership,timestamp
    -v --verbose
    -f --force
    -u --update 只复制源比目标更新文件或目标不存在的文件
    -b 目标存在,覆盖前先备份,形式为 filename~
    --backup=numbered 目标存在,覆盖前先备份加数字后缀

  • scp:拷贝到不同电脑上,不过得网络连通且知道对方的root账号密码,
    scp /etc/issue 192.168.0.123:/data
    scp /etc/issue zhang@192.168.0.123:

D

  1. date:查看系统时间,也可以更改等等,详细和用法可以查看help。
    有个快捷更改时间格式,用阿拉伯数字 MMDDhhmmYYYY.ss
    date -s "YYYY-MM-DD hh:mm:ss"这样也可以设置所有的时间
    date -s "1year"把时间设置为1年后,有很多种用法

  2. df:查看硬件
  3. dirname:取出目录名,后面可以跟文件,目录,或者特殊文件,都可以取出前面的目录名

E

  1. echo:输出其后的字符串(可用${}内加变量输出变量内保存的字符串,花括号可以不写)。

image


image


echo $PS1; 
echo $SHELL;
echo $PATH; 
echo $LANG

echo 后面什么都不加和 加双引号(弱引用)功能一样,只把后面的变量替换(变量前面要加上变量内容引用符$)
echo 后面加上单引号(强引用)则吧单引号内的所有内容全部当做字符
echo后面加上反向分号,则是先运算反向分号中间的内容(优先级最高,相当于数学中的小括号,里面的命令和变量都会转换),然后再运算外部的内容
注:反向单引号也相当于$(####)

21:08[root@centos7 ~]# echo echo $PS1
echo \[\033[01;35m\]\A[\u@\h \w]\$\[\033[00m\]
21:08[root@centos7 ~]# echo "echo $PS1"
echo \[\033[01;35m\]\A[\u@\h \w]\$\[\033[00m\] 
21:09[root@centos7 ~]# echo 'echo $PS1'
echo $PS1
21:09[root@centos7 ~]# echo `echo $PS1`
\[\033[01;35m\]\A[\u@\h \w]\$\[\033[00m\]
21:12[root@centos7 ~]# echo `echo '$PS1'`
$PS1
21:12[root@centos7 ~]# echo 'ehco `$PS1`'
ehco `$PS1`

echo后面可以加花括号,其中的元素之间加上两个..表示连续范围(也可以限定跳跃间隔)
或者加不连续范围的数据(花括号内用逗号隔开)则可以组合。如下:

21:12[root@centos7 ~]# echo {1..10}
1 2 3 4 5 6 7 8 9 10
21:13[root@centos7 ~]# echo {1..10.2}
{1..10.2}
21:13[root@centos7 ~]# echo file{1,4,a,d}.{log,txt}
file1.log file1.txt file4.log file4.txt filea.log filea.txt filed.log filed.txt
  1. enable :查看和启动内部命令 ,禁用用 enable -n #### , 查看禁用的命令用 enable -n.

F

  1. free:查看内存大小

G


H

  1. hostname:查看主机名
  2. help:查看内部命令列表,帮助等等功能
  3. hash:内部命令,缓存到内存中的命令路径表,一旦注销便清空。

    hash -l 更详细显示路径和命令。
    hash -d #### 删除掉存储的hash这一条命令路径
    hash -r 删除掉所有的

  4. halt:关机
  5. history:查看执行过的历史命令行
    其中变量HISTSIZE控制输出的历史行数,可以在/etc/profile中修改(开机永久修改,内存中临时修改则直接HISTSIZE=####即可)
    刚刚执行过的命令的历史都存放在内存中,只有当系统正常退出的时候,才会把内存中的历史命令存放在家目录下的一个文件中.bash_history
    如果不正常退出,则会丢掉一部分历史数据。

命令历史参数等操作:

image


image


历史搜索:
image


调用历史命令中的参数:
image


!string:可以不用打全部,但执行的是history中离得最近的那一个以###开头的命令。 !?string:同理也是离得最近的那一个包含####的命令。

history -c:清空内存中的历史,但并不清除文件中保留的历史。这样下次开机的时候会丢失与上一次开机后输入清空历史命令前的不同的历史命令。
更多用法参照帮助。


image


与历史相关的一些环境变量,建议存在/etc/profile.d/evn.sh中,这样不会影响系统原先的文件内容,但是注意HISTSIZE在/etc/profile中已经有了:
image


  1. hexdump:显示二进制文件(大多为可执行程序,/usr/bin )内容(以十六进制方式)

I

  1. ifconfig :用来查看网络配置信息
  2. id -u :查看当前用户的ID编号,管理员为0 其他用户不是0.(id -u zhang)
  3. init 阿拉伯数字: 切换工作模式 查看帮助获取
    init 3:字符界面 init 5:图形界面 init 0 :关机 init 6:重启
    注意:这个切换可以把图形界面完全关闭,而ctrl+alt+F# 只是增加了一个终端

J


K

  1. kill ####:杀掉进程

L

  1. ls:查看当前目录下的文件
    ls -a:查看所有包括隐藏
    ll:列表方式查看,显示更多信息,相当于ls -l
    ls -r:翻转排序顺序
    ls -R(大写):递归显示,进入子目录直到最底层
    更多用法查看帮助

    ls -ld: d是列出文件夹目录本身的信息,不进入目录内部显示内部文件的信息

    21:02[root@centos7 /etc/profile.d]# ls -ld /data
    drwxr-xr-x. 2 root root 28 Mar  8 21:20 /data
    21:02[root@centos7 /etc/profile.d]# ls -l /data
    total 0
    -rw-r--r--. 1 root root 0 Mar  8 21:20 2019-03-08.log

    ls -1 竖着分行显示
    ls –S 按文件从大到小排序
    ls –t 按mtime排序
    stat #### :可以详细显示文件的三个时间
    access time:访问时间atime,读取文件内容
    modify time:修改时间mtime,修改文件内容数据
    change time:改变时间ctime,元数据发生改变
    ll --time=#time :显示对应的时间
    ll –u 配合-t选项,显示并按atime从新到旧排序,如果不加上-t,则仅仅显示atime但仍然按照名字排序
    ls –U(大写) 按文件在目录中存放(生成)顺序显示
    ls –X(大写) 按文件后缀排序
    l.='ls -d .' 显示且只显示当前目录下所有隐藏文件
    ls -d /### .
    :只显示###下的隐藏文件
    其中隐藏文件一个点表示当前目录本身,两个点表示父目录

  2. lscpu lsblk
  3. lsb_release:查看标准版格式
  4. ln:创建软硬链接
    ln filename [linkname ] 创建硬链接(不能链接目录和跨分区)
    ln -s n filename [linkname ] 创建软连接(可以链接目录和跨分区)
    详细介绍参阅另一篇文件基本知识中解释.

M

  1. makewhatis(centos6) mandb(centos7):whatis生成
  2. mv [OPTION]... [-T] SOURCE DEST
    mv [OPTION]... SOURCE... DIRECTORY
    mv [OPTION]... -t DIRECTORY SOURCE...
    移动文件或者文件夹
    常用选项:
    mv也可以用来改文件名字或者文件夹名字(同一个地方移动)
    -i 交互式
    -f 强制
    -b 目标存在,覆盖前先备份

  3. mkdir 创建目录
    -p: 存在于不报错,且可自动创建所需的各目录
    -v: 显示详细信息
    -m MODE: 创建目录时直接指定权限

N

  1. nano:简单的文本编辑 后面直接跟文本路径即可

O


P

  1. poweroff:关机
  2. ping
  3. pwd:显示当前工作目录,默认显示软链接
    pwd -P(大写):显示真实路径,不显示软链接路径,比如:

    20:43[root@centos7 /etc/profile.d]# cd /bin
    20:44[root@centos7 /bin]# pwd
    /bin
    20:44[root@centos7 /bin]# pwd -P
    /usr/bin
  4. passwd:修改账户密码,只有root权限的才能修改

Q

  1. quit:退出

R

  1. reboot:重启
  2. runlevel:查看当前和上一个工作模式
  3. rpm -ivh:后面跟安装包,装程序
  4. rm [OPTION]... FILE...
    常用选项:
    -i 交互式
    -f 强制删除
    -r 递归
    --no-preserve-root 删除/
    示例:
    rm -rf /*
    注意:删除-开头的可以用 rm ./-### 或者 rm -- -###
  5. rmdir
    rmdir 删除空目录
    -p: 递归删除父空目录
    -v: 显示详细信息

S

  1. shutdown [option] [time] [message]:关机,默认是1分钟之后关机,查看帮助获取更多信息。
    shutdown -r:重启 -h :halt -c:cancel
    time:默认1分钟 ,now:立刻关机 +m:相对几分钟之后关机 hh:mm:绝对时间关机
  2. screen:多用户共同连接投屏,查看帮助获取更多信息
    screen有一个很好的功能就是可以用它在远程操作万一掉线时候,里面的命令仍然在运行不会丢失
      screen -S(大写) ####:创建####名字的session
      screen -x(小写)####:加入已经创建的session,并且是多用户公用单屏模式 (####可以是编号也可以是点后面的名字)
      screen -r(小写)[####]: 返回session(针对单个用户来说),如果screen里面有用户 ,则用screen -r 进不去 只能用-x
      快捷键:ctrl+a 先按 然后再按一下d 短暂退出这个screen
      exit:退出并关闭screen
      screen -ls:显示所有的screen
      screen -d:退出screen(所有已经连接上的都会退出) 
      kill ####:杀掉screen,需要先查询编号或者名字

  3. source:和一个.作用相同,使文件生效
  4. sosreport:搜集错误信息用于发送官方解决
  5. stat ###:显示文件元数据详细信息
  6. scp cp介绍内查看

T

  1. tty:查看当前设备分配的终端号 比如 /dev/tty3
  2. type:查看命令的类型
  3. timedatectl:查询时区信息(可以打出time然后连按两次tab获取time后面可以补全的命令列表,注意题么后面不要加空格)
      timedatectl list-timezones(连按两次tab补全后面的信息),可以查看所有的时区列表
      timedatectl set-timezones ######:设置时区
  4. touch [OPTION]... FILE...
    创建空文件或者刷新时间
    -a 仅改变 atime和ctime
    -m 仅改变 mtime和ctime
    -t [[CC]YY]MMDDhhmm[.ss]
    指定atime和mtime的时间戳
    -c 如果文件不存在,则不予创建
    注意:生成带有-开头的文件需要写上路径才能创建
    21:19[root@centos7 ~]# touch /data/`date +%F`.log
    21:20[root@centos7 ~]# ls /data -a
    .  ..  2019-03-08.log
  5. tree 显示目录树
    -d: 只显示目录
    -L level:指定显示的层级数目
    -P pattern:只显示由指定pattern匹配到的路径

U

1.uname -r :查看本机的linux内核版本
uname -n:和hostname一样


V


W

  1. whoami:查看当前的用户账户
  2. who am i 查看当前用户和终端以及登录信息
  3. who查看当前所有用户和终端等详细信息。
    who -b: 查看系统启动的时间
  4. w :现实更全的用户,终端,CPU,以及用户的当前进行的操作等信息。

    21:20[root@centos7 ~]# whoami
    root
    21:23[root@centos7 ~]# who am i
    root     pts/0        2019-03-08 18:58 (192.168.36.1)
    21:23[root@centos7 ~]# who 
    root     pts/0        2019-03-08 18:58 (192.168.36.1)
    21:23[root@centos7 ~]# w
    21:23:59 up  2:26,  1 user,  load average: 0.00, 0.01, 0.05
    USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
    root     pts/0    192.168.36.1     18:58    7.00s  0.33s  0.05s w
  5. which :查看命令的路径位置,并标准输出,它本身是一个别名
  6. whereis: 查看文件的路径位置,它不仅能输出命令(命令也是文件)的位置,还有命令帮助等的位置,也能查找其他普通文件。(which只能查看命令的路径)
  7. whatis:简单的查询帮助,但是如果系统刚刚装好可能用不了。需要自己启动它 Centos6里面是用 makewhatis centos7里面 用mandb

X


Y


Z