Linux教程

Linux

本文主要是介绍Linux,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

一.Linux命令基础

二.Linux命令帮助

三.目录与文件基本操作

四.总结

Shell

Linux系统中运行的一种特殊程序

在用户和内核之间充当“翻译官”

用户登录Linux系统时,自动加载一个shell程序

Bash是Linux系统中默认使用的shell程序

 

 

 

一.Linux命令的分类

 

内部命令与外部命令的区别

内部命令

外部命令

集成于shell解释器程序内部的一些特殊指令,也称为内建(built-in)指令

Linux系统中能够完成特定功能的脚本文件或二进制程序

属于shell的一部分

属于shell解释器成语之外的命令

没有单独对应的系统文件

每一个外部命令对应了系统中的一个文件

自动载入内存,可以直接使用

必须知道其对应的文件位置,由shell加载后才能执行

 

 

内部命令:内部命令被构建在shell之中。当执行shell命令时,内部命令的执行速度非常快。这是因为没有其他的进程因为执行这条命令而被创建。比如说,当我们执行“cd”命令时,没有进程被创建。在执行过程中只是简单的改变当前的目录。

外部命令:外部命令并没有被构建在shell中。这些可执行的外部命令保存在一个独立的文件当中。当一个外部命令被执行时,一个新的进程即被创建同时命令被执行。比如说,当我们执行“ls”(通常被保存在/bin目录下)命令时,然后/bin/ls被执行。

 

二.Linux常用命令

查看内部命令 help    enable   type

禁用内部命令 enable -n

 

[root@localhost /]# type cd

 

cd 是 shell 内嵌         //内嵌代表内部命令

 

[root@localhost /]# type -a ls

 

ls 是 `ls --color=auto` 的别名  //别名代表外部命令

 

ls 是 /usr/bin/ls             //外部命令会有程序路径

 

 

 

[root@localhost /]# whereis ls  //whereis 可以查找命令具体的位置所在

 

ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/man1p/ls.1p.gz

 

[root@localhost ~]# type -a echo

 

echo 是 shell 內嵌

 

echo是 /usr/bin/echo

 

 

 

外部命令存放于echo $PATH 一个一个找,找到为止,找不到就报无命令

 

[root@localhost ~]#echo $PATH

 

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

 

外部命令使用过后会被记录在内存(缓存,但是会占用内存,临时性的)加快读取速度

 

[root@localhost ~]# type useradd

 

useradd是/usr/sbin/useradd

 

[root@localhost ~]# useradd wu

 

[root@localhost ~]# type useradd

 

Useradd 已被哈希 (/usr/sbin/useradd)

 

[root@localhost ~]# hash  //或者使用hash

 

命中 命令

 

1  /usr/bin/dd        //前面数字代表用过几次

 

2  /usr/sbin/useradd

 

1  /usr/bin/whoami

 

3  /usr/bin/ls

 

[root@localhost ~]# hash -d useradd  //清除useradd命令缓存 -r全清

 

[root@localhost ~]# hash

 

命中  命令

 

2  /usr/sbin/useradd

 

1  /usr/bin/whoami

 

3  /usr/bin/ls

 

 

 

[root@localhost ~]#which ping    //外部命令的磁盘路径 -a 所有

 

/usr/bin/[root@localhost ~]#which help   //内部命令找不到

 

/usr/bin/which:no help in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin)

 

[root@localhost ~]#whereis echo    //相关文档的帮助的命令

 

echo:/usr/bin/echo /usr/share/man/man1/echo.1.gz

 

      /usr/share/man/man1p/echo.1p.gz

 

Linux 命令行的格式

 

通用的命令行使用格式

 

命令字  [选项]  [参数]

 

命令字

 

  是整条命令中最关键的一部分

 

  唯一确定一条命令

 

选项

 

 短格式选项:使用“-”符号引导

 

 长格式选项:使用“--”符号引导

 

参数

 

  命令字的处理对像

 

  可以是文件名,目录(路径)名式用户名等内容

 

  个数可以是零到多个

 

 

 

编辑Linux命令行的辅助操作

 

Tab 键:自动补齐

 

反斜杠“\”:强制换行

 

Ctrl+U组合键:清空至行首

 

Ctrl+K组合键:清空至行尾

 

Ctrl+L组合键:清屏

 

Ctrl+C组合键:取消本次命令编辑

 

Ctrl+E组合键:光标跳到行尾

 

Ctrl+A组合键:光标跳到行头

 

 

 

三.获得命令帮助的方法

 

内部命令help

 

  查看Shell内部命令的帮助信息

 

命令的“--help”选项

 

  适用于大多数Linux外部命令

 

使用man命令阅读手册页

 

  使用“↑”·“↓”方向键滚动一行文本

 

  使用Page Up和Page Down键翻页

 

  按Q或q键退出阅读环境

 

  按“\”键查找内容

 

Man手册的使用

 

Linux的命令手册大全

 

用法:man cd

 

Man ls | col -b > lshelp.txt

 

在这个例子中,col是一个命令程序,用于过滤文本中的一些特殊控制字符:另外还使用了“|”和“>”符号,这是shell环境中的两种特殊功能应用,分别称为管道·重定向输出。其含义及作用如下所述

 

管道:用竖杠符号“|”表示,用于将前面命令的屏幕输出结果作为后面命令的操作对象(输入)。就好像一根管道一样,从这头塞入内容,从另一头出来。

 

重定向输出:用大于符号“>”表示,前面的命令成功执行以后,其屏幕输出结果将保存到“>”号后边指定的文件中,而不是直接输出到屏幕,因此称为重定向。

 

 

 

 

 

Shell在用户和内核之间充当“翻译官”

 

Linux命令分为内部命令和外部命令

 

获得Linux命令帮助的方法

 

 

切换工作目录-cd

将用户的工作目录更改到其他位置

格式

说明

cd 目标位置

切换到目标位置

cd ~

cd

若不指定目标位置,切换到当前用户的宿主目录

cd -

切换到上一次执行cd命令之前所在的目录

绝对路径

相对路径

 

目录和文件的管理命令

查看当前工作目录:pwd

[root@localhost ~]# pwd     /root

切换工作目录:cd (相对路径 绝对路径)

cd /home   #后面跟绝对路径,切换到home目录

cd ./home   #后面跟相对路径,切换到home目录

cd ~        #切换到当前用户的家目录

cd         #切换到当前用户的家目录

cd ~user    #切换某一个用户的家目录,只有root才行,别的用户只能在自己家

cd -        #切换到上一次执行操作的目录

cd ..        #切换到上一层目录(父目录)

 

相对路径的表现形式

表现形式

说明

示例

直接使用目录名或文件名

表示当前工作目录中的子目录·文件位置

grub.conf

以一个点号“.”开头

表示以当前的工作目录作为起点

./grub.conf

一两个点“..”开头

表示以当前目录的上一级目录(父目录)作为起点

../vmlinuz

以“~用户名”形式开头

表示以指定用户的宿主目录作为起点

~teacher

 

列表显示目录内容ls(常用选项·可结合通配等)

命令字       [选项]       [参数]

操作         功能        要执行的对象

-l   将文件信息属性详细列出,通常直接使用ll,因为设置了别名

-R   递归显示,比如一个目录下还有文件,则把那个文件也一起列出

-d   查看目录本身信息,不显示目录下的内容

-i    显示inode值

-h   友好显示文件大小(ls - lh)

-a   遍历所有文件及目录

 (ls内定将文件名或目录名称开头为“.”的视为隐藏档,不会列出)

-A   跟-a 唯一的不同是不列出当前目录和上一层目录

案例

[root@localhost mnt]  ll

长格式 总用量 0

drwxr-xr-x 3 root  root 16 8月 21 10:39 aa

第一个字段 d  代表文件类型比如 d是目录 - 是普通文件

第2-9 (rwxr-xr-x)字母表示该文件的权限

Root 文件所有者

Root 文件所属组

16 文件大小

21 10:39 文件的最近使用时间

aa 文件或目录名称

ls -lh

 

. 当前目录  ..上一级目录

 

颜色:黑色:数据文件

      绿色:可执行文件

      黄色:块设备文件(U盘)

      红色:压缩包

      天蓝色:链接文件

扩充:- 普通文件

     d 目录文件  directory

     b 块设备文件 block

     P 管道文件 pips

     S 套接字文件 socket

     l 符号链接文件 link

 

通配符

“?”:匹配文件名中的一个未知字符

“*”: 匹配文件名中的任意多个字符

 

设置别名-alias

通过别名机制简化常用的.比较长的命令

alias 命令别名 = 命令

示例

设置myls为ls-alh的别名

alias myls=“ls -alh”  别名是myls

 

Vim /root/.bashrc  永久修改别名入口

 

 

 

统计目录及文件空间占用情况 -du

 

统计指定目录(或文件)所占用磁盘空间的大小

 

du [选项][文件或目录...]

 

-h:显示出每一个文件以及大小,单位时KB,MB,GB

 

-s:显示文件或整个目录的大小,默认单位是KB,但不会把他们显示出来

 

常用选项

 

选项

说明

-a

统计磁盘空间占用时包括所有的文件,而不仅仅只统计目录

-h

以更人性化的方式(默认以KB计数,但不显示单位)显示出统计结果

-s

只统计所占用空间总的(summary)大小,而不是统计每个子目录.文件的大小

 

示例:

 

统计出/var/log目录所占空间的大小

 

du -sh /var/log/

 

 

 

du -sh * 生产环境常这样搭配使用统计当前目录下所有文件的大小并显示出来,常用于磁盘水位过高的情况

 

 

 

创建新目录 -mkdir

 

创建新的空目录

 

  mkdir[选项](-p:一次性创建嵌套的多层目录)目录位置及名称

 

 

 

示例

 

 在当前目录下创建名为public-html 的子目录

 

 mkdir public-html

 

创建目录/aa,在/aa目录下创建子目录bb,在/aa/bb目录下创建子目录cc

 

mkdir -p /aa/bb/cc

 

 

 

yum install tree -y 

 

 

 

通配符扩充

 

符号

效果

匹配一个字符 f?.txt

*

匹配所有非隐藏的字符无论多长多短,但不匹配“.”

开头的文件,即隐藏文件

{1..10}

1到10

{a..z}

A b c ...z

{A..Z}

A B C ......Z

[123]

取其中之一有就显示没有也无所谓

[a-z]

范围需要注意

[0-9]

匹配数字范围(0123456789)

\

转义符,表示原来的意见

[[:lower:]]

小写字母表示a-z

[[:upper:]]

大写字母表示A-Z

[^zhou]

匹配列表中的所有字符以外的字符

[[:digit:]]

任意数字,相当于0-9

 

 

 

创建空文件-touch命令

 

更新文件的时间标记

 

经常用于创建多个新的空文件

 

touch 文件...

 

 

 

示例

 

  创建两个空文件,文件名分别为aa和bb

 

touch aa bb

 

 

 

创建链接文件 -ln

 

为文件或目录建立链接文件,类似于windows系统的快捷方式

 

链接文件类型

 

  软连接(又称为符号链接)

 

  硬链接

 

ln [-s] 源文件或目录... 链接文件或目标位置

 

示例

 

   In -s /bin/bzip2 /bin/wx/

 

ln 命令用于为文件或目录建立链接文件(类似于windows系统的快捷方式),提高用户定位文件或定位目录的效率

 

链接文件包括软连接和硬链接两种类型,其中软链接又称符号链接。无论是访问软链接还是硬链接,与直接访问原始文件的效果基本相同

 

ln -s 创建软链接,相当于创建一个快捷方式

 

ln   创建硬链接,相当于复制了一份副本

 

 

 

软链接建立时原始文件可以不存在

 

如果删除源文件之后又重新建立源文件,那么软链接照样可以用

 

软链接文件的大小就是软链接文件本身的文件名字符长度

 

可以给目录做软链接,为了防止目录被删

 

 

 

硬软区别

 

硬链接不能跨分区建立链接,无法对文件夹创建

 

删除硬链接可以继续访问硬链接

 

 

 

软链接可以跨设备 可以支持文件夹

 

软链接删除源文件不能访问

 

 

复制文件或目录 -cp

将需要复制的文件或目录(源)重建一份,并保存为新的文件或者目录

cp[选项]... 源文件或者目录... 目标文件或目录

cp的高级用法:cp  -v  filel.txt {,.bak}常用备份

常用选项

选项

说明

-f

覆盖目标同名文件或目录时不进行提醒,直接强制复制

-i

覆盖目标同名文件或目录时提醒用户确认

-p

复制时保持源文件的权限.属主及时间标记等属性不变

-r

复制目录时必须使用此选项,表示递归复制所有文件及子目录

-a

保留权限,复制软链接本身,递归复制

 

删除文件或目录 -rm

删除指定的文件或目录

rm [选项]要删除的文件或目录

常用选项

-f: 删除文件或目录时不进行提醒,而直接强制删除

-i:删除文件或目录时提醒用户确认

-r:删除目录时必须使用此选项,表示递归删除整个目录树(应谨慎使用)

示例

rm -rf public-html/grub/

Rm -i public-html/apg.conf

常见用法:rm -rf  /*

          删除空目录:rmdir

 

移动文件或目录 -mv

将指定的文件或目录转移位置

如果目标位与源位置相同,则相当于执行重命名操作

mv[选项]... 源文件或目录... 目标文件或目录

示例

mv  mytouch  mkfile

mv  mkfile  public-html/

 

查找命令/文件存放目录 -which

搜索范围由环境变量PATH决定(echo$PATH)

Which 命令|程序名 或 which -a 命令|程序名

示例:which ls    which cd

 

查找文件或命令 find

 采用递归方式,根据目标的名称.类型.大小等不同属性进行精细查找

find [查找范围][查找条件表达式]

 

 

 

常用查找条件类型

查找类型

关键字

说明

按名称查找

-name

根据目标文件的名称进行查找,允许使用“*”及“?”通配符

按文件大小查找

-size

根据目标文件的大小进行查找

一般使用“+”.“-”号设置超过或小于指定的大小作为查找条件

常用的容量单位包括kb(注意k是小写).MB.GB

按文件属主查找

-user

根据文件是否属于目标用户进行查找

按文件类型查找

-type

根据文件的类型进行查找

文件类型包括普通文件(f).目录(d).块设备文件(b).字符设备文件(c)等

 

使用find 命令实现多个查找条件

各表达式之间使用逻辑运算符

“-a”表示而且(and)

“-o”表示或者(or)

示例

Find /boot -size +1024k -a -name “vmlinuz*”

Find /boot -size +1024k -o -name “vmlinuz*”

 

Find工具-name参数案例:

Find /etc -name “resol*.conf”

Find /data/ -name “*.txt”  查找/data/目录以.txt结尾的文件

Find /data/ -name “[A-Z]*” 查找/data/目录以大写字母开头的文件

Find /data/ -name “test*”  查找/data/目录以test开头的文件

 

Find工具-size参数案例

Find /data/ -size  +1m   查文件大小大于1mb的文件

Find /data/ -size  1m    查文件大小为1mb的文件

Find /data/ -size  -1m    查文件大小小于1mb的文件

 

Find工具 -type 参数案例:

Find /boot -type d

Find /data/ -type d      查找/data/目录下的文件夹

Find /data/ ! -type d     查找/data/目录下的非文件夹

Find /data/  -type 1     查找/data/目录下的链接文件

Find /data/ -type d|xargs chmod 755 -R  查目录类型并将权限设置为755

Find /data/ -type f|xargs chmod 644 -R  查目录类型并将权限设置为644

 

四.总结

Shell是一种特殊程序

Linux命令的分类.格式及使用方法

Linux常用命令

  查看及切换目录(pwd  cd  ls  du)

  创建目录和文件(mkdir  touch  ln)

  复制 删除 移动目录和文(cp  rm  mv)

查找目录和文件(which  find)

 

这篇关于Linux的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!