Linux中常用命令集合与方便灵活的shell
一,shell与linux的关系
1,LIUNX系统中运行的一种特殊程序
2,在用户和内核之间充当翻译官
3,用户登录linux系统时,自动加载一个shell程序
4,Bash是Linux系统中默认使用的Shell程序
shell文件位于/bin/bash 下
两者之间关系如图所示:
二,xshell常用的种类
常用的linux有以下七种:
- bash :大多数linux默认使用的shell,所包含的功能几乎可以涵盖shell所具有的功能
- csh :使用的是类C语法,其内部命令有52个,较为庞大,并已被/bin/tcsh取代
- tcsh :语法与Brourne相同,同时具备了C shell的易用特点
- ksh :是csh的增强版,与C shell 完全兼容
- sh :是一个快捷方式,已经被/bin/bash所取代
- nologin :指用户不能登录
- zsh :目前Linux里面最庞大的一种shell,他有84个内部命令,使用起来较为复杂,一般情况下,不会使用
常用的bash路径命令为:
[root@server1 ~]# which bash /找命令的路径
/usr/bin/bash /
三,linux命令的种类
Linux命令分为两种,为:
- 内部命令
- 外部命令
内部命令 | 外部命令 |
---|---|
集成于shell解释器内部的一种特殊命令也称为内建(built-in指令) | Linux系统中能够完成特定的脚本文件或二进制程序 |
属于shell的一部分 | 属于解释器程序之外的命令 |
没有单独对应的系统文件 | 每个外部命令对应了额系统中的一个文件 |
自动载入内存,可以直接使用 | 必须知道其对应的文件位置,由shell加载后才能执行 |
四,Linux命令行格式
-
通用的命令行使用格式 :命令字 {选项} {参数}
-
命令字
-
选项:+ 短格式选项: 使用“-”符号引导
+ 长格式选项:使用“–”符号引导 -
参数 + 命令字的处理对象
+ 可以是文件名,目录(路径)名或用户名等内容
+ 个数可以是零到多个 -
例如: ls -l /root 查看 root , ls --help 查看命令解释
-
[root@server1 bin]# ls -l /root / 查看root
总用量 12
-rw-------. 1 root root 2959 8月 9 20:18 anaconda-ks.cfg
-rw-r--r--. 1 root root 2963 8月 9 20:20 initial-setup-ks.cfg
-rw-------. 1 root root 2054 8月 9 20:18 original-ks.cfg
drwxr-xr-x 2 root root 6 8月 10 08:22 公共
drwxr-xr-x 2 root root 6 8月 10 08:22 模板
drwxr-xr-x 2 root root 6 8月 10 08:22 视频
drwxr-xr-x 2 root root 6 8月 10 08:22 图片
drwxr-xr-x 2 root root 6 8月 10 08:22 文档
drwxr-xr-x 2 root root 6 8月 10 08:22 下载
drwxr-xr-x 2 root root 6 8月 10 08:22 音乐
drwxr-xr-x 2 root root 6 8月 10 08:22 桌面
[root@server1 bin]#
注意:命令区分大小写
五,编辑命令行
编辑命令行的辅佐操作有以下几种快捷方式
- Tab 键:自动补齐
- 反斜杠\:强制换行
- Ctrl+U:清空至行首
- Ctrl+K: 清空至行尾
- Ctrl+L : 清屏
- Ctrl+C: 取消本次命令编辑
六,获得命令帮助的方法
- 内部命令 help :查看shell内部命令的帮助信息
- 命令的“–help”选项 :适用于大多数Linux外部命令
- 使用man命令阅读手册页
例如:
七, 查看当前工作目录-pwd
- 显示用户当前所在的工作目录位置
例如:
[root@server1 bin]# pwd
/bin
[root@server1 bin]#
八,切换工作目录-cd
- 将用户的工作目录更改到其他位置
格式 | 说明 |
---|---|
cd目标位置 | 切换到目标位置 |
cd ~ / cd | 若不指定目标位置,切换到当前用户的宿主目录 |
cd - | 切换到上一次执行cd命令之前所在的目录 |
- 绝对路径;完整路径(从根目录开始的路径)
- 相对路径:从当前路径出发到达目标路径
九,列表显示目录内容-ls
- 显示目录中内容,包括子目录和文件相关属性信息
ls {选项} {文件或目录…} - 常用选项
-l -a (显示所有文件) -A -d -h -R (递归显示所有子文件) -color - 结合通配符
?:匹配文件名中的一个未知字符
* : 匹配文件名中的任意多个字符
例如·:
[root@server1 ~]# ls -ln
总用量 16
-rw-r--r-- 1 0 0 0 8月 12 18:44 abc.txt
-rw-r--r-- 1 0 0 0 8月 12 18:42 aber.txt
dr-xr-xr-x 5 0 0 4096 8月 10 05:00 boot
drwxr-xr-x 137 0 0 8192 8月 10 08:20 etc
drwxr-xr-x 21 0 0 296 8月 9 20:18 var
drwxr-xr-x 2 0 0 6 8月 10 08:22 公共
drwxr-xr-x 2 0 0 6 8月 10 08:22 模板
drwxr-xr-x 2 0 0 6 8月 10 08:22 视频
drwxr-xr-x 2 0 0 6 8月 10 08:22 图片
drwxr-xr-x 2 0 0 6 8月 10 08:22 文档
drwxr-xr-x 2 0 0 6 8月 10 08:22 下载
drwxr-xr-x 2 0 0 6 8月 10 08:22 音乐
drwxr-xr-x 2 0 0 6 8月 10 08:22 桌面
[root@server1 ~]# rm ab?.txt //?删除只能代替一个字母
rm:是否删除普通空文件 "abc.txt"?y
[root@server1 ~]# rm a*.txt
rm:是否删除普通空文件 "aber.txt"?y //*表示删除以a开头的文件,后面可代替一长串字符
[root@server1 ~]#
十,设置别名-alias
- 通过别名机制简化常用的,比较长的命令
格式: alias 命令别名 = 命令文件名
例如: 将文件12345678 的别名设置为 123
[root@server1 ~]# ls -ln
总用量 16
drwxr-xr-x 2 0 0 6 8月 12 18:49 12345678
drwxr-xr-x 2 0 0 6 8月 10 08:22 公共
drwxr-xr-x 2 0 0 6 8月 10 08:22 模板
drwxr-xr-x 2 0 0 6 8月 10 08:22 视频
drwxr-xr-x 2 0 0 6 8月 10 08:22 图片
drwxr-xr-x 2 0 0 6 8月 10 08:22 文档
drwxr-xr-x 2 0 0 6 8月 10 08:22 下载
drwxr-xr-x 2 0 0 6 8月 10 08:22 音乐
drwxr-xr-x 2 0 0 6 8月 10 08:22 桌面
[root@server1 ~]# alias 123="12345678" //将别名设置为123
[root@server1 ~]# alias -p //显示设置的别名
alias 123='12345678'
alias cp='cp -i'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
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'
[root@server1 ~]# alias 123 //查看某个别名代表的含义
alias 123='12345678'
[root@server1 ~]# unalias 123 //删除当前设置的别名,此方法只针对当前状态下的设置,如果退出再进入则无效
[root@server1 ~]#
十一,指定目录或文件所占用磁盘空间大小
du -a : 统计磁盘空间占用时包括所有文件,而不仅仅只统计目录
du -h: 以更人性化的方式(默认以B计数,但不显示单位)显示出统计结果
du -s :只统计所占用空间总的(Summary)大小,而不是统计每个子目录,文件的大小
[root@server1 ~]# du -sh /var/log/ //统计磁盘所占用的空间大小
6.7M /var/log/
[root@server1 ~]# du -ah /var/log/ //统计磁盘所每个文件及目录所占用的空间大小并列出来,这里只展示了其中一部分
0 /var/log/tallylog
4.0K /var/log/grubby_prune_debug
44K /var/log/lastlog
28K /var/log/wtmp
4.0K /var/log/btmp
[root@server1 ~]#
注意:-s 与 -a 不能同时使用
十二, 创建新目录 mkdir
格式::
- mkdir aaa 在当前目录下创建 aaa
- mkdir /aaa/bbb 在aaa目录下创建bbb
例如:
root@server1 ~]# mkdir aaa //在当前目录创建aaa
[root@server1 ~]# ls -lh
总用量 16K
drwxr-xr-x 2 root root 6 8月 12 18:49 12345678
drwxr-xr-x 2 root root 6 8月 12 19:20 aaa //新创建的aaa
dr-xr-xr-x 5 root root 4.0K 8月 10 05:00 boot
drwxr-xr-x 137 root root 8.0K 8月 10 08:20 etc
[root@server1 ~]# mkdir /aaa/bbb //在目录aaa下面创建bbb
[root@server1 ~]# cd /aaa //查看创建的bbb
[root@server1 aaa]# ls -ln
总用量 0
-rw-r--r-- 1 0 0 0 8月 11 19:26 aa.txt
drwxr-xr-x 2 0 0 6 8月 12 19:20 bbb //这里就是刚才创建的bbb
十三 ,创建空文件 -touch
格式: touch 文件
例如:
[root@server1 ~]# touch /aaa/123 //在aaa下面创建文件 123
[root@server1 ~]# cd /aaa
[root@server1 aaa]# ls -ln
总用量 0
-rw-r--r-- 1 0 0 0 8月 12 20:19 123 //此为创建的文件 123
-rw-r--r-- 1 0 0 0 8月 11 19:26 aa.txt
drwxr-xr-x 2 0 0 6 8月 12 19:20 bbb
注意:
touch a 默认在家目录下面创建 路径为:/root/a
touch /a 在根目录下面,要查看的话要进入根目录 :cd /
touch /a/b指的是在根下面创建目录a,并在a下面创建文件 b
例如:touch /aa tt : 指的是在根目录下创建一个aa的文件,而此时tt的路径是:/root/tt
此时,aa指的是绝对路径,而tt是相对路径
十四,创建连接文件 -ln
- 为文件或目录建立链接文件,类似于windows系统的快捷方式
- 连接文件类型
- 软连接 又称为符号连接,创建连接的时,会创建一个访问的快捷方式,当删除链接时
软连接失效 - 硬链接 :创建连接时,会创建一个文件,删除连接对文件没有影响
- 软连接 又称为符号连接,创建连接的时,会创建一个访问的快捷方式,当删除链接时
例如:
硬链接:
[root@server1 ~]# vi a.txt / 创建一个a文件,并编辑内容为123
[root@server1 ~]# cat a.txt
123
[root@server1 ~]# ln a.txt b.txt / 给a 创建一个硬链接b
[root@server1 ~]# cat b.txt /查看b链接
123
[root@server1 ~]# rm a.txt /删除 a 链接
rm:是否删除普通文件 "a.txt"?y
[root@server1 ~]# cat a.txt
cat: a.txt: 没有那个文件或目录
[root@server1 ~]# cat b.txt /查看b链接依旧存在
123
软连接:(要绝对路径,不要相对路径)
[root@server1 ~]# vi a.txt /创建a连接 ,并编辑内容为 000
[root@server1 ~]# cat a.txt
000
[root@server1 ~]# ln -s a.txt c.txt /给 a 创建 软连接 c
[root@server1 ~]# cat c.txt /查看软连接 c
000
[root@server1 ~]# rm a.txt /删除 a
rm:是否删除普通文件 "a.txt"?y
[root@server1 ~]# cat c.txt / 查看 c 此时 c 也同时失效
cat: c.txt: 没有那个文件或目录
十四,复制文件或者目录 - cp
- 将需要复制的文件或目录(源)重建一份,并保存为新的文件或者目录
- 格式为: cp [选项】… 源文件或目录 … 目标文件或目录
- 常用选项
选项 | 说明 |
---|---|
-f | 覆盖目标同名文件或目录时不进行提醒,直接强制复制 |
-i | 覆盖目标文件或目录时提醒用户确认 |
-p | 复制时保持源文件的权限,属主及时间标记等属性不变 |
-r | 复制目录时必须使用此选项,表示递归复制所有文件及子目录 |
例如:
[root@server1 ~]# cp -rp /root/12345678/ /aaa //复制 12345678到 aaa下面
[root@server1 ~]# ls -ln
总用量 16
drwxr-xr-x 2 0 0 6 8月 12 18:49 12345678
drwxr-xr-x 2 0 0 6 8月 12 19:20 aaa
dr-xr-xr-x 5 0 0 4096 8月 10 05:00 boot
[root@server1 ~]# cd /aaa //进入查看aaa
[root@server1 aaa]# ls -ln
总用量 12
-rw-r--r-- 1 0 0 0 8月 12 20:19 123
drwxr-xr-x 2 0 0 6 8月 12 18:49 12345678 //文件已被复制过来
drwx------ 9 0 0 139 8月 12 20:56 proc
十五,删除文件或目录 - rm
- 格式 :rm 删除的文件或目录
- 常用选项 :-f(忽略不存在的文件和参数,不提示) , -i (移除前提示), -r(递归删除目录及其文件)
例如:
drwxr-xr-x 2 0 0 6 8月 12 21:08 12345678
drwxr-xr-x 2 0 0 6 8月 12 19:20 aaa
drwxr-xr-x 2 0 0 6 8月 10 08:22 下载
drwxr-xr-x 2 0 0 6 8月 10 08:22 音乐
drwxr-xr-x 2 0 0 6 8月 10 08:22 桌面
[root@server1 ~]# rm -r 12345678 / 删除 12345678
rm:是否删除目录 "12345678"?y
[root@server1 ~]#
[root@server1 ~]# cd /aaa
[root@server1 aaa]# ls -ln
总用量 12
-rw-r--r-- 1 0 0 0 8月 12 20:19 123
drwxr-xr-x 2 0 0 6 8月 12 18:49 12345678 //此时aaa下的12345678文件
[root@server1 aaa]# cd
[root@server1 ~]# rm -rf /aaa/12345678 //递归删除aaa下的文件12345678
[root@server1 ~]# cd /aaa
[root@server1 aaa]# ls -ln
总用量 12
-rw-r--r-- 1 0 0 0 8月 12 20:19 123
十六,移动文件或目录- mv
格式:mv 源文件或目录 目标文件或目录
例如:
drwxr-xr-x 2 0 0 6 8月 12 19:20 aaa
drwxr-xr-x 2 0 0 6 8月 12 21:18 bbb
dr-xr-xr-x 5 0 0 4096 8月 10 05:00 boot
drwxr-xr-x 137 0 0 8192 8月 10 08:20 etc
[root@server1 ~]# mv /root/aaa /bbb //将aaa移动到 bbb下面
[root@server1 ~]# ls -ln //查看已经没有aaa
总用量 16
drwxr-xr-x 2 0 0 6 8月 12 21:18 bbb
dr-xr-xr-x 5 0 0 4096 8月 10 05:00 boot
drwxr-xr-x 137 0 0 8192 8月 10 08:20 etc
[root@server1 ~]# cd /bbb //进入bbb查看
[root@server1 bbb]# ls -ln
总用量 0
drwxr-xr-x 2 0 0 6 8月 12 19:20 aaa //aaa已被移动过来
[root@server1 bbb]#
十七 查找命令 /或文件目录存放目录-which
格式:which 文件或者目录名
例如:
[root@server1 ~]# which ls
alias ls='ls --color=auto'
/usr/bin/ls //文件存放位置
[root@server1 ~]#
十八,查找文件或目录 -find
格式:find 查找范围 查找条件
查找类型 | 关键字 | 说明 |
---|---|---|
按名称查找 | -name | 根据目录文件的名称进行查找,允许使用“*”及“?”通配符 |
按文件大小查找 | -size | 一般使用“+”,“-”号设置超过或小于指定的大小作为查找条件 |
按文件属主 | -user | 根据文件是否属于目标用户进行查找 |
按文件类型查找 | -type | 根据文件的类型进行查找,文件类型包括普通文件(f),目录(d)块设备文件(b)字符设备文件(c)等 |
例如:
[root@server1 ~]# find /aaa -size +100k -a -name "1*" //查找aaa目录下以1开头并超过100k的文件
/aaa/123 //显示出了文件全名及路径
[root@server1 ~]#