Linux命令的格式:

1
commandoptions arguments

 命令        选项        参数

   选项:调整命令的执行特性的;

       选项可以有多个;多个选项之间必须以空格分隔;

       短选项:-char
       长选项:--word
       短选项可以合并;长选项一般不可以合并;
       有些选项需要有参数;
   命令参数:命令的作用对象;

       有些命令可以带多个参数;各参数间需要使用空格分隔;

=============================================

# tty命令:显示当前终端对应终端设备文件

=============================================

# who命令:查看当前系统上登录的所有用户及其信息

=============================================

# Ctrl+c: 取消当前程序

=============================================

#type 命令判断命令的类型:

[root@localhost ~]# type cd
cdis a shell builtin->系统内建命令
[root@localhost ~]# type basename
basenameis /bin/basename->系统外部命令

=============================================

#which  命令   ->命令查看一个可执行程序的具体路径

=============================================

Shift+PageUp/PageDown:当前终端翻屏

=============================================

#tree :以树状结构查看目录内容结构.

================系统管理类命令====================

#shutdown [option]...TIME

   -r:重启

   -h:关机

   -c:取消重启或关机命令

时间格式:
       now
       +#: #分钟以后
       hh:mm

   reboot
   halt -p
   poweroff

================目录管理类=======================

命令行展开:能够把一个特殊字符转成别的字符;
   ~:指定用户的家目录;
   {,,,}:展开为多个条目
工作目录切换:

[root@localhost ~]# cd  ~user1 ->切换到用户user1的家目录;
[root@localhost user1]# cd     ->切换到当前用户的家目录;
[root@localhost ~]# cd -       ->切换回上次所在的目录;
/home/user1
[root@localhost user1]#

路径:
   相对路径中:
  .  当前目录
..  父目录

[root@localhost ~]# basename /usr/local/   ->取路径基名
local
[root@localhost ~]# dirname /usr/local/    ->取目录名
/usr
[root@localhost ~]#

#pwd :print working directory 打印当前工作目录位置
#mkdir:make directory 创建目录
#mkdir –p -v    一次性创建多级目录
           -p:先创建父目录
           -v: 显示详细信息
#rmdir:删除空目录
#rmdir –p
#rm –r 目录名
    例如:
1.创建多级目录:

[root@station23 ~]# mkdir /a/b/c/d
mkdir: cannot create directory `/a/b/c/d': No such file or directory  ->系统提示不能创建,要创建目录d就先要创建c,要创建c就必须要目录b,以此类推.
[root@station23 ~]# mkdir -pv /a/b/c/d ->加上-p、-v后的结果.
mkdir: created directory `/a'
mkdir: created directory `/a/b'
mkdir: created directory `/a/b/c'
mkdir: created directory `/a/b/c/d'
[root@station23 ~]# tree /a  ->通过tree查看目录a的结构.
/a
└── b
    └── c
        └── d
3 directories, 0 files
[root@station23 ~]#

2.通过命令行展开创建多级目录:

[root@station23 ~]# mkdir -pv /x/{a/{m,n},b,c}  ->命令行展开方式.
mkdir: created directory `/x'
mkdir: created directory `/x/a'
mkdir: created directory `/x/a/m'
mkdir: created directory `/x/a/n'
mkdir: created directory `/x/b'
mkdir: created directory `/x/c'
[root@station23 ~]# tree /x  ->查看x目录结构.
/x
├── a
│   ├── m
│   └── n
├── b
└── c
5 directories, 0 files
[root@station23 ~]#

=============================================

Linux的文件类型:
   Linux的文件类型:

1.普通文件   开头用 “-”表示的
2.目录文件   开头用“d”表示的
3.符号链接文件(软连接文件)   开头用“l”表示
4.设备文件    块设备,用 d 表示。按照随机存取。通常一次存取一个块。(硬盘)
字符设备,用 c 表示,通常按照线性(有顺序)的方式进行存储,一次存取的一个单位是字节。比如键盘,鼠标显示器等。字符存储是串行的。
5.套接字文件   开头用 “s”  表示
6.命令管道文件   开头用“p” 表示

==================时间管理类====================

时间日期显示/设置

1
2
3
#date    显示当前系统时间
#date MMDDhhmm[CC]YY.ss  设定系统时间
#date [+FORMAT]   时间小写  日期大写

               %Y:年份(全/数字)
               %y:年份(简/数字)
               %m:月(数字)
               %h:月(英文)
               %d:日(数字)
               %H:时(数字)
               %M:分(数字)
               %S:秒(数字)
               %D:月/日/年
               %F:年-月-日
               %T:时:分:秒

   %s:时间戳timestamp
   unix元年:1970-01-01 00:00:00


       #cal 显示当前月份月历

1
2
3
4
5
6
7
8
9
[root@localhost ~]# cal
February 2014
Su Mo Tu We Th Fr Sa
1
2345678
9101112131415
16171819202122
232425262728
[root@localhost ~]#

       #cal ####   显示####年整年年历

Linux有两个时钟:
   硬件时钟:
硬件时钟是存储在CMOS里的时钟

   软件时钟:开机时读取硬件时钟
#
hwclock -s ——>以硬件时钟为准同步 ——>hctosys
#
hwclock -w——>以软件时钟为准同步 ——>systohc


Linux文件时间戳:    
  #
touch:修改文件时间戳
       access time,atime  访问时间:
       modify time,mtime  修改时间:
       change time,ctime  改变时间:元数据发生改变的时间
                   -c 不创建空文件
                   -a 仅修改访问时间
                   -m 仅修改修改时间
                   -t STAMP :[CC]YYMMDDhhmm.ss

  #
stat命令  查看元数据属性(包含时间戳)    

[root@station23 ~]# stat /etc/passwd
File: `/etc/passwd'
Size: 1683Blocks: 8IO Block: 4096regular file
Device: fd00h/64768d    Inode: 1181687Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2014-02-1317:23:36.428995230+0800->访问时间
Modify: 2014-02-1317:23:26.969997161+0800->修改时间
Change: 2014-02-1317:23:26.971997161+0800->改变时间
[root@station23 ~]#

=============================================

#ls
list directory contents
-a  显示所有文件,包括隐藏文件
--color=[default | never | auto]          
-l  以长格式显示文件属性

  l          rwxrwxrwx.         1    root   root   2 Feb 12 09:49         rvi->           vi
文件类型   文件权限   硬连接数 属主   属组     最近一次修改时间   文件名    原始文件
-d  显示目录自身的属性,常与-l同时使用
-r  逆序显示
-R  递归显示
-h  以易读方式显示文件大小
-i  index node 显示文件索引节点号

=============================================

文本文件查看:  

#cat 命令: cat + 文件
concatinate, dump
功能1,连接,cat可以将多个文件连接到一起。显示出来。
功能2,dump.倾倒式的查看,瞬间翻至最后一页。

但在某些场景下是很有用的,比如将某些文件显示出来并将它重定向到某地
比如某文件:cat /etc/sysconfig/network这个文件很小。
cat会直接查看,查看完后直接退出查看器。

-n : cat可以在显示的时候显示行号,行号不是文件本身的内容
-E : 用于显示行结束符,会加入 $ 符,是Linux中的行结束符。Windows的行结束符比Linux多1

tac是反着倒……

cat的特殊用法
cat >>haha<<EOF   (eof标示)
> 123
> 456
> 789
> EOF
从EOF开头,到EOF结尾的东西,追加到haha中。


#more 命令:more + 文件
more,可以分屏显示内容,并且给出显示的百分比
more的向前翻腾是有问题的,用B键可以使用向前翻页,所以很多教材只介绍more可以向后翻页,不能向前翻
more 翻到最后之后会自动退出。所以这也是为什么他不能向前翻的最重要原因

#less 命令: less + 文件
less可以向前翻,而且翻完之后不会自动退出,会显示
[END]
实际上,man命令其实调用了less命令的查看方式,所以man支持的,less都支持。
less命令也是将来用的最多的命令之一。

#tail\head命令 :
head 命令用于查看文件前 N行  (默认为10行)
tail 命令用于查看文件的后 N行(默认为10行)
head -n 20
head -20  都代表看前20行
tail -n 22 /var/log/messages
tail -22
tail  -f 命令,查看文件而不退出,并且实时显示信息。
不想看了,用ctrl+C,则退出。

*当你写了一个命令不想执行的话,用CTRL+C直接返回。
*/var/log/messages 是系统日志,我们经常用tail -f 命令查看其内容

=============================================

如何为echo 命令加上颜色。
ANSI color,颜色种类比较少。只有7种。显示的时候需要用控制符
"\033" : 表示是 ESC 键的 十六进制码
3开头表示是前景色
4开头表示是背景色
0是黑色
7是白色
1 红 色
2 绿色

echo -e “\033[31mThis is a desk;\033[0m"

\033[0m : 不管是什么控制,颜色,字体,斜体,粗体,都用0m结束

可以实现对esc键的直接键入
按ctrl+V 然后按 ESC键
则直接用二进制表示ESC 会显示 ^[

echo -e "^[32mThis is  a desk;^[0m"
-------------------------
想让背景和前景都实现

echo -e "\033[31;42mMy color.\033[0m"
echo -e "\033[1;31mMy color.\033[0m"

第一种:单独。
0:正常模式
1 :加粗
2 :
5 : 闪烁
8 : 跟背景色一样。用于隐藏文字

=============================================

文件操作命令:
#touch  ->创建空文件以及修改文件时间戳的功能.
#cp
       SRC,DEST
       #cp SRC DEST
       假如SRC是一个文件:
           如果目标是一个文件且存在:覆盖
           如果目标文件不存在:创建新文件,目标同源
           如果目标存在,且是个目录:复制源至目标目录中,并保持原名
       cp SRC... DEST
       假如SRC是多个文件:
           如果目标存在,且是一个文件:复制无法进行
           如果目标存在,且是一个目录:复制各文件至目标目录中,并保持原名
           如果目标不存在:复制无法进行
       如果SRC只有且一个且是目录: -r
           如果目标是一个文件且存在:失败
           如果目标文件不存在:创建新目录
           如果目标存在,且是个目录:复制源目录至目标目录中,且保持原名
   cp命令常用选项:
       -r:递归.
       -i:interactive 交互
       -d:当源为链接文件时,复制链接文件的本身,而非源文件
       -a:相当于-dr
       -p:保留原有属性
       -f:强制覆盖


     #mv:移动,用法跟cp相近
       可以直接移动目录,而无需-r选项;
       源和目标在同一个目录下的操作为改名

    #rm:移除文件
       -r:递归.
       -f:强制删除.
       -rf:删除非空目录.

=================文本处理类==================
   
#wc [optino] [file]... -> world connt,
       -l :统计行数
       -c : 统计字节数
       -w : 统计单词数

   #tr 转换字符或删除字符
    tr '集合1' '集合2'
    tr -d '字符集合' 删除通过后的字符

   #cut:
       -d 字符:指定分隔符
       -f#:指定要显示的字段
           单个数字:一个字段
           逗号分隔的多个数字:指定多个离散字段
           -:连续字段。如3-5;    

   #sort [option] file...->按字符进行
       -f:忽略字符大小写
       -n:数值进行排序
       -t:指定分隔符
       -k#:指定分隔后进行比较字段
       -u:重复的行,只显示一次;

   #uniq 移除重复(连续相同)的行
       -c:显示每一行出现的次数;
       -d:显示至少重复过一次的行;
       -u:显示不曾重复的行

====================================================================

   #echo :显示 一行文本
       -n :表示不显示换行符
       -e  :  能解释转义字符,比如显示颜色 (用于表示做控制符用的的叫转义字符)
       echo -e “How are you?\n” 则\n会被编译成换行