linux 基础命令(一)

今天和大家共同学习下linux系统里面的基础命令行的命令。

1.命令的组成基本分为 命令字+选项+参数
2.命令字:常见的基本命令
3.选项:对命令字进行详细的区分
(1)长选项:格式为 (--加一个或多个单词)
(2)短选项:格式为(-加上一个字母,这里多个字母可以在一起写)
4.参数:将命令作用于谁
5.注意一点:大多数的选项和参数可以翻转顺序,有些参数格式是定死的只能是:命令字+选项+参数

来些例子看看
1.cd + 路径(结尾一定是个目录,否则会报错)
(1)cd 在我看来cd像是一个导航,只要你能告诉我你要到那里去,cd可以帮你完成。
(2)cd + 回车(这个是直接切换到当前用户的家目录一般用~表示,root用户的是/root,其他的用户放在/home/用户名)
(3)cd + -(返回上一次的目录)
(4)cd + ..(返回上一级的目录)
(5)这里补充下 . 的作用(. 表示当前目录,也可以使用. +可执行文件)

 [root@localhost ~]# ./1.sh 
1

2.路径
(1)相对路径:只作用于当前目录(头可以不加/)
(2)绝对路径:作用于所有目录(头要加/)


3.pwd + 回车
(1)pwd(显示当前你在哪个路径下面,是以绝对路径显示的)


4.ls
(*补充)ls -R (查看多层目录) ls -b(查看特殊字符:比如空格)

(1)ls + 回车(默认显示当前目录下的文件)

[root@localhost ~]# ls
1    2.c              ha                  log                                  scriptfifo  tining.LOG                 

zabbix-3.0.4
1.c  anaconda-ks.cfg  install.log         mariadb-10.0.20-linux-x86_64.tar.gz  sun.txt     zabbix-3.0.0alpha2         

zabbix-3.0.4.tar.gz
2    file_sum.md5     install.log.syslog  output.session      

-----

(2)ls + a(显示当前目录下的所有文件包括隐藏的文件,隐藏文件一般是以  .  开头的文件)

[root@localhost ~]# ls -a
. 1.sh .bash_history .cshrc install.log.syslog output.session .ssh

tining.LOG zabbix-3.0.0alpha2.tar.gz
.. 2


(3)ls -l (列方式显示详细信息,由于经常使用此命令所以给ls -l设置了别名,使用 ll 一样的效果)

[root@localhost local]# ls -l
total 48
drwxr-xr-x.  2 root root  4096 Sep 23  2011 bin
drwxr-xr-x.  2 root root  4096 Sep 23  2011 etc
以空白作为分隔对应的意思分别是 (权限,硬链接数,拥有者,所属组,文件大小-字节,日期,文件/目录名)

(4)ls -t(以时间的方式显示文件)

[root@localhost local]# ls -lat
total 56
drwxr-xr-x. 14 root root  4096 Apr 16 15:06 .
lrwxrwxrwx.  1 root root    29 Apr 16 15:06 mysql -> mariadb-10.0.20-linux-x86_64/
drwxr-xr-x. 12 root mysql 4096 Apr 16 15:06 mariadb-10.0.20-linux-x86_64
drwxr-xr-x.  6 root root  4096 Apr 16 14:01 zabbix-server
drwxr-xr-x. 13 root root  4096 Apr 11 22:41 ..
drwxr-xr-x.  5 root root  4096 Apr 11 22:41 share
drwxr-xr-x.  2 root root  4096 Sep 23  2011 bin

(5)ls -lh(人性化显示文件大小)

[root@localhost local]# ls -lh
total 48K
drwxr-xr-x.  2 root root  4.0K Sep 23  2011 bin
drwxr-xr-x.  2 root root  4.0K Sep 23  2011 etc

(6)ls -ld + 目录名(显示目录本身的信息)

[root@localhost local]# ls -ldh src/
drwxr-xr-x. 2 root root 4.0K Sep 23  2011 src/

(7)补充一下(如果命令项不知道怎么用可以 命令项 + --help,出来的帮助信息是英文的,也可以自己设置为中文字体)

(8)touch + 文件名(创建新文件,也可以修改文件的时间戳)(*补充):(touch "可包含特殊字符"创建出来是一个文件)

[root@localhost local]# touch dajiahao
[root@localhost local]# ls
bin  dajiahao

(9)stat + 文件/目录名(类似于windows的右键属性)

[root@localhost local]# stat dajiahao 
  File: `dajiahao'
  Size: 0           Blocks: 0          IO Block: 4096   regular empty file
Device: 802h/2050d  Inode: 915067      Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2018-04-18 12:12:51.850001341 +0800
Modify: 2018-04-18 12:12:51.850001341 +0800
Change: 2018-04-18 12:12:51.850001341 +0800

(10)touch -a 文件名(修改文件时间戳)

[root@localhost local]# touch -a dajiahao 
[root@localhost local]# stat dajiahao 
  File: `dajiahao'
  Size: 0           Blocks: 0          IO Block: 4096   regular empty file
Device: 802h/2050d  Inode: 915067      Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2018-04-18 12:16:29.883002668 +0800
Modify: 2018-04-18 12:12:51.850001341 +0800
Change: 2018-04-18 12:16:29.883002668 +0800

Access:访问时间,Modify:内容修改时间,Change:文件修改时间
(11)touch -c 文件(不创建该文件,大多用于脚本里面)
(12)touch 文件 文件 文件 .....(创建多个文件)

[root@localhost boke]# touch a b c
[root@localhost boke]# ls
a  b  c

(13)touch {1..5}(创建1-5,5个文件。{}两边可以添加字母,文字,数字)

[root@localhost boke]# touch {1..5}
[root@localhost boke]# ls
1  2  3  4  5  a  b  c

(14)rm + 文件(删除文件,原始命令应该是带提示的删除文件rm -i,这里做了alias别名所以直接用带提示的rm删除)

[root@localhost boke]# ls
1  2  3  4  5  a  b  c
[root@localhost boke]# rm a
rm: remove regular empty file `a'? y
[root@localhost boke]# ls
1  2  3  4  5  b  c

[root@localhost boke]# alias

alias cp='cp -i'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'

(15)rm -f + 文件(不带提示的删除文件)

[root@localhost boke]# ls
1 2 3 4 5 b c
[root@localhost boke]# rm -f b
[root@localhost boke]# ls
1 2 3 4 5 c

(16)rm -r(递归删除或者删除目录都可以)

[root@localhost boke]# ls
1 2 3 4 5 c mulu
[root@localhost boke]# tree mulu/
mulu/
├── 1
└── 2

1 directory, 1 file
[root@localhost boke]# rm -rf mulu/
[root@localhost boke]# ls
1 2 3 4 5 c

(17)rm + 通配符(?代表一个字符??代表两个字符--没有包含关系,*代表全部。)

[root@localhost boke]# touch 123 1234
[root@localhost boke]# ls
1 123 1234 2 3 4 5 c
[root@localhost boke]# rm -f ???
[root@localhost boke]# ls
1 1234 2 3 4 5 c
[root@localhost boke]# rm -f ????
[root@localhost boke]# ls
1 2 3 4 5 c
[root@localhost boke]# rm -f *
[root@localhost boke]# ls
[root@localhost boke]#

(18)mkdir + 目录名(创建目录)

[root@localhost boke]# mkdir a b
[root@localhost boke]# ls
a a1b b c2d

(19)mkdir -p 目录名/目录名...(递归创建目录)

[root@localhost boke]# mkdir -p a/c/d
[root@localhost boke]# tree a
a
└── c
└── d

2 directories, 0 files

(20)rmdir 空目录(只能删除空目录)

[root@localhost boke]# rmdir a
rmdir: failed to remove `a': Directory not empty
[root@localhost boke]# rmdir a/c/d/
[root@localhost boke]# tree a
a
└── c

1 directory, 0 files

(21)cp + 文件名+目录/文件(如果最后的cp目标为目录,那么文件会存放到该目录下,如果是文件,里面的内容会被覆盖:这个会有提

醒)

[root@localhost boke]# cp a1b /opt/
[root@localhost boke]# cd /opt/
[root@localhost opt]# ls
a1b rh

(22)cp -pr(-r 递归复制或目录复制)(-p  保留原属性)

[root@localhost boke]# cp -pr a /opt/
[root@localhost boke]# cd -
/opt
[root@localhost opt]# ls
a a1b rh
[root@localhost opt]#

(23)mv 文件/目录(移动或者修改名称)

[root@localhost opt]# mv a c
[root@localhost opt]# ls
a1b c rh
[root@localhost opt]# mv a1b -
[root@localhost opt]# cd -
/usr/local/boke
[root@localhost boke]# ls
a a1b b c2d
[root@localhost boke]# mv c2d /opt/
[root@localhost boke]# cd -
/opt
[root@localhost opt]# ls

  • c c2d rh
    (24)mv 1目录/1文件  2目录/2文件  (移动并改名,同理cp亦可以做到)

    [root@localhost boke]# mv /opt/- c
    [root@localhost boke]# ls
    a a1b b c
    [root@localhost boke]# cd -
    /opt
    [root@localhost opt]# ls
    c c2d rh
    [root@localhost opt]#

    
    (25)scp + 用户@ip/域名:文件/目录 + 路径(远程复制,可跨系统相互传输,亦可以作为中间人scp+机器1 机器2,可以做免密,亦可

以手打两个机器密码,如果传输的事目录scp后面要加-r的,这个scp基于ssh协议工作)
(26)cat/tac +文件(正序/倒叙查看小文件)

[root@localhost boke]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

[root@localhost boke]# tac /etc/hosts

::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4

(27)more + 大文件(查看大文件,空格为显示下一页,回车显示下一行,b显示上一页,q或者ctr+c退出)
(28)less + 大文件(操作方法与more相通,比more多了一项查找的功能,按下 / 在后面跟上你要查找的内容,会高亮显示)
(29)head -n行数 + 大文件(默认输出文件前十行,可自定义)
(30)tail -n行数+大文件(默认输出文件尾十行,可自定义,tail -f 为实时查看)
(31)echo + 内容 > 文件(echo 具有创建文件的功能,>这个是覆盖文件内容,>>这是追加文件内容)

[root@localhost boke]# echo 1 > file
[root@localhost boke]# cat file 
1
[root@localhost boke]# echo 2 > file 
[root@localhost boke]# cat file 
2
[root@localhost boke]# echo 3 >> file 
[root@localhost boke]# cat file 
2
3

(32)grep +关键字+文件(筛选文件内容包含关键字的全部行)

[root@localhost boke]# grep root /etc/passwd --color (这里我是6.5系统所以,加了一个--color长选项,7系统不用)
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin

(33)grep + ^关键字$ + 文件(以关键词开头或结尾的行过滤出来)

[root@localhost boke]# grep ^root /etc/passwd --color
root:x:0:0:root:/root:/bin/bash

(34)cut -d: -f1,6 + 文件(cut是用来截取列的-d后面如果跟的是非合法字符必须加" ",-f后面跟上列数,多行用,分开)

[root@localhost boke]# cut -d: -f1,6 /etc/passwd
root:/root
bin:/bin
daemon:/sbin
adm:/var/adm
lp:/var/spool/lpd

(35) | (|管道,前一个命令的输出是后一个命令的输入,管道可以连用,但必须遵守秩序)

[root@localhost boke]# cut -d: -f1,6 /etc/passwd | grep ^root 
root:/root

(36)sort(默认以26个英文字母最为排序方式,就是ACII码)
-r 降序排序
-n 数字大小排序(小-大,1-10)
-u 剔除重复的行
-k 指定某一列
-t 分隔符
(37)uniq +文件(剔除重复的行,但是我这里试了不行,大家试过之后也可以评论补充下)
(38)diff +文件+文件(这是对于两个内容类似的文件对比,diff会将有区别的地方显示出来)

    [root@localhost boke]# uniq file 
2
o3
2
o3
[root@localhost boke]# vim file1
[root@localhost boke]# cat file
2
o3
2
o3
[root@localhost boke]# cat file1 
2
[root@localhost boke]# diff file file1
2,4d1
< o3
< 2
< o3
(39)wc +目录/文件(目录/文件统计)
          -l  只显示行
                    -w 只显示字节
                    -c 只显示大小
[root@localhost boke]# ll |wc -l
8
[root@localhost boke]# ll |wc 
      8      65     328
[root@localhost boke]# ll |wc -w
65
[root@localhost boke]# ll |wc -c
328

好了,今天先跟大家分享这些吧,明天我会继续的。

猜你喜欢

转载自blog.51cto.com/13293172/2104867