# Linux常用命令
[TOC]
常用系统工作命令
man命令
man命令用于查看各种命令的帮助
格式: 命令名称 [命令参数] [命令对象]
命令对象一般是指要处理的目标(普通文件/目录文件/用户等等),命令参数会比较麻烦,需要长时间的经验积累才能比较好的把握。
[root@host Desktop]# man man
[root@host Desktop]# man ls
[root@host Desktop]# man -h cd
echo命令
用于在终端显示字符串或者变量
格式:echo [字符串 | 变量]
[root@host Desktop]# echo haha
haha
[root@host Desktop]# echo $HOSTNAME
host.domain10.example.com
date命令
命令用于显示/设置系统的时间或日期,格式为:date [选项] [+指定的格式]
。
选项:(选项很多,不一一列举)
%H :小时(0..23)
%I : 小时(01..12)
%k : 小时(0..23)
%M : 分钟(0..59)
...
[root@host Desktop]# date
Tue Nov 21 10:38:29 CST 2017
[root@host Desktop]# date "+%A"
Tuesday
[root@host Desktop]# date "+%p"
AM
工作状态监测
uname命令
用于查看系统的内核名称,内核版本,处理器类型等信息。
格式:uname [-a]
选项:
- -a或--all:显示全部的信息
- -m或--machine:显示电脑类型
- -n或-nodename:显示在网络上的主机名称
- -r或--release:显示操作系统的发行编号;
- -s或--sysname:显示操作系统名称;
- -v:显示操作系统的版本
[root@host Desktop]# uname -v
#1 SMP Wed Jun 13 18:24:36 EDT 2012
[root@host Desktop]# uname -m
x86_64
[root@host Desktop]# uname -r
2.6.32-279.el6.x86_64
history命令
用于显示历史执行过的命令,格式为:history [-c]
[root@host user]# history
1 ls
2 cd bin
3 ls
4 init 0
5 ./vmware-install.pl
6 y
7 yes
8 vim /etc/hosts
清空该用户在本机中执行过命令的历史记录:[root@host user]# history -c
工作目录切换
pwd命令
用于显示当前的工作目录
[root@host Desktop]# pwd
/home/user/Desktop
cd命令
用于切换工作目录,格式为:cd [目录名称]
参数 | 作用 |
---|---|
- | 切换到上一次的目录 |
~ | 切换到home目录 |
~username | 切换到其他用户的目录 |
.. | 切换到上级目录 |
[root@host Desktop]# cd ..
[root@host user]#
ls命令
用于查看目录中有哪些文件,格式为:ls [选项] [文件]
参数 | 作用 |
---|---|
-a | 查看全部文件(包括隐藏文件) |
-d | 查看目录本身 |
-l | 显示文件的详细信息 |
可以组合显示?-ld |
[root@host user]# ls /home
user
[root@host user]# ls -l
total 40
-rwxrwxrwx. 1 user user 0 Oct 31 14:50 2.txt
-rwxr-xr-x. 1 user user 46 Dec 6 2016 aa
drwxr-xr-x. 2 user user 4096 Nov 2 11:42 Desktop
drwxr-xr-x. 2 user user 4096 Dec 6 2016 Documents
drwxr-xr-x. 2 user user 4096 Dec 6 2016 Downloads
drwxr-xr-x. 2 user user 4096 Dec 6 2016 Music
drwxr-xr-x. 2 user user 4096 Dec 6 2016 Pictures
drwxr-xr-x. 2 user user 4096 Dec 6 2016 Public
drwxr-xr-x. 2 user user 4096 Dec 6 2016 Templates
drwxr-xr-x. 2 user user 4096 Dec 6 2016 Videos
drwxr-xr-x. 9 user user 4096 Sep 14 17:13 vmware-tools-distrib
[root@host user]# ls -ld
drwx------. 30 user user 4096 Nov 21 09:46
文本文件编辑命令
cat命令
查看纯文本文件(较短的),格式为:cat [选项] [文件]
参数 | 作用 |
---|---|
-n | 显示行号 |
-d | 显示行号(不包括空行) |
-l | 显示出“不可见”的符号,如空格,tab键等等 |
[root@host user]# cat 2.txt
test
for
test
123
[root@host user]# cat -n 2.txt
1 test
2 for
3 test
4 123
head命令
用于查看纯文本文档的前N行,格式为:head [选项] [文件]
。
[root@host user]# head -3 2.txt
test
for
test
tail命令
用于查看纯文本文档的后N行,格式为:tail [选项] [文件]
。
[root@host user]# tail -2 2.txt
test
123
文件目录管理命令
touch命令
用于创建空白文件与修改文件时间,格式为:touch [选项] [文件]
。
我们可以用touch test
轻松的创建出一个名字为test的空白文档,所以这个功能无须介绍。
如果黑客执行了touch -d "2 days ago" test
,便将访问与修改时间修改为了2天前(伪造了自己没有动过该文件的假象)。
mkdir命令
用于创建空白的文件夹,格式为:“mkdir [选项] 目录”。
参数 | 作用 |
---|---|
-m=mode | 默认的文件目录权限,如"-m 755" |
-p | 连续创建多层目录(若文件夹已存在则忽略) |
-v | 显示创建的过程 |
[root@host user]# mkdir testDir
cp命令
用于复制文件或目录,格式为:cp [选项] 源文件 目标文件
。
复制命令的两种情况:
目标文件是一个目录,会将源文件复制到该目录中。
目标文件是一个文件,会将源文件覆盖该文件。
参数 | 作用 |
---|---|
-p | 保留原始文件的属性 |
-d | 若对象为"链接文件",则保留该"链接文件"的属性 |
-r | 递归持续复制(用于目录) |
-i | 若目标文件存在则询问是否覆盖 |
[root@host user]# cp 3.txt 5.txt
mv命令
用于移动文件或改名,格式为:mv [选项] 文件名 [目标路径|目标文件名]
。
将文件aaa重命名为bbb:
[root@host user]# mv aaa bbb
rm命令
用于删除文件或目录,格式为:rm [选项] 文件
。
删除普通文件并提示确认信息:“rm 文件名”
删除普通文件或目录文件,不提示:“rm -rf 文件或目录名”(慎用)
参数 | 作用 |
---|---|
-f | 忽略警告信息 |
-i | 删除前先询问 |
-r | 删除文件夹 |
用户与组管理命令
useradd命令
useradd命令用于创建新的用户,格式为:useradd [选项] 用户名
。
[root@host user]#useradd link
userdel命令
用于删除用户所有表格,格式为:userdel [选项] 用户名
。
参数 | 作用 |
---|---|
-f | 强制删除用户,家目录与其相关文件 |
-r | 同时删除用户,家目录与其相关文件 |
[root@host user]# userdel -d link
groupadd命令
用于创建群组,格式为:groupadd [选项] 群组名
创建名称为linkgroup的用户群组:
[root@host user]# groupadd linkgroup
打包压缩文件命令
tar命令
用于对文件打包压缩或解压,格式为:“tar [选项] [文件]”。
打包并压缩文件:tar -czvf 压缩包名.tar.gz 文件名
解压并展开压缩包:tar -xzvf 压缩包名.tar.gz
参数 | 作用 |
---|---|
-c | 创建压缩文件 |
-x | 解开压缩文件 |
-t | 查看压缩包内有那些文件 |
-z | 用Gzip压缩或解压 |
-j | 用bzip2压缩或解压 |
-v | 显示压缩或解压的过程 |
-f | 目标文件名 |
-p | 保留原始的权限与属性 |
-P | 使用绝对路径来压缩 |
-C | 指定解压到的目录 |
文件查询搜索命令
grep命令
用于对文本进行搜索,格式为:grep [选项] [文件]
参数 | 作用 |
---|---|
-b | 将可执行文件(binary)当作文本文件(text)来搜索 |
-c | 仅显示找到的次数 |
-i | 忽略大小写 |
-n | 显示行号 |
-v | 反向选择——仅列出没有“关键词”的行。 |
find命令
用于查找文件,格式为find [查找路径] 寻找条件 操作
这里需要注意下find
命令非常灵活导致参数非常复杂,不用记住,用时来查即可。
对于常用搜索路径有几个小窍门:“~”代表用户的家目录,“.”代表当前目录,“/”代表根目录。
参数 | 作用 |
---|---|
-name | 匹配名称 |
-perm | 匹配权限(mode为完全匹配,-mode为包含即可) |
-user | 匹配所有者 |
-group | 匹配所有组 |
-mtime -n +n | 匹配修改内容的时间(-n指n天以内,+n指n天以前) |
-atime -n +n | 匹配访问文件的时间-n指n天以内,+n指n天以前 |
-ctime -n +n | 匹配修改权限的时间-n指n天以内,+n指n天以前 |
-nouser | 匹配无所有者的文件 |
-nogroup | 匹配无所有组的文件 |
-newer f1 !f2 | 匹配比文件f1新却比f2旧的文件 |
--type b/d/c/p/l/f | 匹配文件类型(块设备、目录、字符设备、管道、链接文件、文件文件) |
--size | 匹配文件的大小(+50k查找超过50k的文件,而-50k则代表查找小于50k的文件) |
-prune | 忽略某个目录 |
--exec {} \; | 后面可接对搜索到结果进一步处理的命令 |
搜索在/etc/中所有以host开头的文件:
其中的”host*”表示所有以host开头的文件:
[root@host Desktop]# find /etc -name "host*" -print
/etc/hosts
/etc/hosts.deny
/etc/avahi/hosts
/etc/hosts.allow
/etc/host.conf