我工作中的常用LINUX命令

Linux系统命令非常之多,但是玩过Linux之后就会明白,我们只需要掌握常用的命令就可以了。常用命令的使用方式也不可能都记住,但是你只要知道这个命令,使用的时候查下man或commond -h看看用法就好了。

cd

这时一个最基本的命令,我们平时基本上也只会用到cd dir,也可以跟一些option,但是基本上是用不到的,dir可以是绝对路径也可以是相对路径。

1
2
3
cd /path/path2 # 切换到目录/path/path2
cd ./path # 切换到当前目录下的path目录中,“.”表示当前目录
cd ../path # 切换到上层目录中的path目录中,“..”表示上一层目录

ls

用来查看文件和目录,option很多,下面列下我在工作中经常用到的,其他的可以通过man ls来查看详细的说明。

1
2
3
4
5
-l:列出文件的属性、权限等详细信息。ls -l有一个别名是ll
-a:列出所有文件,包括隐藏文件
-h:将文件容量以较易读的方式(GB,kB等)列出来
-R:递归列出
-F:在每个文件名后附上一个字符以说明该文件的类型,“*”表示可执行的普通文件;“/”表示目录;“@”表示符号链接;“|”表示FIFOs;“=”表示套接字(sockets)。

pwd

用于打印当前目录的绝对路径。

mkdir

创建一个空文件夹,与之对应的rmdir用于删除空文件夹。

1
2
3
4
mkdir [-mp] 目录名
-m:配置文件权限。mkdir -m 777 test
-p:递归创建目录。mkdir -p ./test1/test2,若test1不存在,则会先创建test1

rm

该命令用于删除文件或者目录。

1
2
3
-f:强制删除
-i:交互模式,删除前会询问用户
-r:递归删除

mv

用户移动文件或者目录,更改名字。有两种基本用法:

mv [-fiu] source destination
mv [options] source1 source2 source3 … directory

用法一中,destination可以是文件名,也可以是目录;用法二是将多个文件或目录移动到目标目录中,注意目标只能是一个目录。

1
2
3
-f:强制,若目标文件存在,不会询问,直接覆盖
-i:若目标文件存在,则会询问是否覆盖
-u:若目标文件已存在,且source比较新时,则更新目标文件

cp

用于复制文件或者目录,也可以用于创建链接文件(windows下面的快捷方式)。同mv一样,也有两种用法:

cp [-adfilprsu] source destination
cp [options] source1 source2 source3 … directory

1
2
3
4
5
6
-f:强制
-i:若目标文件存在,则会提示是否覆盖
-p:连同文件属性一起复制
-r:递归复制
-s:复制成符号链接文件
-u:source比destination新才复制

scp

用于在Linux之间复制文件或者目录。

1
2
3
scp [-r] [-P port] file_source file_target
-r:递归复制
-P:指定数据传输用到的端口号

grep

用于字符串的查找,大多数情况下都是和管道函数一起使用。

1
2
3
4
5
6
7
grep [-acinv] '查找字符串' filename
-a :将binary文件以text文件的方式查找数据
-c :计算找到‘查找字符串’的次数
-i :忽略大小写
-v :反向选择,即显示出没有‘查找字符串’内容的那一行
与管道函数的使用如下:
ps -ef|grep ora

find

用来在指定目录下查找文件。

1
2
3
4
5
6
7
8
9
10
11
find [path] [options] [action]
常用参数:
-name filename:查找文件名称为filename的文件。
-cmin n : 在过去 n 分钟内被修改过
-ctime n : 在过去n天内被修改过的文件
-user name:文件所有者为name的文件
-group name:文件所有组为name的文件
-type type:查找文件类型为type的文件。type的可能取值:一般文件(f)、设备文件(b、c)、目录(d)、连接文件(l)、socket(s)、FIFO管道文件(p)
关于action的用法,比如我们要找到文件名以'ip6tables'开头的文件,并列出这些文件的详细信息:
find / -type f -name ip6tables* -exec ls -l {} \;

top

实时显示进程动态。

top [-] [d delay] [i] [n]

1
2
3
4
5
6
7
d : 改变显示的更新速度
i : 不显示任何闲置 (idle) 或无用 (zombie) 的行程
n : 更新的次数,完成后将会退出 top
b :搭配 "n" 参数一起使用,可以用来将 top 的结果输出到文件中
更新显示5次的结果输入到名称为top.log的文件中
top -n 5 -b < top.log

ps

查看某个时间点的进程运行情况。主要参数如下:

1
2
3
4
5
6
7
8
9
-A:显示所有的进程。(或者-e
-a:不与terminal有关的所有进程
-u:有效用户的相关进程
-x:一般与a参数一起使用,可列出较完整的信息,不以终端机来区分。
-f:显示UID,PPIP,C与STIME栏位
一般比较常见的用法:
ps -ef
ps -aux

kill

kill可将指定的信息送至程序.

1
2
3
4
5
6
7
kill -sgl PID
sgl的常用信号如下:
1:SIGHUP,启动被暂停的进程
2:SIGINT,中断一个程序的进行
9:SIGKILL,强制中断一个进程的进行
15:SIGTERM,以正常的结束进程方式来终止进程
17:SIGSTOP,暂停一个进程的进行

tar

对文件进行打包,压缩,常见参数如下。

1
2
3
4
5
6
7
8
-c :新建打包文件
-t :查看打包文件的内容含有哪些文件
-x :解打包或解压缩的功能,可以搭配-C(大写)指定解压的目录
-j :通过bzip2的支持进行压缩/解压缩
-z :通过gzip的支持进行压缩/解压缩
-v :在压缩/解压缩过程中,将正在处理的文件名显示出来
-f filename :filename为要处理的文件
-C dir :指定压缩/解压缩的目录dir

常用的三个固定写法:

1
2
3
压缩:tar -zcvf filename.tar.bz2 文件或目录
查询:tar -ztvf filename.tar.bz2
解压:tar -zxvf filename.tar.bz2 -C 目录

zip

压缩文件。

1
2
3
4
5
6
7
zip [options] 压缩后文件名 文件1 文件2 ....
zip [options] 压缩后文件名 文件或者目录
options常见的有以下几种:
-d:从压缩文件内删除指定的文件。
-m:将文件压缩并加入压缩文件后,删除原始文件,即把文件移到压缩文件中。
-r:递归处理

unzip

解压缩zip文件

1
2
3
4
5
6
unzip [options] 文件.zip [-d 目标目录]
options常见的有以下几种:
-f:更新现有的文件。
-n:解压缩时不要覆盖原有的文件。
-o:不必先询问用户,unzip执行后覆盖原有文件。

cat

查看文本文件内容。

1
cat filename

more

以一页一页的方式查看文本,键翻到下一页,键往回显示一页。

1
2
3
4
more [options] [-每次显示行数] [+开始行号] filename
options:
-p:翻页时先清除萤幕后再显示内容

tail

也是一个查看文件内容的命令,大多数时候搭配-f参数来查看正在改变的日志。

1
2
3
4
5
6
7
tail [options] 文件名
options:
-f:循环读取
-q:不显示处理信息
-n <行数>:显示行数
-s, --sleep-interval=S 与-f合用,表示在每次反复的间隔休眠S秒

groupadd

将新的用户组加入系统

1
2
3
groupadd [-g gid] groupname
-g gid:指定组的ID号

useradd

创建系统用户。

1
2
3
4
useradd [-d 用户主目录] [-e 有效期] [-f 缓冲天数] [-g 主要群主] [-G 次要群主] [-u uid] 用户名
有效期:账号的有效期限
缓冲天数:指密码过期后多少天之后关闭账号

chown

指定文件的拥有者改为指定的用户或组

1
2
3
chown [-R] user[:group] file1 file2...
-R:递归处理子目录或文件

chmod

修改文件的访问权限。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
chmod [-R] mode file1 file2...
-R:递归处理子目录或文件
说说mode:
1、先说比较直观的写法:
[ugoa][+-=][rwx]
u表示文件所有者,g表示文件所属组,o表示其他用户,a表示前三者
+增加权限,-取消权限,=修改权限为。
r表示读取,w表示写,x表示执行权限
示例:chmod u+rwx,g+rx,o=r file1
2、平时工作用得比较多的就是数字表示,写起来比较简单,但是没有那么直观。
以三个数字表示,分别表示所属用户的权限、所属组的权限、其他用户权限。
r=4,w=2,x=1
示例:修改file1,user具有rwx,group和others具有r权限。chmod 744 file1

df

用于查看文件系统磁盘使用情况。基本上也就用到df -h

1
2
3
4
5
6
7
8
df [options] [file]
说明:
file:查看指定文件夹或文件的使用情况,emmmm...没用到过这个。
-a:查看所有文件系统,默认。
-h:以可读格式显示。
-t, --type=TYPE:显示指定文件系统的TYPE的内容
-x, --exclude-type=TYPE:排除指定文件系统的TYPE的内容

du

显示目录或文件的大小

1
2
3
4
5
6
du [-chms] [--exclude=<目录或文件>] 目录或文件
-c:显示文件总数
-h:以可读方式显示。
-m:以M为单位显示文件大小。
-s:只显示总计

rpm

Red Hat Linux发行版专门用来管理Linux各项套件的程序。

1
2
3
4
5
6
7
8
9
10
11
12
rpm [-afqlihve] rpm包名 [--force] [--nodeps]
-a:查询所有已经安装的软件包
-f:查询文件所属软件包
-q:查询软件包
-l:显示软件包的文件列表
-i:安装软件包
-h:显示安装进度
-v:提供详细的输出
-e:卸载rpm包
--force:强制安装
--nodeps:不验证依赖

crontab

用来定期执行程序的命令。
如果是系统的定时任务,直接编辑/etc/crontab即可。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
crontab [-u uername] [-ler]
-u:只能root执行,帮其他用户创建或删除定时调度作业。
-l:查看crontab工作列表
-e:编辑crontab工作内容
-r:删除所有作业
内容的基本格式如下:
分钟(0~59) 小时(0~23) 日期(1~31) 月份(1~12) 周(0~7) /xxx/xxx/xxx.sh
特殊字符:
*:表示任何时候都可以。例如0 12 * * *,表示每天的12点执行
,:和。例如0 12,13 * * *,表示每天的12点和13点执行
-:表示时间范围。例如10 5-8 * * *,表示每天5点到8点的10份都执行一次。
/n:没隔n执行一次。例如*/30 * * *,表示每30分钟执行一次

fdisk

用于进行磁盘管理,分区操作。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
fdisk [-l] [设备名称]
-l:列出所有分区内容
直接输入fdisk 设备名称 就可以对磁盘进行分区管理。
[root@master ~]# fdisk /dev/sda
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
命令(输入 m 获取帮助):m
命令操作
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition
g create a new empty GPT partition table
G create an IRIX (SGI) partition table
l list known partition types
m print this menu
n add a new partition
o create a new empty DOS partition table
p print the partition table
q quit without saving changes
s create a new empty Sun disklabel
t change a partition's system id
u change display/entry units
v verify the partition table
w write table to disk and exit
x extra functionality (experts only)

shutdown

用来进行关机相关的操作。

1
2
3
4
5
6
7
8
shutdown [options] [关机时间] [msg]
options:
-t seconds:设定几秒之后关机;
-k:搭配msg使用,并不真的关机,只将消息传递给使用者。
-r:关机后重启
-n:强制关机。
-c:取消目前正在进行的关机动作

reboot

重启命令