Linux 常用命令

文件/目录管理

ls

列出目录内容命令为 ls,可以理解为 list 的缩写。有以下三种常用方法,结果所列出的文件会显示成不同的颜色,不同颜色对应于不同的文件类型

1
2
ls -l /tmp    #列出/tmp目录下的内容,等同于ll
ls -a /tmp #列出/tmp目录下的内容,包括隐藏文件
类型 颜色 类型 颜色
目录 深蓝 链接文件 浅蓝
一般文件 灰色 设备文件 黄色
压缩文件 红色 可执行文件 绿色

使用命令查看目录下内容时,会显示如下信息,每条记录包含 7 个列,从左到右依次为权限信息、文件数(文件硬链接数)、归属用户、归属群组、文件大小、创建时间、文件名称。其中,权限信息共由十位组成,第一位的字符表示了文件类型,有以下几种

字符 - b c d l p
类型 普通文件 块设备文件 字符设备文件 目录文件 链接文件 管道文件

剩余九位从左到右分成三组,分别代表所有者、所属组、其他人对该文件的权限。每一组的格式为 rwx,分别对应于 read(读权限)、write(写权限)、execute(可执行,对于目录文件则为代表进入),某一位为 - 时,则代表不具有相应的权限。

每组权限可用数字表示,例如 rwx 对应于二进制 111,转换为 10 进制为 7,r-x 对应于二进制 101,转换为 10 进制为 5。一般来说,文件的权限通常是 rwxr-xr-x ,即 755。

pwd

显示当前工作目录的命令为 pwd,可以理解为 print work directory。

cd

切换工作目录为 cd,可以理解为 change directory 的缩写。

1
2
3
4
5
#切换到当前用户的家目录
cd ~ #切换到当前用户的家目录
cd /tmp #切换到/tmp目录
cd - #切换到上一次用户访问的目录
cd .. #退到当前目录的上一级目录

mkdir

创建目录命令 mkdir,make directory。

1
2
3
mkdir ./test                #在当前目录下创建test目录
mkdir /test #创建test目录
mkdir -p /test/test/test #递归创建目录/test/test/test

touch

创建空文件命令 touch,也可以用于更新文件的访问时间和修改时间。

rm

删除文件命令 rm,可以记为 remove 的简写。必须具有对所删除文件相应权限的用户才能执行该操作,比如 root 用户和文件拥有者。

1
2
3
4
rm test.txt               #删除当前目录下test.txt文件
rm -f test.txt #-f参数表示强制删除
rm -r /test/test/test/ #递归删除指定目录和所有子目录的内容
rm -rf * #删除当前目录下所有内容,慎用

cp

复制文件命令 cp,可记为 copy 的简写。

1
2
cp /test/test.txt ./     #复制test目录下的test.txt到当前目录下
cp -r /test/test/ ./ #递归复制/test/test/目录到当前目录下

mv

移动文件命令 mv,可记为 move 的简写,用法与 cp 命令相同,效果相当于执行完 cp 命令后,再执行一次 rm 命令。

cat

文件查看和连接命令 cat,用于查看文本文件的内容,通常和 morelessheadtail 以及管道命令 | 结合使用。cat 的常用参数有 -b(对非空行输出编号)、-n(对所有输出行编号)、-E(在每行结束处显示$)、-s(不输出多行空行)、-A(显示特殊字符)。

1
2
3
4
5
6
7
8
cat -bE /ect/profile           #查看文件内容,对输出的所有行编号,并在每行的结尾处附加$符号
cat /etc/fstab /etc/profile #同时显示多个文件的内容
cat 01.txt 02.txt > 04.txt #连接文件的内容并输出到一个新文件(覆盖方式)
cat 01.txt 02.txt >> 04.txt #连接文件的内容并输出到一个新文件(追加方式)
cat /etc/fstab | more #通过管道传送到more工具,分页查看
cat 01.txt | head -n 10 #显示文件前10行内容
cat 01.txt | head -n -10 #显示文件除了最后10行以外的内容
cat 01.txt | tail -n 10 #显示文件倒数10行内容

vi

文本编辑命令 vi,打开文件后,光标默认置于第一行,将光标移至待编辑处,按下键盘 S 或者 Insert 可开始编辑。

1
vi tmp.txt    #打开或者新建tmp文件</pre>

grep

grep 命令,全称为 Global Regular Expression Print,搜索并显示特定字符串,一般用于过滤显示结果,避免显示太多不必要的信息。

awk

awk 命令对每一行进行分割处理,可以指定间隔符,指定输出列。

1
2
3
4
5
awk '/^$/{print "This is a blank line"}' awk.txt    #将空白行打印为“This is a blank line”
awk '{print $0}' awk.txt #打印全部列,引用变量
awk '{print $1,$2,$3}' awk.txt #打印前三列,引用变量
awk -F" " '{print $4}' awk.txt #通过空格间隔符,打印第四列
awk '{FS=" "}{print $4}' awk.txt #通过空格间隔符,打印第四列

文件传输

scp

scp 命令用于两台主机之间的文件传输,与 cp 操作类似,不同在于 scp 需要指定主机名(IP)、端口等参数。

1
2
3
4
scp local_file remote_username@remote_ip:remote_folder  
scp local_file remote_username@remote_ip:remote_file
scp local_file remote_ip:remote_folder
scp local_file remote_ip:remote_file

curl 和 wget

curlwget 通常用于 HTTP/HTTPS/FTP 下载,并可以使用代理。

1
2
curl https://hunterx.xyz/test.zip
wget https://hunterx.xyz/test.zip</pre>

系统管理

date

date 输出操作系统的当前日期、时间和时区,-s 参数用于修改当前日期和时间。

kill

kill 用于终止指定 PID 的进程,killall 用于终止指定进程名字的进程,pkill 与 kill 的使用方法类似。

1
2
3
4
5
6
kill 1095         #终止pid为1095的进程
kill -9 1095 #-1为信号代码,让进程正常关闭后,重新读取配置文件重启
kill -9 1095 #-9为强制终止信号代码
kill -15 1095 #-15为正常结束进程的信号,kill命令默认信号
pkill -9 httpd #终止进程httpd
killall httpd #终止进程httpd

ps

ps 命令显示进程,默认显示 4 列信息:PID —— 运行着的命令(CMD)的进程编号,TTY —— 命令所运行的位置(终端),TIME —— 运行着的该命令所占用的 CPU 处理时间,CMD —— 该进程所运行的命令。

top

top 命令查看负载情况,能够实时显示系统中各个进程的资源占用状况。

cron

cron 是 Linux 下的定时执行工具,类似于 Windows 下的定时任务。crontab 命令用于查看/编辑系统的定时任务,使用参数 -l 可列出当前系统的定时任务,使用参数 -e 进入定时任务编辑界面,编辑方法与vi一致。crontab 的任务格式分为 6 列,其中前 6 项与时间相关,最后一项为具体任务。

1
2
3
#minute hour day month dayofweek command
0 3 * * * /backup.sh #每天的3点执行backup.sh脚本
*/5 * * * * /backup.sh #每隔5分钟执行backup.sh脚本</pre>

小结

Linux 下的命令很多,本文仅列出一些较为常用的命令以及简单用法,更多示例和用法可使用 Linux 下的 man 方法查看,或者使用度娘和谷歌查询。