Hi!欢迎光临陕西省的权威思科、华为、Oracle、红帽、深信服、微软认证培训中心!
| 029-88235527
您现在所在位置:首页 > 新闻资讯 > 最新资讯 >

【干货】Linux基本命令+文件类型详解

发布日期:2019-10-14 15:16:17点击次数:

分享到:
【干货】Linux基本命令+文件类型详解

  本篇文章具体讲述Linux下的一些基本命令以及文件类型,学习Linux最开始都是要掌握这些基础,这些基础让你在以后的运维道路上如鱼得水。废话不多说,开始进入正题了。

  第1点、基本命令

  基本命令包括:cdwhatistypepwdfileshutdownrebootinitrunlevellstouch

  statmkdirrmdircpmvrmaliasunaliashistory

  RHEL5终端的切换:

  ctrl+alt+f1-f6切换字符终端

  ctrl+alt+f7切换到图形终端

  alt+f2相当于打开“运行”窗口(gnome-terminal)

  ------------------------------------------------------

  RHEL6终端的切换:

  ctrl+alt+f2-f6切换字符终端

  alt+f1切换到图形终端

  alt+f7备份图形终端

  alt+f2相当于打开“运行”窗口(gnome-terminal)

  路径:

  绝对路径

  以正斜线“/”开头

  描述道文件位置的完整说明

  任何时候你想指定文件名的时候都可以使用

  cd/tmp/aa

  相对路径

  不以正斜线开头

  制定相对于你的当前工作目录而言的位置

  可以使用做制定文件名的快捷方式

  相对路径:cd../tmp

  pwd查看当前所在的工作目录

  如何界定:type命令:typecd或者typels

  命令分为内部命令和外部命令,内部命令移动不影响命令的使用,但是外部命令,移动了就会失效。

  whatis--查看命令的完整名称

  关机/重启

  #halt-p或poweroff--马上关机

  #init0--马上关机

  #shutdown-hnow--马上关机

  #reboot(halt)--马上重启

  #shutdown-r+10(now)--10分钟后(马上)重启

  #init6--马上重启

  #ctrl+alt+del

  init<--改变系统的运行级别,下面的定义在/etc/inittab文件设定

  0---关机

  1---默认没有用户和密码验证,单用户模式,忘记管理员密码用来修改密码,或者一些简单的排错

  2---不带网络的文本模式,不带网络的多用户模式

  3---带网络的文本模式,带网络的多用户模式

  4---保留,没用

  5---带图形的模式

  6---重启电脑

  #runlevel

  N5

  N代表没有,也就是说直接进入带图形的模式

  S代表从但用户模式进入5模式

  init6重启

  init0关机

  原来一登录系统的时候,就是运行级别3,要想运行图像界面:

  1、startx

  2、init5

  要使用init对系统进行重启或者关机,建议大家使用之前,运行以下命令:

  sync

  关机:

  shutdown-r重启电脑

  shutdown-P直接关闭电源

  shutdown-h15:00<---设定电脑15:00就关机

  shutdown-h14:35"Hurryup.Thesystemisshuttingdown"&(与符号,后台运行)

  shutdown-c取消计划中的关机或者重启

  cd(changetheworkingdirectory):

  cd--直接回到当前用户的家目录

  cd~--直接回到家目录

  cd..--返回上级目录

  cd.--回到当前目录

  cd---在两个目录之间切换

  cd<path>--

  ls(listdirectorycontents):

  ls--查看当前目录包含哪里些内容

  ls./--查看当前目录包含哪里些内容

  ls../--查看上层目录包含哪里些内容

  ls-a--查看当前目录中所有的文件,包括以点开头的隐藏文件

  ls-l--详细方式列出目录中的内容

  ls-al/--以长格式列出目录中所有的内容,包括隐藏文件

  ls-ltr--以长格式和时间及以时间反向顺序来显示目录中的内容

  ls-R--递归列出目录中的内容

  tree/a/--查看a目录的目录树结构

  ls-lhh以k单位显示

  ll-d列出目录

  touch:如果文件存在,则更新文件的时间戳/如果目标不存在,会创建一个空文件,可以改变三个时间

  touch/a更新时间戳,因/a这个文件存在

  touch/aa创建空文件

  Access:2013-05-2715:28:01.082561140+0800--访问

  Modify:2013-05-2715:28:01.082561140+0800--修改文件时间

  Change:2013-05-2715:28:01.082561140+0800--属性修改时间

  touch{1,2,3}aa{4,5,6}bb{7,8,9}--创建27个空文件

  touch“{1,2,3}aa{4,5,6}bb{7,8,9}“--创建1个空文件

  touch23--创建一个2,同时又创建一个3

  touch'23'--创建一个2空格3的文件

  touch{4..10}--创建4到10

  touch{a..z}中间的..代表循环体.比如1..100,就是1到100

  touch{A..Z}

  sequence序列

  seq100产生1到100的序列

  #seq12100|xargstouch--创建出1到100内的奇数文件mkdir`seq12100`

  #seq02100

  eg:

  #touch`seq12100`

  ]#ls

  11521273137434953596577581879197

  111723293339455556167717783899399

  131925335414751576369737985995

  stat:显示文件时间戳

  #statinstall.log

  访问时间(accesstime):文件被访问的时间,文本访问类命令会修改此时间

  修改时间(modifytime):文件内容被修改的时间,使用echo命令会修改此时间

  元数据改变时间(chagetime):文件属性的变化(名称、大小、权限、链接等),mv、echo命令会修改此时间

  vim可以是改变访问时间和修改时间,echo>直接重定向可以改变修改时间。

  touch-m|a-t201108311630.152011年8月31日16点30分15秒

  修改时间的时候a对应Access;m对应Modify;Change没有对应的修改参数,不可修改

  touch:建立文件

  touchfile1file2:创建多个文件

  touch-d20110808修改文件日期

  touch-d1215修改文件时间

  mkdir(他建目录)

  mkdir/a/--新建一级目录

  mkdir-p/c/d--新建多级不存在目录

  rmdir:删除空目录

  #rmdirdir1

  #rmdir-pa/b/c

  cpcopyfilesanddirectories

  cp/dir1/file1/dir2/

  cp/dir1/file1/dir2/file2

  cp-a/dir1/file1/dir2--从dir1目录拷贝文件至2,过程中文件中所有的属性不变

  cp-r/dir1//dir2--递归拷贝

  注意:\cp/dir1/file1/dir2/file1如果有重名的不讯问是否覆盖,直接覆盖(\为转移符)

  unalias-a|cp-r

  eg:

  #sudo-ukikitouchkiki

  #llkiki

  -rw-r--r--.1kikikiki012月2820:40kiki

  [root@chentmp]#cp-akiki./test/

  [root@chentmp]#ll./test/kiki

  -rw-r--r--.1kikikiki012月2820:40./test/kiki

  mvmove(rename)file

  mv/dir1/file1/dir2

  mv/dir1/file1/dir2/file2--移动并改名

  mv/dir1/file1/dir1/file2--改名字

  rm-removefilesordirectories

  rm/a.txt

  rm/a/

  rm-rf/a//a.txt

  删除方法小结:不管是删除文件还是删除目录,统一用rm-rf进行删除,就不用记那么多的参数了。

  alias--定义别名

  aliasxxx='yyy'

  #aliaskk='ls--color'

  #unaliaskk

  unaliasxxx取消别名

  永久定义别名

  #vim/etc/bashrc

  aliasgrep='grep--color=tty'

  history-Manipulatethehistorylist

  [root@instructor~]#env|grepHIS

  history--查看命令历史

  history-c--清空命令历史

  history-w--把命令历史写入默认文件中(/root/.bash_history)

  只有在退出去之后,才能把历史记录保存在当前用户家目录的.bash_history下

  !

  !number

  ctrl+r:通过输入关键字查找输入历史中的命令

  文件名:大小写敏感,不可超过255字符,不可以使用/,建议不要~\<>()$*?"'

  >><<

  文件颜色:

  黑色:普通文本文件

  绿色:可执行文件

  目录:蓝色

  链接:浅蓝色

  设备:黄色

  特殊权限文件(s)/管道文件(p):粉红色

  快捷键:

  crtl+c:中断

  ctrl+d:中止输入

  ctrl+l:清屏或者可以使用#clear

  ctrl+z:把当前任务调至后台

  jobs:查看后台任务

  fg将后台中的命令调至前台继续运行

  fg任务编号

  bg将一个在后台暂停的命令,变成在后台继续执行

  bg任务编号

  ctrl+k:删除当前光标到后面的所有内容

  ctrl+u:删除当前光标到前面的所有内容

  ++++

  [root@i~]#jobs

  [1]Runningsleep1000&

  [2]Runningsleep10010&

  [4]-Runningsleep10012&

  [5]+Runningsleep10013&

  [root@i~]#fg4

  sleep10012

  ^Z

  [4]+Stoppedsleep10012

  [root@i~]#jobs

  [1]Runningsleep1000&

  [2]Runningsleep10010&

  [4]+Stoppedsleep10012

  [5]-Runningsleep10013&

  #bg4

  [4]+sleep10012&

  [root@i~]#jobs

  [1]Runningsleep1000&

  [2]Runningsleep10010&

  [4]-Runningsleep10012&

  [5]+Runningsleep10013&

  第2点、命令帮助

  西安鸥鹏linux培训命令帮助步骤:

  1、辨别是可执行的二进制命令还是文件,命令是file;

  2、如果辨别出来是一个可执行的二进制命令;

  3、使用type查询该命令是内部命令还是外部命令;

  4、使用whatis查询该命令的全称

  5、如果是外部命令,则使用命令+(--help)的形式查询简约的帮助文档,如果是内部命令则

  可以直接使用help+命令的形式查看简约帮助文档;

  6、查询man文档(1.5.8)例如:man5命令

  man-k命令man-f命令

  7、使用info查看doc帮助文档,一般形式info/usr/share/doc/要找的命令的关键字

  help--简单帮助

  command(out)--help外部命令

  helpcommand(build_in)内部命令

  [root@desktop22桌面]#typels

  lsisaliasedto`ls--color=auto'此为外部命令

  [root@desktop22桌面]#typeecho

  echoisashellbuiltin此为内部命令

  内部:help“内部命令”||helppwd

  外部:外部命令--help||ls--help

  man--帮助手册

  manman

  man[123456789]command(manman可以找出以下的东西)

  1用户命令

  2内核系统调用(从用户空间到进入点内核的)

  3库函数

  4特殊文件和设备

  5文件格式和规范

  6游戏

  7规范、标准和其他页面

  8管理员用的命令帮助手册

  9linux、内核API(内核调用)

  man-kpasswd执行关键字搜索

  man-fuseradduseradd的manpage文件是哪个?

  1.whatis

  2.type查看类型

  3.--help

  4.man一下

  5.rpm-qldhcp|grepdoc查看doc文档

  第3点、时间

  一定要会查帮助文档,先看参数,再往下看参数对应的格式是什么是分部分看的。

  date

  如此多的参数可以通过

  date--help的方式来了解参数的用法,不用死记硬背。

  使用网络时间同步方法修正当前自己机器时间

  #ntpdate192.168.0.254远程同步服务器时间

  #hwclock--systohc让时间同步到硬件时钟(BIOS)

  #clock-w这个命令强制把系统时间写入CMOS

  date--查看当前时间

  #date+%F

  2011-08-01

  #date+%F--date="30dayago"

  2011-07-02

  #date"+%Y-%m-%d%H:%M:%S"

  2012-10-2115:18:17

  #echo$(($(date+%s)/86400))<---计算距离1970-01-01到现在的天数

  14538

  \转意符的使用方法很重要。

  反撇号``优先解析

  示例:mkdir`date+%F--date="30dayago"`

  会建立一个名字为2013-10-27的目录

  尝试利用帮助把当前时间修改为2000-10-0309:04

  date

  date-s2012-10-03\09:05

  date-s"2012-10-0309:05"

  date100309052012

  cal

  格式calmonthyear

  cal22012显示2012年2月份的日历

  cal2012显示2012年全年的日历

  第4点、Linux文件类型

  查看文件类型:

  ls-l

  file+文件--界定一个文件类型

  b块文件也叫设备文件也叫特殊文件

  c字符文件

  d目录文件

  p管道文件

  f(-)普通文件/文本文件

  l链接文件

  s(socket)unix/类unix套接字

  第5点、判断是什么文件类型或者命令

  file(判断文件类型)

  #filekk判断是什么文件类型

  kk:empty空文件

  -->如果不是文件

  type(判断二进制命令【内部|外部】)

  typekk

  kkis/bin/kk--外部命令

  或者

  #typekk

  kkisashellbuiltin

  假如它是一个外部命令

  whatis

  #whatiskk一个命令的完整名称

  which

  #whichkk查询命令的路径

  /bin/kk

  help

  #kk--help查询简约帮助信息

  man

  #man-fkk该命令包含有几个manpage文档

  kk(1)-..参数

  kk(8)-..

  man8kk

  info

  /usr/share/doc/