Linux常用命令整理
Part 1
-
man
: 帮助
例:
man touch // 查看touch的功能介绍
q //退出 -
常用的符号
- (1) 管道符 :
|
功能: 命令1|
命令2
命令1的输出作为命令2的输入 - (2) 重定向符号:
> ; >>
功能:将前一个命令的输出重定向到后面
>
表示覆盖
>>
表示追加 - (3) 后台运行:
&
例:ls &
//ls
命令后台运行
Part 2 : 文件管理命令
-
ls
: 显示当前目录下的所有文件信息
参数介绍:
-l
:列形式显示
-r
:反序,最近修改时间放在最后
-t
:按修改时间排序
-a
:能看到所有文件,包括隐藏文件
注:Linux下的隐藏文件以.
开头
例如:
ls -lrta | grep *.cfg
:
按行过滤(grep),显示所有的.cfg
文件 -
chmod
:修改文件的权限
补充:文件的权限
r
:可读;w
:可写;x
:可执行
rwx
:所有者权限
r-x
:组用户
r--
:其他用户
例子来展示chmod
的用法
- (1)
chmod u+x test.cfg
:
u+x
表示所有者加一个x
(可执行)权限 - (2)
chmod a+x test.cfg
:
a+x
表示所有用户加一个x
(可执行)权限
另外 :g-group ; o-other
- (3)
chmod 777 *
: 代表所有文件
777 :111 111 111
,三组用户权限设置为可读可写可执行
又如:chmod 563 test.cfg
:101 110 011
-
touch
: 创建空文件 -
mkdir
:创建目录 -
cp
:复制
- 复制文件
cp Source Dst
- 复制目录
cp -r Source Dst
cp -a Source Dst
补充
scp命令
:两台设备上复制文件(相同的OS)
scp local_file remote_username@remote_ip = remote_folder
其中:
local_file
: 本地文件
remote_username
: 远程用户名
remote_ip
: ip
remote_folder
: 目录
也可以反着来
-
mv
:移动 & 改名
- (1)
mv *.o a
// 将.o
文件移到目录a下
- (2)
mv hello.o hello.oo
//将hello.o
改名为hello.oo
-
rm
:删除
参数:-rf
删除一切,世界清净了 -
file
:探测给定文件的类型
Linux下:
.a
: 静态库
.o
: 目标文件
.so
: 动态库
.sh
: 可执行文件
-
cat/more/tail
:查看文件内容
- (1)
cat filename
:查看文件内容,将一个文件中的所有内容
全部显示
补充
1.
cat >> filename
hello world ! //可以写文件内容
最后 ctrl-D保存
2.
cat file1 file2 >> file3
将file1,file2的内容合并到file3
- (2)
more filename
:查看文件内容,文件内容分屏显示
- (3)
tail -50 hello.c
: 显示文件后 50 行
内容
tail -f hello.c
: 定位问题时,动态显示改变内容
-
grep
: 根据行过滤,筛选关键
例:
test.txt
111
1111
222
333
123
-
grep 1 test.txt
: 按行过滤文件test.txt,筛选有1的数据,并输出内容
111
1111
123 -
grep -n 1 test.txt
:按行过滤文件test.txt,筛选有1的数据,并输出内容以及所在的行号
1 : 111
2 : 1111
5 : 123
其他参数:
-i
: 忽略关键字的大小写
-v
:反向匹配,不包含写的关键字的其他所有
-
find
格式:find DIR -name "xxx"
DIR
:目录名
xxx
:文件名
例:
find ./ -name *.c
: find当前目录下名为.c的文件
参数:
-type
-type -d
: 类型为目录
-type -f
: 类型为文件
进阶:
find DIR -name "xxx" | xargs grep "***"
-
cd
cd
:进入用户Home目录(等价于cd ~
)
cd /
:返回根目录
cd ..
:上一级目录
cd ./
:当前目录
Part 3 : 系统管理命令
-
df
:显示系统分区情况
参数:
-h
:human,以人类可接受形式显示 -
free
:查看内存情况 -
ps
:列出系统中当前运行的进程,process status
常用选项:
ps -aux
:"ps -aux"打印用户名为"x"的用户的所有进程,以及打印所有将由-a选项选择的过程。如果用户名为"x"不存在,ps将会解释为"ps aux",而且会打印一个警告
ps aux
:功能与上述一样,只是优化了
ps -ef
:-e 显示所有进程
,-f 全格式
,输出结果与上述差别不大,只是展示的风格不同,aux是BSD风格,-ef是System V风格,这是次要的区别。一个影响使用的区别是aux会截断command列,而-ef不会,当结合grep时这种区别会影响到结果。
例子:
ps -aux | grep xxx
: 查看执行进程xxx的pid
综上:以上三个命令推荐使用:ps –ef
注:ps 为我们提供了进程的一次性的查看,它所提供的查看结果并不动态连续的;如果想对进程时间监控,应该用 top 工具。(下面有top命令相关)
linux上进程有5种状态:
- 运行(正在运行或在运行队列中等待)
- 中断(休眠中, 受阻, 在等待某个条件的形成或接受到信号)
- 不可中断(收到信号不唤醒和不可运行, 进程必须等待直到有中断发生)
- 僵死(进程已终止, 但进程描述符存在, 直到父进程调用wait4()系统调用后释放)
- 停止(进程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信号后停止运行运行)
ps工具标识进程的5种状态码:
D 不可中断 uninterruptible sleep (usually IO)
R 运行 runnable (on run queue)
S 中断 sleeping
T 停止 traced or stopped
Z 僵死 a defunct (”zombie”) process
-
lsof/ldd
:
- (1)
lsof -p pid
:看进程pid打开了多少文件 - (2)
ldd /sbin/test
:查看某可执行文件依赖哪些库
-
top
:动态查看系统中进程状态
top -p pid
:动态查看某进程的状态
top子命令:
P
:按所占CPU
排序
M
:按所占内存排序
q
:quit
-
kill
:杀进程
kill -l
:查看系统有哪些信号,列出来
kill -n pid
:n
为信号编号,通过kill -l
可以列出;pid
为进程号;给进程pid发送信号n
有常见信号,15 - SIGTERM
:终止信号;9 - SIGKILL
;
11 - SIGSEGV
:段错误,访问非法内存
例子:
kill -15 pid
:系统会发送一个SIGTERM的信号给对应的程序。当程序接收到该signal后,将会发生以下的事情- 程序立刻停止
- 当程序释放相应资源后再停止
- 程序可能仍然继续运行
大部分程序接收到SIGTERM信号后,会先释放自己的资源,然后在停止。SIGTERM多半是会被阻塞的、忽略.
kill -9 pid
:必杀令,多半admin会用这个命令,当然有些状态的程序不会立即响应 -
tar
:打包,压缩;解压缩的功能-
tar -zcvf ABC.tar.gz ABC
:将目录ABC下的内容压缩成压缩包ABC.tar.gz
-
tar -zxvf ABC.tar.gz
:解压缩压缩包ABC.tar.gz
-
-
ln
:链接功能
- (1).
ln abc abc_hard_link
# 链接,也称为硬链接,功能效果见下面实例 - (2).
ln -S abc abc_soft_link
#软链接,也称为符号链接,类似快捷方式的功能,功能效果见例子
举个例子展示硬链接和软链接的区别
dadadad
插图
Part 4 : 网络操作命令
ping
-
ifconfig
:查看设备ip
,配置设备ip
例如配置虚拟网卡的地址:
ifconfig etho : 12 191.167.56.60 netmask 255.255.255.0 up
升级的命令:ip
-
netstat
:查看网络状态 -
ssh
ssh user_name@user_ip
: 功能见下例展示
插入图示
-
history
:查看历史命令,常与grep
命令一起使用
例:
history | tail -10
:显示最后10条命令
history | grep ifconfig
:找相关已配的命令,ifconfig相关
history
:显示所有的敲得命令
history | grep 1024 | grep abc| grep xxx
:可以使用管道符号,无限筛选显示