Linux基础命令
1. 常用的目录操作命令
命令: 功能:
ls 显示文件和目录列表
cd 切换目录
pwd 显示当前工作目录
mkdir 创建目录
rmdir 删除空目录
tree 显示目录树
2. 当前工作目录
可用 cd 命令来切换目录
一些特殊字符的特殊含义:
“ .” 表示当前目录
“..” 表示当前目录的上一级目录(父目录)
“-” 表示用 cd 命令切换目录前所在的目录
“~” 表示用户主目录的绝对路径名
# cd - --在上一次工作的目录和当前目录之间切换
# cd .. --返回上一级目录
# cd ~ --返回root用户家目录(仅限root用户使用)
3.路径 (path)
路径是指文件或目录在文件系统中所处的位置
绝对路径:
以斜线(/)开头
描述到文件位置的完整说明
任何时候你想指定文件名的时候都可以使用
相对路径:
不以斜线(/)开头
指定相对于你的当前工作目录而言的位置
可以被用作指定文件名的简捷方式
4. ls命令
显示文件或目录信
选项: 说明:
-a 列出目录下的所有文件,包括以 . 开头的隐含文件。
-l 列出文件的详细信息,通常称为“长格式”。
-d 输入参数是目录时,只显示该目标本身。
-A 显示除“.”和“..”外的所有文件。
-R 递归地列出所有子目录下的文件。
-h 以人类易读的单位显示文件大小。
-S 以文件大小排序输出。
-t 以时间排序输出。
-i 输出文件前先输出文件系列号(i节点号:i-node num-ber)。
5. mkdir 、rmdir和tree命令举例
mkdir 创建目录命令
mkdir aa --在当前目录创建一个aa目录
mkdir aa bb cc --在当前目标创建多个目录
mkdir /opt/aa --在opt目录下创建aa目录
mkdir -p a/b/a/d --创建多级目录,创建多级目录不加-p参数会报错
rmdir 删除空目录
rmdir aa --删除当前目标下的aa目录,-f参数表示强制删除
tree 显示目录树
yum -y install tree --安装tree目录树
tree /var/www/html --显示/var/www/html目录树
6. 常用的文件操作命令
命令: 功能:
touch 创建一个空文件
cp 复制文件或目录
mv 移动文件或目录、文件或目录改名
rm 删除文件或目录
ln 建立链接文件
6.1 rename 批量重命名命令
例: touch {a..z}.txt
rename .txt .php *.txt --将当前目录下的所有.txt结尾文件改为.php结尾文件
6.2 cp 命令
例: cp 1.txt / --将当前目录下的1.txt文件复制到 / 目录下
cp -r aa / --将当前目录下的aa目录复制到 / 目录下,拷目录需要加-r参数
6.3 mv 命令
例: mv 1.txt / --将当前目录下的普通文件1.txt移动到 / 目录下
mv aa / --将当前目录下的aa目录移动到 / 目录下
注意:cp和mv命令都有“重命名的作用”
例: cp aa bb --在复制的同时将aa文件改名为bb
mv bb cc --在移动的同时将bb文件改名为cc
6.4 rm 命令
例: rm a.txt --删除a.txt文件,会提示你是否删除?
rm -f a.txt -- -f参数强制删除文件,不会有提示
rm -rf abc --强制删除目录,不会有提示
6.5 文件的时间戳
GNU/linux 文件的3种类型的时间戳:
mtime:最后修改时间(modify time),文件内容发生改变
ctime:状态改变时间(change time),元数据,文件属性
atime:最后访问时间(access time)
stat 命令 --查看文件的元数据(文件本身的信息)
6.6 ln 命令
建立链接文件,链接文件分为两种。
1. 硬链接
为一个文件设置一个目录项,而不是新建一个文件,所以硬链接是共用原始文件的i节点号,每当为一个文件创建一个硬链接都会在长格式列表的第二列种增加一位数,没有硬链接的文件则显示为1,。硬链接的好处:创建硬链接后,只要inode号不为0,那么该文件就不会被删除。
注意:不能对目录创建硬链接;不能跨文件系统创建硬链接。
2. 软链接(符号链接)
软链接相当于Windows系统上的快捷方式,删除符号链接后不会对源文件造成影响。
符号链接和硬链接的区别就是,符号链接是确确实实新建了一个文件,只是把这个文件的内容指向了我们想要的文件而已,所以符号链接拥有自己的i节点号,如果把源文件删掉了,那么我们做的软链接就会失去效果,不过如果你在之前的路劲上再次创建和之前那个文件相同名称的文件,该软链接将会自动找到该文件并链接起来。
ln 命令 --创建链接命令,不加任何参数,就是创建硬链接文件,加 -s 参数创建软连接。
命令格式: ln [选项] 源文件 目标文件
例:ln /test/a.txt b.txt --为/test目录下的a.txt文件在当前目录创建b.txt的硬链接。
ln -s /test/1.txt 2.txt --为/test目录下的1.txt文件在当前目录创建2.txt的软链接。
7. 文本显示命令
命令: 举例:
cat /etc/passwd 滚屏显示文件/etc/passwd的内容
cat -s /etc/passwd 将多个相邻的空行合并成一行显示
cat -b /etc/passwd 从1行开始不以空行进行编号显示
cat -n /etc/passwd 从1行开始进行编号显示
more /etc/passwd 分屏显示文件/etc/passwd的内容
more +10 /etc/passwd 从第10行分屏显示文件/etc/passwd的内容
less /etc/passwd 分屏显示文件/etc/passwd的内容
head -4 /etc/passwd 显示文件/etc/passwd前4行的内容
tail -4 /etc/passwd 显示文件/etc/passwd后4行的内容
tail -n +10 /etc/passwd 显示文件/etc/passwd从10行开始到文件尾的内容
tail -f /var/log/messages 跟踪显示不断增长的文件结尾内容
8. 文本编辑器 vim

1.一般普通模式:
移动光标的方法
-- h 向左箭头键(←) 光标向左移动一个字符
-- j 向下箭头键(↓) 光标向下移动一个字符
-- k 向上箭头键(↑) 光标向上移动一个字符
-- l 向右箭头键(→) 光标向右移动一个字符
-- ctrl+b 向上翻页 = page up
ctrl+f 向下翻页 = page down
+ 光标移动到非空格符的下一行
- 光标移动到非空格符的上一行
-- 0或home键 行首
-- $或end键 行尾
-- G 文件最后一行
-- gg 文件第一行
n<Enter> 移动n行
复制粘贴和删除
x,X x向后删除一个字符,X向前删除一个字符
-- dd 删除一行
ndd 删除n行
dG 删除光标所在行到文件最后一行的内容
d$ 删除光标所在处,到该行的最后一个字符
d0 删除光标所在处,到该行的最前面一个字符
-- yy 复制一行
-- nyy 复制n行 yank
p,P 粘贴 paste
J 将光标所在行与下一行的数据结合成同一行
-- u 还原,撤销
-- ctrl+r 重做
2.插入模式:
-- i,I i光标所在处插入,I光标所在行行首插入
o,O o下一行插入,O上一行插入
a,A a光标所在下一个字符处插入,A光标所在行行尾插入
r,R r替换一个字符,R会一直替换光标所在的文字,直到按下ESC为止
-- [Esc] 退出编辑模式,回到一般普通模式中
3.命令行模式:
查找
-- /xxx或者?xxx 查找某个单词
n 向下接着找
N 向上接着找
替换
-- :n1,n2s/old/new/g 从n1到n2行将old替换成new,g表示替换所有的
:1,$s/old/new/g 或:%s/old/new/g 将整个文件的old替换成new
:1,$s/old/new/gc c=确认
y/n/a/q/l/^E/^Y
y:替换当前内容
n:不替换
a:替换所有
q:退出
l:替换当前内容,并退出
Ctrl + E :向后查找
Ctrl + Y :向前查找
:w 存档
:q! quit,退出,!,强制
-- :wq! 保存并退出,加了!表示强制保存退出
-- :x 保存并退出
-- ZZ 保存并退出
-- ZQ 不保存退出
:w [filename] 另存为
:r [filename] 将另外一个文件读入到正在编辑的文件
:n1,n2 w [filename] 将n1到n2的内容储存成filename文件
-- :set nu 显示行号
-- :set nonu 取消行号
vim 环境设定: /etc/vimrc vim配置文件
9. 匹配、排序及显示指定内容
1. grep命令 过滤、筛选
命令格式:grep [选项] 查找模式 [文件名1,文件名2...]
grep [选项] [-e 查找模式|-f 文件] [文件名1...]
常用选项: 说明:
-c 只显示匹配的行的次数
-i 搜索时不区分大小写
-n 输出匹配行的行号
-v 输出不匹配的行(取反)
-r 对目录(子目录)的所以文件递归进行
-l 列出匹配PATTERN的文件名
--color 对匹配内容高度显示
-A num 同时输出匹配行的后num行
-B num 同时输出匹配行的前num行
-C num 同时输出匹配行的前、后各num行
正则表达式的元字符:

2. cut命令 切割文件内容
命令格式:cut [要处理的文件] [选项1] [选项2]
常用参数:-c --字符
-d --指定分隔符
-f --列,指顶多少列
--output-delimiter --指定输出分隔符
3. sort 命令
命令格式: sort [选项] 文件名
-u --去重复项
-r --降序排列,默认是升序
-o --将排序结果重定向到原文件
sort默认是把结果输出到标准输出,所以要用重定向才能将结果写入文件,如 sort filename > newfile。但是,如果想把排序结果输出到原文件中用重定向就不行了。而加-o参数就可以将结果写入原文件中了,如 sort filename -o filename
-n --以数值排序
-t和-k --当一行数据有多列的情况时,可以指定以什么作为分隔符,取第几列的值进行排序, 如 sort -n -t : -k 2 facebook.txt -t: 指定分隔符 -k: 指定列
4. uniq 命令
uniq删除文本文件中连续的重复的行
常用选项:
|
选项 |
说明 |
|
-c |
显示输出时,在每行的行首加上该行在文件中出现的次数 |
|
-d |
只显示重复的行 |
|
-f |
--skip-fields=n 忽略比较前n个字段 |
|
-s |
--skip-chars=n 忽略比较前n个字符 |
|
-u |
--unique 只显示文件中不重复的行 |
10. 比较、统计及查找文件内容
1. comm 命令
对两个以排序好的文件进行一行一行的比较
选项:只有一个
-123 选项1,2和3分别表示不显示comm输出的第一列,第二列和第三列
2. diff 命令
diff命令比较两个文本文件,并找出它们的不同,它比comm命令完成更复杂的检查,并且不需要两个文件先排序好。该命令会逐行对两个文件进行比较,然后列出它们的不同之处,还会告诉我们如果要使两个文件相同需要修改它们的哪些地方,如果两个文件完全一致,则不会输出任何内容。
常用选项:
|
选项 |
说明 |
|
-b |
忽略空格造成的差别 |
|
-c |
输出格式是带上下文的三行格式(不同点上下方各显示三行内容) |
|
-C n |
输出格式是带有上下文的n行格式,如: -C 4 输出格式是带有上下文的4行格式 |
|
-i |
忽略字母的大小写区别 |
|
-r |
当文件1和文件2都是目录时,递归比较找到的各个子目录 |
3. wc 命令 统计文本
命令格式: wc [选项] [文件]
常用参数:-c --统计字节数
-w --统计单词个数
-l --统计行数
4. find 命令 查找文件命令
命令格式:find 查找路径 [选项] 查找内容
常用选项:-name --按名字查找
-i --忽略字母大小写
-type --按文件类型查找
b:块设备文件(能够随机访问固定大小数据片(chunks)的设备。如:硬盘)
d:目录
c:字符设备文件(在I/O传输过程中以字符为单位进行传输的设备。如:键盘、打印机)
p:管道文件(管道是一个固定大小的缓冲区)
l:符号链接文件
f:普通文件
-uid 按uid查找
-gid 按gid查找
-user 按username查找
-group 按groupname查找
-perm 通过权限查找
-size 通过文件大小查找
+n 查找出大于n的文件
-n 查找出小于n的文件
按时间查找:
-mtime n --代表n天前的24小时内
+n 代表n天前(不包含n天本身的24小时)
-n 代表n天内
# find / -mtime 0 --0代表目前当天的24小时
# find / -mtime +1 --修改时间48小时之前
# find . -mtime -1 --修改时间往后推24小时到现在甚至到将来
# find / -mtime 1 --往前推24小时到往前推48小时之内
# find ./ -type f –name “*.log” –mtime +30 –exec rm –rf {}\; 删除当前目录30天前所有.log结尾的文件。
# find / -mmin +30 -mmin -150 --查看30分钟前到150分钟前之内的两个小时内有哪些文件被修改过内容
11. 进程管理
1. ps 命令 查看当前系统运行的进程信息
命令格式:ps [选项]
命令选项:
选项: 说明:
-a 线束系统中与当前终端有关的进程信息
-e 显示系统中所有的进程信息(可用“-A”代替)
-f 显示进程的所有信息
-l 以长格式显示进程信息
-u 以用户为主的进程状态
-x 通常与a这个参数以前使用,可列出较完整信息
2. kill 命令 终止一个进程
命令格式:kill [选项] 进程pid
常用选项:-l 列出所有kill命令的选项
-1 终端断线
-2 中断(同Ctrl+c)
-3 退出(同ctrl+\)
-9 强制终止(最常用)
-15 终止
-18 继续进程
-19 暂停进程
3. job 管理
& --后台运行符
例:firefox http://192.168.1.10 &
vim /etc/passwd --在这里按下ctrl + z,作用是把job暂停到后台
jobs --列出后台job列表,别的终端的看不到
jobs -l --还要列出pid号
fg %1 --把1号的job调到前台
kill %1 --终止1号job
4. top 命令

uptime 命令 --显示的与top命令显示的第一行相同
free 命令 --查看内存使用的情况(实际使用掉的内存=used + buff/cached)
12. 系统信息显示命令
常用的系统信息显示命令:
|
命令 |
功能 |
|
hostname |
显示主机名称 |
|
uname -a |
显示操作系统信息 |
|
dmesg |
显示系统启动信息 |
|
lsmod |
显示系统加载的内核模块 |
|
date |
显示系统时间(cal 可以显示系统时间的日历) |
|
env |
显示系统环境变量 |
|
locale |
显示当前语言环境(cat /etc/sysconfig/i18n) |
|
cat /proc/cpuinfo |
显示CPU信息 |
|
rpm -qa |
显示系统已安装的所有软件包 |
1. date 命令 --显示系统时间
如果需要以指定的格式显示日期,可以使用“+”开头的字符串指定其格式,详细格式如下:
%Y : 完整年份 (0000-9999)
%m : 月份 (01-12)
%d : 日 (01-31)
%H : 小时(00-23)
%M : 分钟(00-59)
%S : 秒(00-60)
%T : 直接显示时间 (24 小时制)
%X : 相当于 %H:%M:%S
%s : 从 1970 年 1 月 1 日 00:00:00 UTC 到目前为止的秒数
%A : 星期(一-日)
%F : 显示当前的年月日
如果要显示的时间不是当前时间,而是经过运算的时间,则可以用-d选项。
例:显示三年前的时间:
date "+%Y-%m-%d %H:%M:%S" -d "-3 year"
用 -s 选项可以设置系统时间:
例:有多种格式
date -s "20170809 10:10:10"
date -s "2017-08-09 10:10:10"
date -s "2017/08/09 10:10:10"
date -s "8/9/2017 10:10:10"
date -s "10:10:10 20170809"
2. passwd 命令 --修改用户密码
例:passwd --修改当前用户密码
passwd test --修改test用户密码
注意:
1. root用户可以修改所有用户的密码。
2. 普通用户只能自己修改自己的密码,且要知道旧密码才能更改。
3. seq 命令 --产生一个序列
例:seq 1 10
1 2 3 4 5 6 7 8 9 10
选项: -s --在序列间加入分隔符
例:seq -s ":" 1 10
1:2:3:4:5:6:7:8:9:10
选项: -w --序列的宽度(位数)相等
例:seq -w -s ":" 1 2 50 --产生一串位数相等且步长为2的数字,echo的写法步长在后面。
001:003:005:007:009:011:013:015:017:019:021:..
13. 常用的资源显示命令
|
命令 |
功能 |
|
top |
显示当前系统中耗费资源最多的进程 |
|
free |
显示当前内存的使用情况(cat /proc/meminfo) |
|
du -h |
显示指定的文件(目录)已使用的磁盘空间的总量 |
|
df -h |
显示文件系统磁盘空间的使用情况 |
|
uptime |
显示系统运行时间、用户数、负载 |
|
fdisk -l |
查看所有分区 |
|
mount |
查看已经挂装的分区 |
|
swapon -s |
查看所有交换分区 |
|
ps -ef |
查看所有进程 |
|
pstree |
显示进程树 |
|
chkconfig --list |
列出所有系统服务 |
14. 常用的网络信息显示命令
|
命令 |
功能 |
|
ifconfig |
显示网络接口信息 |
|
route |
显示系统路由表 |
|
iptables -nL |
显示包过滤防火墙的规则设置 |
|
netstat |
显示网络状态信息 |
|
cat /etc/resolv.conf |
显示DNS配置 |
|
cat /etc/hosts |
显示静态主机解析表 |
15. 文件打包和压缩命令
1. gzip 命令
命令格式:gzip [参数] 文件
常用参数:
-d --解开压缩文件
-v --显示执行过程
-c --把压缩后的文件输出到标准设备,不改变源文件
例:
gzip 1.txt --压缩(不保留源文件)
gzip -c 2.txt > 2.txt.gz --压缩并保留源文件
zcat 2.txt.gz --查看gzip压缩包文件内容
mkdir /test
touch /test/{a..g}.txt
gzip /test/*
gzip -d /test/* --解压
2. bzip2 命令
命令格式:bzip2 [参数] 文件
常用参数:
-k --保留源文件,默认压缩或解压后是删掉原始文件的
-v --显示执行过程
-d --解压文件
-c --吧压缩后的文件输出到标准输出设备,不改变源文件
例:
bzip2 1.txt --压缩(不保留源文件)
bzip2 -k 1.txt --压缩(保留源文件)
bzcat 1.txt.bz2 --查看bzip2压缩包文件内容
bzip2 -c 1.txt > 1.txt.bz2 --压缩(保留源文件)
bzip2 -d 1.txt.bz2 --解压
3. zip 命令
命令格式:zip [参数] 文件
常用参数:
-r --递归压缩子目录下所有文件
-d --指定文件解压到某个路径下
例:
zip -r test.zip /test --压缩test目录,后面为源文件,压缩后会保留源文件
zip -r test.zip file1 file2 file3 --zip 命令能同时处理多个文件和目录,这个命令是将file1 file2 file3一起压缩放入test.zip 中
zip 3.txt.zip 3.txt --压缩,后面为源文件,压缩后会保留源文件
unzip 3.txt.zip --解压(解压在当前目录,并保留压缩包)
unzip 3.txt.zip -d /opt --指定解压到/opt目录下
4. tar 命令 --文件的打包和解压
命令格式:tar [参数] 目录
常用参数:
-c --用于创建一个新的存档文件,可理解为打包
-v --显示执行过程
-f --使用filename指定存档文件名(接文件)
-j --调用bzip
-z --调用gzip进行解压或者压缩
-x --解压
-t --用于列出一个存档文件中的文件名
例:
tar -cvf test.tar /test --打包(前面是打包后的名称,后面是源文件),没有压缩
tar -tf test.tar --列出 test.tar 中的文件
tar -xvf test.tar --解压(默认解压到当前路径下)
tar -xvf test.tar -C /tmp/ --指定解压到/tmp路径下
tar cjvf test.tar.bz2 /test/ --打包,并用bzip2压缩
tar xjvf test.tar.bz2 --对bzip2进行解压
tar czvf test.tar.gz /test/ --打包,并用gzip压缩
tar xzvf test.tar.gz --对gzip进行解压
tar xvf test.tar.gz -C /opt/ --也可以不指定,它会自动调用压缩工具解压
tar xvf test.tar.bz2 -C /opt/
tar cvf test1.tar /test/ --exclude=/test/1.txt --排除某些文件打包
tar cf test2.tar /test/ --exclude=/test/1.txt --exclude=/test/2.txt --排除多个文件
tar cf test3.tar /test/ --exclude=/test/*.txt --使用通配符,排除相似的一批文件
netstat [选项]
常用参数:
-c 每隔1秒就重新显示一遍,直到用户中断它
-l 指Linux
-i 显示所有网络接口的信息,格式同“ifconfig -e”
-n 以网络IP地址代替名称,显示出网络连接情形
-r 显示核心路由表,格式同“route -e”
-t 显示TCP协议的连接情况
-u 显示UDP协议的连接情况
-v 显示正在进行的工作
-a 显示所有socket,包括正在监听的
netstat –anlt --用来查看linux的TCP端口使用情况
chage [参数] user
chage命令用于密码实效管理,该是用来修改帐号和密码的有效期限。它可以修改账号和密码的有效期。
常用参数:
-m:密码可更改的最小天数。为零时代表任何时候都可以更改密码。
-M:密码保持有效的最大天数。
-w:用户密码到期前,提前收到警告信息的天数。
-E:帐号到期的日期。过了这天,此帐号将不可用。
-d:上一次更改的日期。
-i:停滞时期。如果一个密码已过期这些天,那么此帐号将不可用。
-l:例出当前的设置。由非特权用户来确定他们的密码或帐号何时过期。
浙公网安备 33010602011771号