Liunx系统命令速查表

Linux IT敢客 7个月前 (04-15) 8431次浏览 已收录 0个评论 扫描二维码

为了方便初学者学习 linux 系统命令,整理一张表便于速查!

主题

相关命令

作用

常用参数

备注

目录与路径

cd

进入到某个目录下

 ~ 进入指定用户的主目录

 – 返回之前进入的目录

cd   ~zhangsan

cd ~

cd

cd –

pwd

显示当前目录的全路径

pwd

ls

列出当前目录下的文件和目录

 -l 详细信息

 -m 以逗号分割

 -a 显示隐藏文件

 -r

 -t

 -R

 -x

ls -lrt

ls -la

ls -R

ll

列出当前目录下的文件和目录

等价于 ls -l   –color=tty (有颜色)

mkdir

新建目录

 -p

mkdir -p   /dir1/dir2/dir3/dir4

rmdir

删除空目录

 -p

rmdir dir1

文件的编辑

vi

编辑文件内容

常用的:x dd   ndd u n $ G L

文件的查看

cat

显示文件内容,只能查看,不能编辑

 -n 对输出行编号

 -v 显示控制字符

 -b 和-n 类似,但空白行不编号

cat   /etc/profile

cat   ~/.bash_profile

cat -b   file1 file2 file3

cat -v   file1 DOS 下的换行符会以^M 显示

more

分页显示内容

more myfile

less

分页显示内容(可以上下翻页)

less myfile

head

显示文件前面几行的内容

 -n

head -10   /etc/passwd

tail

显示文件后面几行的内容

 -n

tail -20   /etc/passwd

strings

查看二进制文件中的可打印字符

strings /bin/ls

touch

新建文件

更新文件时间

touch   myfile

文件的复制、移动和删除

cp

拷贝 copy

 -R 递归

cp   hello.txt /opt/test/hello.cp

mv

移动 move

重命名

mv   hello.txt /opt/test/ok.txt

rm

删除 remove

 -r 递归,可删除非空目录

 -f 强制删除

 -i

rm -rf /  此命令慎用!

修改文件权限

chgrp

切换组改变文件的所属组

 -R 递归

chgrp mary   /opt/test

chgrp -R   mary /opt/test

chown

改变文件的所有者

 -R 递归

chown -R   mary /opt/test

chmod

修改权限

 -R 递归批量修改

chmod   u=rwx,og=rx .bashrc

chmod a+w   .bashrc

chmod a-x   .bashrc

chmod -R   777 /home/test

搜索文件或目录

which

查看可执行文件的位置

which ls

whereis

查看文件位置

whereis ls

locate

配合数据库查看文件位置

locate ls

首次先要用 updatedb 初始化一下数据库

find

搜索硬盘上的文件

 -name

 -type

 -size

 -newer

 -user

 -group

 -amin

 -atime

 -cmin

 -ctime

 -perm

find /   -name walter

find /home   -amin -10 十分钟内访问过的文件

find /home   -atime -10 十天内访问过的文件

find /home   -cmin -10 十分钟内修改过的文件

find /home   -ctime +10 十天内被改过、新增的文件

find /home   -size +1000c 大于 1000bytes 的文件

find .   -perm 777  权限是 777 的所有文件

find .   -path "./test" -prune -o -name "*hello*"

find .   -user mary

find .   -group dev

find .   -newer hello.txt 比 hello 还要新的文件

find . !   -newer hello.txt

find .   -type d  找目录

find .   -perm 764 -exec rm {} \;

find .   -perm 764 -ok rm {} \;

find .   -perm 764 | xargs rm -f 

find .   -name '*a*' -prune  文件名包含 a,目录名不包含 a

find .   -size +1000c | xargs touch

查找字符串

grep

reGulaR   ExPression

 -i 忽略大小写

 -n 显示行号

 -v 取反

 

grep   "^ma" /etc/passwd

grep   "bash$" /etc/passwd

grep   "^[r|d]" /etc/passwd

grep   "5[1-9]testing"

日期/时间

cal

日历

cal 2011

cal 03 2011

date

日期

 -s 修改日期

 

date   +%Y/%m/%d 按指定格式显示日期

date -s   07/13/2011

date -s   11:55:00

clock   –systohc 将时间保存到硬件

date   071610512011 月日时分年

hwclock -w   写入主板芯片

time

计算某个命令执行所耗费时间

 time sh myshell.sh  运行 myshell.sh 这个脚本所花的时间

公告

wall

广播

wall hello

清屏

clear

清屏

clear

帮助

whatis

命令介绍

whatis ls

help

帮助

help cd

–help

帮助

ls –help

man

参考手册

可以像在 vi 里一样使用斜杠来查找字符串

man ls |   more

info

相关信息

info ls

网络命令

ifconfig

查看 IP

设置 IP

启用网卡

禁用网卡

ifconfig

ifconfig   eth0 172.168.0.201 netmask 255.255.0.0

ifconfig eth0 up

ifconfig eth0 down

ifconfig  –手工设置 IP 地址

ifup

启用网卡

ifup eth0

ifdown

禁用网卡

ifdown eth0

route

路由

route add   -net 192.56.76.0 netmask 255.255.255.0 dev eth0

netstat

显示 Tcp/IP 网络状态

 -a 显示所有的 socket

 -n 以 IP 地址显示

 -p 显示进程号

netstat -na

netconfig

配置网络

修改的内容实际在   /etc/sysconfig/network-scripts 中

netconfig   –图形界面下设置 IP 地址

系统信息查询

whoami

查看自己是谁

who am i

查看自己账号及登录信息

通过 su 可以看到 whoami 和 who am i 的不同

who

查看当前系统在线用户

who

w

查看当前系统在线用户

who

last

查看这个月的用户登录信息

last

hostname

查看自己的主机名

hostname

uname

列出系统信息

 -a 查询所有

uname -a

dmesg

查看开机启动信息

dmesg

uptime

查看开机时长

uptime

id

查看自己及所属的组的信息

id

finger

查看用户信息

 -s 完整列出

finger -s   username

groups

查看自己属于哪些组

groups root

查看历史命令

history

历史命令

history | tail -10

可以用!n 执行第 n 条历史,!!执行最后一条命令

history |   more/less/tail/head 进行分页显示

账号管理

newgrp

登录另一个组

类似 login 动作

groupadd

添加组(在/etc/group)

groupadd   testing

新建一个开发组 develop,创建两个开发人员 a 和 b,把 a 和 b 加入到组 develop 中去

练习:用户 a,   拥有一个文件 aaa.txt,自己拥有全部权限 rwx;还有两个用户 b 和 c,拥有读 r 和执行 x 的权限,而另两个用户 d 和 e,没有任何权限

groupdel

删除组

groupdel   test

groupmod

修改组

groupmod -n   test testing

gpasswd

修改组的密码

 -a zhang manager 添加用户 zhang 到组 manager 中;   

-d zhang   manager 从组中移除用户 zhang.           

-r manager   取消组 manager 的密码;                

-A wang   manager 设置用户 wang 为组 manager 的管理员;

gpasswd -a   xiaosi testing 表示将用户 xiaosi 加入到组 testing 中去,再检查/etc/group 文件中的信息显示是否正确?

useradd

添加用户

 -g

useradd zhangsan

userdel

删除用户

 -r 连用户主目录一起删除

userdel -r zhangsan

usermod

编辑用户

 -g 修改所属组

 -d 修改主目录

usermod -g   test51 root

usermod -d   /home/lisi zhangsan

passwd

修改用户的密码

passwd zhangsan

备注:如果忘记 root 密码,可以在开机时按下 e 进入 grub 编辑模式,移到 kernel 所在行,在最后的 rhgb   quiet 后输入 single。按回车确定后,按下 b 进入 single 模式。然后输入 passwd 修改密码。

chsh

修改用户的默认 SHELL 贝壳

查看 SHELL

 -l

 -s

chsh -l   查看 shell

chsh root   修改 root 的默认 shell

链接文件

ln

连接

 -s 建立符号链接

 -d 建立硬链接(默认,可以不写)

ln -s   /root/myfile /s_myfile

ln -d   hello.txt dhello

连接数,即有几个 inode 节点,表示硬连接数.而软连接相当于 windows 里的快捷方式

挂载设备

mount

 -t

文件系统有 vfat/iso9660,装优盘前先用 fdisk   -l 查看

mount -t   vfat /dev/sdb1 /mnt/udisk

mount -a

umount

 -f 强制将该文件系统退出

umount -a

umount   /home  umount /mnt  umount /dev/sdb4

显示

echo

显示、打印

 -e 使转义符生效

echo -e   "hello\tworld"

echo -e   "\"\""

用户切换

su

切换用户

 – 环境变量也切换过来

sudo

以其他用户的身份执行命令

只有/etc/sudoers 内的用户才有权限执行。用 visudo 编辑

visudo

用 vi 编辑/etc/sudoers 文件

在文件中的   root  ALL=(ALL)  ALL 下面加一行:

zhangsan  ALL=(ALL)    ALL

进程管理

ps

查看进程(静态)

 -e 显示所有进程

 -f 全格式

ps -ef

pgrep

类似于 ps -ef |   grep

top

查看进程(动态)

 -d 指定刷新频率(秒)

 -n 输出 n 次后退出

 u 显示指定用户进程

 k 杀掉进程

第一行的项目依次为当前时间、系统启动时间、当前系统登录用户数目、平均负载(小于 0.6 较妥)。

第二行为进程情况,依次为进程总数、休眠进程数、运行进程数、僵尸进程数、终止进程数。

第三行为 CPU 状态,依次为用户占用、系统占用、优先进程占用、闲置进程占用。

第四行为内存状态,依次为平均可用内存、已用内存、空闲内存、共享内存、缓存使用内存。第五行为交换状态,依次为平均可用交换容量、已用容量、闲置容量、高速缓存容量。

top -d 1

kill

杀掉进程

 -9 强行杀掉进程

 -15 停止进程(默认)

kill -9 进程 ID

free

查看内存使用情况

free

nice

调整程序的执行优先级

nice -n -5   find / -name core > /tmp/core

renice

通常和 ps 配合使用

硬盘管理

df

查看磁盘使用情况

查看目录在哪个分区下

 -h 以易读方式显示

 -l

df

df /boot/

df -h

du

查看文件已有容量

 -k 以 KB 输出

 -m 以 MB 输出

 -s 只列出总量

du -m /home

du -s

du -sk hello.txt

fdisk

分区

查看分区的具体情况

 -l

开关机

shutdown

关机或重启

 -r 重启

 -h 关机

 -k 警告

 -c 取消

shutdown -r   now

shutdown -h   now

shutdown -r   +1

shutdown -r   11:30

reboot

重启

reboot

init

运行级别

 0 关机

 3 命令行模式

 5 图形界面

 6 重启

init 0

halt

硬件关机

halt

poweroff

硬件关机

 -f 强行关机

poweroff

poweroff -f

启动 X-Windows

startx

进入 X-Window

进入 X-Windows 后可以用 logout 注销回到命令行

打包

tar

打包

解包

 -c

 -v

 -f

 -x

 -z

tar -c   mydir > mydir.tar

tar -cvf   a.tar /home/a   tar -xvf a.tar

tar -zcvf hello.tar.gz hello.txt

tar -zxvf hello.tar.gz

打包即是将文件或者目录打成一个包,一个包可以看作一个普通文件

压缩

gzip

解压缩

 -d

gzip   hello.tar

gzip -d   hello.tar.gz

gzip filename 将 filename 压缩,只能压缩一个文件,不能压缩目录;   gzip -d filename.gz 将 filename.gz 解压缩为 filename

gunzip

解压

gunzip   hello.tar.gz

zip

压缩

 -r

zip   file.zip *

zip m   file.zip to.txt

zip -r   file.zip *

unzip

解压

unzip   hello.zip

unzip -v   hello.zip

zcat

显示压缩文件的内容

zmore

显示压缩文件的内容

zless

显示压缩文件的内容

zgrep

查找压缩文件的内容

zdiff

比较压缩文件的不同

安装

gcc

编译

 -o 指定目标文件

gcc hello.c

gcc -o   hello.o *.c

configure

生成 makefile 文件

 –help

 -h 帮助说明

./configure   –help  :进行编译前的环境配置检查工作,如果通过,生成 makefile 文件

make

编译

make   编译生成目标文件(.o 二进制文件)、可执行文件

make install 安装程序

make clean 去除目标文件

rpm

软件包管理器

 -ivh 安装

 -Uvh 升级

 -e 卸载

 -e –nodeps 强卸

 -q 查询

 -V 验证

rpm -qa   列出所有安装过的套件和版本

rpm -qi   列出这个套件的详细信息

rpm -ql   列出这个套件安装后的文件和路径

rpm -qf   查询某文件属于那一个套件

系统服务

chkconfig

开机自动启停服务

 –list 列出所有服务

 –add 添加服务

 –del 删除服务

chkconfig   vsftpd on

chkconfig   sshd on

chkconfig   iptables off

chkconfig   –add httpd

chkconfig   –del httpd

chkconfig   –level 35 httpd on

service

立即启停服务

 start 启动

 stop 停止

 restart 重启

 status 查看

service   network restart

service   iptables stop

service   vsftpd start

service   iptables status

service   network restart –重启网络服务

任务计划

tab 键

命令自动补全

按一下会自动展开;

按两下会列出所有命令

nohup

不挂断的运行

&

后台运行

command   &

Ctrl+Z

后台运行

jobs

列出作业

fg

前台

 %number 表示 jobs 的工作代号

fg %2   后台程序切到前台

bg

后台

 %number 表示 jobs 的工作代号

bg %1   将 Stopped 状态的后台程序改为 Running 状态

at

一次性运行的任务计划

 -f 要提交的脚本

 -r 清除

 -l 罗列

at 3:00pm   tomorrow -f /home/wuxh/hello.sh

at now + 5   minutes

crontab

循环运行的任务计划

 -u 用户

 -e 编辑 crontab

 -l 罗列

 -r 删除 crontab

格式:   分<>时<>日<>月<>星期<>要运行的命令

45 4   1,10,22 * * /apps/bin/backup.sh

Bash

bash

执行脚本

bash   helloworld.sh

./w.sh

重定向符 >

标准输出

command   > out.file 2>&1 &

command   2> err.txt >&2

重定向符   >>

追加

cal   >> c.txt

重定向符 2>

标准错误

ls ddd   2> /dev/null

重定向符 <

sort <   name.txt > name.out

重定向符   <<

正则表达式

 . 匹配任意字符

 ^ 匹配行首

 $ 匹配文件尾

 [] 匹配字符组之一

 * 匹配 0 到 n 个字符

 \{min,max\}

 \(…\)

XXX*   匹配至少两个连续的 X

X\{1,10\}   匹配 1 到 10 个连续的 X

^\(.\)   匹配行首的第一个字符(不管是什么)

^\(.\).*\1$   匹配一行中的头一个字符和最后一个字符相同的行

管道符 |

双引号

引用字符串,但对$,`,\敏感

""

echo   "$$"

echo   "\$$"

单引号

引用字符串,对特殊字符不敏感

''

echo '$$'

反引号

将反引号内的字符串作为命令

echo `date`

命令集

一行中执行多个命令

 ; 顺序执行

 &&   前面成功后续才执行

 ||   前面失败后续才执行

ls;ls

ls&&ls

ls||ls

变量

 位置变量

 $$ 脚本当前进程 ID

 $! 后台运行的最后一个进程的 ID

 $? 命令的退出状态(0 表示成功,1 表示失败)

 $# 传递到脚本的参数个数

 $* 以一个单字符串的形式显示所有向脚本传递的参数

 $@ 与$*相同,但是使用时加引号,并在引号中返回每个参数

 $_ 就是 set 命令

观察$*和$@的不同:

for i in   "$*"

do

  echo $i

done

 

for i in   "$@"

do

  echo $i

done

wc

统计字数

 -l 统计行数

 -c 统计字符

 -w 统计字

cat   /etc/passwd | wc -l

sleep

等待

sleep 5   暂停 5 秒

usleep 500   这个单位是纳秒

read

从键盘读入信息到变量中

read name

变量赋值

PATH="$PATH":/root

LANG=C

LANG=zh_CN.gb2312

PS1='[\u@\h   \W]\$ '

set

显示当前 shell 的变量,包括当前用户的变量(即环境变量)

set

unset

删除变量

unset i

export

把变量即刻导入到当前的用户环境中(被 export 的变量叫环境变量),这时可以在 env 中看到

环境变量相当可以被子进程使用,其他变量不行。

export

export   LC_ALL=en

env

显示当前用户环境的变量(被 export 的变量可以用 env 查看到)

env

alias

命令别名

alias ll

alias l=ls -la

unalias

取消命令别名

unlias l

cut

提取字符串

 -c 字符

 -f 字段

cat   /etc/passwd | cut -d ":" -f1

last | cut   -d " " -f1 列出第一个区块

who | cut   -c1-8 每行的 1-8 个字符

cut -d:   -f1,6 /etc/passwd

join

把两个文件中相同的行连起来

join -t ':'   /etc/passwd /etc/shadow

join -t ':'   -1 4 /etc/passwd -2 3 /etc/group

sed

Stream   Editor 流编辑器

sed   's/Unix/UNIX/' myFile 把 Unix 换成 UNIX(没改原文件),但只改动每行的第一个改掉

sed   's/Unix/UNIX/g' myfile > temp.txt 把每行的所有 Unix 都换成 UNIX

sed '1,2d'   myfile 删除第 1、2 行

sed   '/[Tt]est/d' 删除含 test 或 Test 的行

sed -n   '20,25p' text 只显示第 20 到 25 行

sed 's/…//'   data 删除文件中每行的前 3 个字符

sed   's/…$//' data 删除文件中每行的最后 3 个字符

awk

last -n 5 |   awk '{print $1 "\t" $3}'

paste

和 cut 相反的命令,合并行

 -d 指定合并的分隔符

 -s 把文件内的所有行合并为一行

paste names   numbers 把两个文件的每行都分别合起来

paste -d'+'   names addresses numbers

paste -s   names

ls | paste   -d' ' -s

sort

对文件内容做排序

 -n 以数字排序

 -r 反向排序

 -u 同样的只出现一次

sort -n   name.txt

diff

比较两个文件的不同

diff file1   file2

uniq

删除重复行从而只显示一个

last | cut   -d " " -f1 | sort | uniq

查看这个月登录主机的用户都有谁

source

执行脚本

source   helloworld.sh

tee

输出到文件的同时显示在屏幕上

 -a 追加到末尾

tr

替换指定内容

 -d 删除指定串

 -s 替换重复字符

cat dostxt   | tr -d '\r' > dostxt-noM

去掉文件中的 DOS 下的   ^M 断行符

split

分割文件

 -b 以文件 size 分

 -l 以行数分

split -l 5   /etc/passwd test

test

测试文件

测试字符串

测试数值

文件:

字符串:

数值:

expr

expr 10 +   10 只算整数,真正的计算要用 bc(计算器)

expr 3 \* 7   乘号要转义

函数

下例可以看出$*和$@的区别:

function   testargs

{

        echo "There is $# args"

        echo $10

}

testargs   "$*"

testargs   "$@"


IT 敢客 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Liunx 系统命令速查表
喜欢 (155)
[313176056@qq.com]
分享 (0)
IT敢客
关于作者:
“我所做的一切都是为了方便我的生活~~~“
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址