基础命令:
ls
man
pwd
cd
mkdir
echo
touch
cp
mv
rm
rmdir
cat
more
less
head
tail
clear
poweroff
reboot
进阶命令(下一章节):
alias
unalias
uname
su
hostname
history
which
wc
w
who
whoami
ping
kill
killall
pkill
seq
du
df
free
date
pidof
ps
top
ip
uptime
wget
curl
tr
dd
tar
grep
find
命令详解
1. ls
作用:列出文件信息,默认为当前目录下
常用选项:
-a: 列出所有的文件,包括所有以.开头的隐藏文件
-d: 列出目录本身,并不包含目录中的文件
-h: 和-l一起使用,文件大小人类易读
-l: 长输出
实例1:列出所有的文件
[root@ken ~]# ls -a /root
. .bash_logout k .pki .viminfo
.. .bash_profile keys.sh .ssh wordpress
.ansible .bashrc manpages-zh-1.5.1 .tcshrc zabbix_agentd.conf
apache-tomcat-8.5.35.tar.gz .config manpages-zh-1.5.1.tar.gz 实例2:列出目录
[root@ken ~]# ls -d /root
/root
[root@ken ~]# ls -l /root
total 85452
-rw-r--r-- 1 root root 9642757 Dec 15 17:44 apache-tomcat-8.5.35.tar.gz
-rw-r--r-- 1 root root 50 Dec 2 17:34 auto_ins.retry
-rw-r--r-- 1 root root 259 Dec 2 17:50 auto_ins.yml
-rw------- 1 root root 293691 Jan 9 11:26 dead.letter
-rw-r--r-- 1 root root 75541986 Nov 14 13:58 jenkins-2.138.3-1.1.noarch.rpm
-rw-r--r-- 1 root root 93 Jan 9 11:19 k
-rw-r--r-- 1 root root 873 Dec 20 13:11 keys.sh
实例4:人类易读
[root@ken ~]# ls -lh /root
total 8.0K
-rw-------. 1 root root 1.2K Feb 26 22:25 anaconda-ks.cfg
-rw-r--r--. 1 root root 517 Feb 26 22:36 test.sh
2.man
作用:命令帮助使用手册
在man命令帮助信息的界面中,所包含的常用操作按键及其用途如表2-2所示。
表2-2 man命令中常用按键以及用途
按键 用处
空格键向下翻一页
PaGe down向下翻一页
PaGe up向上翻一页
home直接前往首页
end直接前往尾页
/从上至下搜索某个关键词,如“/linux”
?从下至上搜索某个关键词,如“?linux”
n定位到下一个搜索到的关键词
N定位到上一个搜索到的关键词
q退出帮助文档
一般来讲,使用man命令查看到的帮助内容信息都会很长很多,如果读者不了解帮助文档信息的目录结构和操作方法,乍一看到这么多信息可能会感到相当困惑。man命令的帮助信息的结构如表2-3所示。
表2-3 man命令帮助信息的结构以及意义
结构名称代表意义
NAME命令的名称
SYNOPSIS参数的大致使用方法
DESCRIPTION介绍说明
EXAMPLES演示(附带简单说明)
OVERVIEW概述
DEFAULTS默认的功能
OPTIONS具体的可用选项(带介绍)
ENVIRONMENT环境变量
FILES用到的文件
SEE ALSO相关的资料
HISTORY 维护历史与联系方式
3.pwd
显示出当前/活动目录的名称
实例:
[root@ken ~]# pwd
/root
4. cd
切换目录
实例1:切换至/tmp目录下
[root@ken ~]# cd /tmp
[root@ken tmp]# pwd
/tmp
实例2:切换至上次所处的目录
[root@ken tmp]# cd -
/root
[root@ken ~]# pwd
/root
实例3:切换至上级目录
[root@ken ~]# mkdir -p /1/2/3
[root@ken ~]# cd /1/2/3
[root@ken 3]# cd ..
[root@ken 2]# pwd
/1/2
实例4:切换至家目录(或者一个cd也可以)
[root@ken 2]# cd ~
[root@ken ~]# pwd
/root
5. mkdir
创建目录
常用选项:
-p: 根据需要创建父目录
实例1:
[root@ken ~]# mkdir ken
[root@ken ~]# ls -ld ken
drwxr-xr-x 2 root root 6 Jan 13 11:10 ken
实例2:
[root@ken ~]# mkdir /2/3/2 -p
[root@ken ~]# ls -ld /2/3/2/
drwxr-xr-x 2 root root 6 Jan 13 11:11 /2/3/2/
6.echo
输出并显示一行文本
常用选项:
-e: 允许对下面列出的加反斜线转义的字符进行解释.
实例1:
[root@ken ~]# echo "this is ken"
this is ken
实例2:
\n换行符,如果不加-e不能进行解释,会当做普通字符进行输出
[root@ken ~]# echo "this is ken \nnice to meet you"
this is ken \nnice to meet you
[root@ken ~]# echo -e "this is ken \nnice to meet you"
this is ken
nice to meet you
实例3:输出颜色
[root@ken ~]# echo -e "\033[32mthis is ken \nnice to meet you\033[0m"
this is ken
nice to meet you
7.touch
修改时间戳
平时都是用来创建普通文件
实例1:
[root@ken ~]# touch test
[root@ken ~]# ls -l test
-rw-r--r-- 1 kl root 1116 Jan 13 11:16 test
8.cp
复制文件和目录
常用选项:
-p: 保持属性不变
-r: 递归复制目录
-a: 复制时,尽可能保持文件的结构和属性. 等同于 -dpR
实例1:复制文件到目录
[root@ken ~]# cp t.sh ken
实例2:复制文件并改名
[root@ken ~]# cp t.sh test1.sh
实例3:复制目录
[root@ken ~]# cp -a ken ken1
[root@ken ~]# cp -r ken ken2
实例4:复制多个文件到目录
[root@ken ~]# cp test test1.sh test.sh ken
[root@ken ~]# ls ken
test test1.sh test.sh t.sh
9.mv
移动 (改名) 文件
实例1:移动文件到目录
[root@ken ~]# mv k ken
实例2:移动多个文件到目录
[root@ken ~]# mv {1..4}.sh ken
实例3: 改名
[root@ken ~]# mv ken ken3
10.rm
移除文件或者目录
常用选项:
-f: 不作确认提示
-r: 或者 -R 递归地移除目录树
实例1:删除一个文件
[root@ken ~]# rm test
rm: remove regular file ‘test’? y
实例2:强制删除文件(不提示)
[root@ken ~]# rm -f test1.sh
实例3:删除目录
[root@ken ~]# rm ken2
rm: cannot remove ‘ken2’: Is a directory
[root@ken ~]# rm -rf ken2
11.rmdir
删除空目录
[root@ken ~]# rmdir 1.txt
[root@ken ~]# rmdir ken3
rmdir: failed to remove ‘ken3’: Directory not empty
12. cat
连接文件并在标准输出上输出(用于内容较少的)
常用选项:
-n: 输出行号
实例1:
[root@ken ~]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
实例2:
[root@ken ~]# echo "this is the first txt" >1
[root@ken ~]# echo "this is the second txt" >2
[root@ken ~]# cat 1 2
this is the first txt
this is the second txt
13.more
在显示器上阅读文件的过滤器(查看内容较多的)
more命令会在最下面使用百分比的形式来提示您已经阅读了多少内容
[root@ken ~]# more /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:999:998:User for polkitd:/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
named:x:25:25:Named:/var/named:/sbin/nologin
rpc:x:32:32:Rpcbind Daemon:/var/lib/rpcbind:/sbin/nologin
rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin
--More--(52%)
14. less
less 与 more 类似,但使用 less 可以随意浏览文件,而 more 仅能向前移动,却不能向后移动(pgup键),而且 less 在查看之前不会加载整个文件
15.head
输出文件的开始部分(默认前10行)
常用选项:
-n: 指定行
[root@ken ~]# head /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
实例2:指定打印行数量
[root@ken ~]# head -n 5 /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
[root@ken ~]# head -5 /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
16. tail
输出文件的末尾部分(默认十行)
常用选项:
-f: 当文件增长时,输出后续添加的数据(持续刷新)
-n: 指定打印行数量
实例1:
1[root@ken ~]# tail -f t.sh
实例2:
[root@ken ~]# tail -n 5 /etc/passwd
lll:x:1003:1003::/root/jjj:/bin/bash
kl:x:1004:1004::/root/kl:/bin/bash
tt:x:450:450::/home/tt:/bin/bash
ken:x:1005:1005::/home/ken:/bin/bash
ttt:x:1006:1006::/home/ttt:/bin/bash
17. clear
清屏
快捷键ctrl+l
18. poweroff
关机
19. reboot
重启
alias
unalias
uname
su
hostname
history
which
wc
w
who
whoami
ping
kill
seq
du
df
free
date
命令详解
1. alias
设置、’查看别名
[root@ken ~]# alias
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 man='man -M /usr/local/manpage/share/man/zh_CN'
alias mv='mv -i'
alias rm='rm -i'
实例2:设置别名
[root@ken ~]# alias "ken=ls -l"
[root@ken ~]# ken
total 85452
-rw-r--r-- 1 root root 22 Jan 13 12:12 1
-rw-r--r-- 1 root root 23 Jan 13 12:12 2
drwxr-xr-x 2 root root 6 Jan 13 12:05 2.txt
实例3:取消别名
[root@ken ~]# unalias ken
[root@ken ~]# ken
-bash: ken: command not found
2.uname
显示输出系统信息
-a:显示所有的信息
-r: 显示操作系统发行版本
实例1:
[root@ken ~]# uname -a
Linux ken 3.10.0-862.el7.x86_64 #1 SMP Fri Apr 20 16:44:24 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
实例2:
显示内核版本
[root@ken ~]# uname -r
3.10.0-862.el7.x86_64
3.su
运行替换用户和组标识的shell
实例1:
-:使得shell为可登录的shell
[root@ken ~]# su - ken
Last login: Fri Jan 11 11:27:19 CST 2019 on pts/0
退出
[ken@ken ~]$ exit
logout
4. hostname
显示并设置主机名
为什么要修改主机名?
是为了名称解析(/etc/hosts)
hostname修改的主机名只是保存在了内存空间,就是说你重启系统就会失效!
实例1:显示主机名
[root@ken ~]# hostname
ken
实例2:设置主机名(重启失效)
[root@ken ~]# hostname ken1
hostnamectl set-hostname 别名
5.history
查看历史命令
实例1:
[root@ken ~]# history
实例2:使用!加上上一个命令的缩写可以再次执行
6. which
显示命令的完整路径
实例1:
[root@ken ~]# which ls
alias ls='ls --color=auto'
/usr/bin/ls
7.wc
统计文本信息
常用选项:
-c: 字节
-w: 单词数量
-l: 统计行数
c(haracter) w(ord) l(ine)
实例1:
[root@ken ~]# cat /etc/passwd | wc -l
38
实例2:
[root@ken ~]# echo "this is ken" | wc -c
12
实例3:
[root@ken ~]# echo "this is ken" | wc -w
3
8.w
显示已经登录的用户以及他们在做什么
实例:
[root@ken ~]# w
13:04:06 up 2 days, 3:30, 7 users, load average: 0.61, 0.16, 0.09
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root tty1 Mon19 3days 1.35s 0.02s -bash
root pts/0 172.20.10.4 09:47 1:44m 0.16s 0.00s less -s
root pts/1 172.20.10.4 10:34 1:43m 0.02s 0.02s -bash
root pts/2 172.20.10.4 12:00 20:38 0.15s 0.15s -bash
root pts/3 172.20.10.4 12:00 15:02 0.03s 0.03s -bash
root pts/4 172.20.10.4 13:03 6.00s 0.04s 0.01s w
root pts/5 172.20.10.4 13:03 11.00s 0.02s 0.02s -bash
USER:显示登陆系统的用户的帐号名。如果用户重复登录,则该帐号名就会重复显示。
TTY:用户登录的终端代号。登录的形式不同,登录代号也不相同。
FROM:显示用户从何处登录系统。如果是本地登录,则此字段为-,若从远程登录,便会显示远程主机的IP地址或主机名。至于“:0.0”之类的标示,代表该用户是从X Window System以文本模式登录的。
LOGIN@:这是Login At的意思,表示该用户登录系统时的时间(不是登录后经过的时间)。
IDLE:表示用户闲置的时间。这是一个计时器,一旦用户执行任何操作,该计时器便会被重置。
JCPU:以终端的代号区分显示,表示该终端所有相关的进程(process)执行时所消耗的cpu时间。每当进程结束就停止计时,开始新的进程则会重新计时。
PCPU:表示cpu执行程序消耗的时间。
WHAT:表示用户正在执行的程序的名称,如果正在执行文本模式命令,则会显示用户环境的名称。
9. who
[root@ken ~]# who
root tty1 2019-01-07 19:24
root pts/0 2019-01-13 09:47 (172.20.10.4)
root pts/1 2019-01-13 10:34 (172.20.10.4)
root pts/2 2019-01-13 12:00 (172.20.10.4)
root pts/3 2019-01-13 12:00 (172.20.10.4)
root pts/4 2019-01-13 13:03 (172.20.10.4)
root pts/5 2019-01-13 13:03 (172.20.10.4)