linux 常用命令

文件管理

列出文件

ls  dirName

-a 隐藏文件
-l 完整信息

显示文件内容

cat fileName
-b 显示行号

统计单词数目

wc fileName1 [fileName2] .....

显示:
84 151 665 gc.sh
分别表示

  1. 文件总行数
  2. 单词数目
  3. 文件字节数,即文件大小
  4. 文件名

复制文件 from 为 to

cp from to

移动文件 old 为 new (可以用来重命名)

mv old new

删除文件

rm fileName1 [fileName2] ....

-rf 删除目录

查看文件差别

diff file1 file2

硬链接,删除一个仍然找得到

ln fileName linkName

符号链接,删除源,另一个找不到

ln -s fileName linkName3

目录

进入主目录

cd ~

. # 当前目录
.. # 上层目录

创建目录

mkdir dirName
-p 创建父目录

删除空目录

rmdir dirName1 [dirName1] ...

显示当前路径

pwd

文件权限

文件访问模式

读取 (r): 能读取文件信息,查看文件内容
写入 (w): 可编辑文件,也可以删除文件内容
执行 (x): 可将文件作为程序来运行

目录访问模式

读取 (r): 用户可查看目录中的文件
写入 (w): 可在当前目录删除文件或者创建文件
执行 (x): 遍历目录的权利。如 ls cd

查看权限

ls -l
    -rwxr-xr--  1 amrood   users 1024  Nov 2 00:10  myfile

第一列:
第一组字符(2-4) 文件所有者权限
第二组字符(5-7) 文件所属用户组权限
第三组字符(8-10) 其他用户权限

改变权限

符号 说明
+ 为文件或者目录增加权限
- 删除文件或者目录的权限
= 设置指定的权限
a 所有用户
o 其它用户
g 用户组
u 所属用户

如:

chmod a+x 1.c
chmod o+wx,u-x,g=rx 1.c

没有指定用户,默认为给所有用户

数字表示权限

数字 说明 权限
0 没有任何权限 ---
1 执行权限 --x
2 写入权限 -w-
3 执行权限和写入权限:1 (执行) + 2 (写入) = 3 -wx
4 读取权限 r--
5 读取和执行权限:4 (读取) + 1 (执行) = 5 r-x
6 读取和写入权限:4 (读取) + 2 (写入) = 6 rw-
7 所有权限: 4 (读取) + 2 (写入) + 1 (执行) = 7 rwx

如:

chmod 1 1.c
ls -l 1.c
    ---------x  1 yzr  staff  76  5 19 09:39 1.c
chmod 777 1.c
ls -l 1.c
    -rwxrwxrwx  1 yzr  staff  76  5 19 09:39 1.c

更改所有者和用户组

chown user fileList

user 可以为用户名,或者用户id

chgrp group fileList

group 可以为群组名,或者id

suid 和 sgid

chmod u+s 1.c

设置了 suid 位 的文件 ,执行位 x 变为 s
linux 通过给程序设置 suid 位赋予普通用户特殊权限,如果运行一个有suid的权限的程序,那么会继承该程序所有者的权限.

环境变量

全局的配置

/etc/profile

设置 PATH 变量
在终端输入一条命令的时候,shell会根据 PATH 变量查找该命令对应的程序, PATH 变量指明了该程序所在的路径

PATH=/bin:/user/bin

多条路径间用冒号 ':' 分隔

显示变量

echo $PATH

PS1 和 PS2 变量

PS1 命令提示符
PS2 第二命令提示符

常用环境变量

变量 描述
DISPLAY 用来设置将图形显示到何处。
HOME 当前用户的主目录。
IFS 内部域分隔符。
LANG LANG可以让系统支持多语言。例如,将LANG设为pt_BR,则可以支持(巴西)葡萄牙语。
PATH 指定Shell命令的路径。
PWD 当前所在目录,即 cd 到的目录。
RANDOM 生成一个介于 0 和 32767 之间的随机数。
TERM 设置终端类型。
TZ 时区。可以是AST(大西洋标准时间)或GMT(格林尼治标准时间)等。
UID 以数字形式表示的当前用户ID,shell启动时会被初始化。

管道和过滤器

一个命令的输出作为另一个命令的输入,就是管道
管道是linux 进程之间一种重要的通信机制,除了管道还有 共享内存,消息队列,信号,套接字等
能够接受数据,过滤后再输出的工具称为 过滤器

grep 命令

grep pattern fileName

-v 输出不匹配行
-n 输出匹配行以及行号
-l 输出匹配行所在文件名
-c 输出匹配的总行数
-i 不区分大小写匹配
-r 递归查找

如果没有为 grep 指定检索的文件,从标准输入读取

sort 命令

对文件各行排序

sort fileName

-n 按照数字大小排序,忽略空格或者tab
-r 降序排序.默认为升序
-f 不区分大小写
+x 对第x列(0为起点)开始排序

下面的例子通过管道将 ls、grep 和 sort 命令连起来使用,过滤包含“Aug”的行,并按照文件大小排序:

ls -l | grep "Aug" | sort +4n

pg 和 more 命令

more 1.c
cat 1.c | more

分页显示, space 下一页, b 上一页

tr 转换

制表符转空格
cat text | tr '\t' ' '
压缩字符
cat text | tr ' '

cut 按列切分文本

截取文件的第2列和第4列

cut -f2,4 filename

去文件除第3列的所有列

cut -f3 --complement filename

-d 指定定界符

cat -f2 -d";" filename

sed 文本转换

find 命令


find  pathname  -options  [ -print -exec -ok ...]

    pathname         #是find命令所查找的目录路径,例如.表示当前目录,/表示根目录
    -print           #表示find命令将匹配的文件输出到标准输出中
    -exec            #表示find命令对匹配的文件执行该参数给出的shell命令。相应命令的形式为 ‘cmd’ {} \;
    -ok              #它的作用和-exec一样,只是需要用户交互,更安全

find 命令选项

选项 解释
-name 按照文件名查找文件
-perm 按照权限查找文件
-prune 使find命令不在当前指定的目录中查找,如果同时使用-depth选项,那么-prune将被find命令忽略
-user 按照文件属主来查找文件
-group 按照文件数组来查找文件
-mtime -n +n 按照文件的更改时间来查找文件
-type 文件类型
-depth 在查找文件时,首先查找当前目录中的文件,然后再在其子目录中查找
-fstype 表示查找位于某一类型文件系统中的文件,这些文件系统类型通常可以在配置文件/etc/fstab中找到,该配置文件中包含了本系统中有关文件系统的信息
-mount 表示在查找文件时不跨越文件系统的mount点
-follow 表示如果find命令遇到符号链接文件,就跟踪至链接所指向的文件
-cpio 表示对匹配的文件使用cpio命令,将这些文件备份至磁带设备中

type :
b:表示块设备文件 block
d:表示目录 directory
c:表示字符设备文件 char
p:表示管道文件 pipe
l:表示符号链接文件 link
f:表示普通文件 file

ntime :
-n 表示从此刻算起,文件的更改是在n天以内
+n 表示文件的更改时间是在n天以前

用例:

# 查找当前用户主目录下的所有文件
find ~

# 在logs目录下查找更改时间在5日以前的文件并删除它们
find /logs -mtime +5 -exec rm {} \;

# 在当前目录中查找以.log结尾、更改时间在5日以上的文件,并删除,但在删除前给出提示
find . -name “*.log” -mtime +5 -ok rm {} \;

# 查找当前目录下644权限的文件
find . -perm 644

# 查找当前目录下大于5M的文件
find . -size +5M

进程管理

创建后台进程 :
在命令后面加 &

ps 命令

查看正在运行的进程

ps
-f 查看所有信息
-x 显示无终端的进程
-a 显示所有用户的所有进程
-u 显示更多信息
-e 显示所有进程
描述
UID 进程所属用户的ID,即哪个用户创建了该进程。
PID 进程ID。
PPID 父进程ID,创建该进程的进程称为父进程。
C CPU使用率。
STIME 进程被创建的时间。
TTY 与进程有关的终端类型。
TIME 进程所使用的CPU时间。
CMD 创建该进程的命令。

终止进程

若程序运行在前台可用 kill 命令 或者 ctrl+c 终止

如果在后台,先通过 ps 获取进程id,然后 kill 杀死进程

kill pid
-9 强制杀死进程
  • 父进程和子进程:
  • 僵尸进程:父进程在子进程之前被终止,子进程就成为了僵尸进程。 init 进程会成为所有孤儿进程的父进程
  • 常驻进程:一般式系统进程,以root权限运行在后台,可以处理其它进程请求

任务和进程

动态显示正在运行的进程

top

查看系统中正在运行的任务

jobs

后台任务调到前台

fg %jobNumber

前台任务掉到后台

bg %jobNumber

如果希望将当前任务转移到后台,可以先 Ctrl+z 暂停任务,再使用 bg 命令。任务转移到后台可以空出终端,继续输入其他命令

网络通信工具

ping 命令

ping 命令会向网络上的主机发送应答请求,根据响应信息可以判断远程主机是否可用。

ping hostName or ip-address

如果主机没有响应,可以看到类似下面的信息:

ping: unknown host giiiiigle.com

ftp 工具

ftp 是 File Transfer Protocol 的缩写,称为文件传输协议。通过 ftp 工具,能够将文件上传到远程服务器,也可以从远程服务器下载文件

netstat 命令

netstat

常见参数

a (all)显示所有选项,默认不显示LISTEN相关
-t (tcp)仅显示tcp相关选项
-u (udp)仅显示udp相关选项
-n 拒绝显示别名,能显示数字的全部转化成数字。
-l 仅列出有在 Listen (监听) 的服務状态

-p 显示建立相关链接的程序名
-r 显示路由信息,路由表
-e 显示扩展信息,例如uid等
-s 按各个协议进行统计
-c 每隔一个固定时间,执行该netstat命令。

文件系统

常见目录

目录 说明
/ 根目录,只能包含目录,不能包含具体文件。
/bin 存放可执行文件。很多命令就对应/bin目录下的某个程序,例如 ls、cp、mkdir。/bin目录对所有用户有效。
/dev 硬件驱动程序。例如声卡、磁盘驱动等,还有如 /dev/null、/dev/console、/dev/zero、/dev/full 等文件。
/etc 主要包含系统配置文件和用户、用户组配置文件。
/lib 主要包含共享库文件,类似于Windows下的DLL;有时也会包含内核相关文件。
/boot 系统启动文件,例如Linux内核、引导程序等。
/home 用户工作目录(主目录),每个用户都会分配一个目录。
/mnt 临时挂载文件系统。这个目录一般是用于存放挂载储存设备的挂载目录的,例如挂载CD-ROM的cdrom目录。
/proc 操作系统运行时,进程(正在运行中的程序)信息及内核信息(比如cpu、硬盘分区、内存信息等)存放在这里。/proc目录伪装的文件系统proc的挂载目录,proc并不是真正的文件系统。
/tmp 临时文件目录,系统重启后不会被保存。
/usr /user目下的文件比较混杂,包含了管理命令、共享文件、库文件等,可以被很多用户使用。
/var 主要包含一些可变长度的文件,会经常对数据进行读写,例如日志文件和打印队列里的文件。
/sbin 和 /bin 类似,主要包含可执行文件,不过一般是系统管理所需要的,不是所有用户都需要。

df 命令

查看磁盘空间使用情况(以千字节为单位

df -k
Filesystem      1K-blocks      Used   Available Use% Mounted on

每一列的含义如下:

说明
Filesystem 代表文件系统对应的设备文件的路径名(一般是硬盘上的分区)。
kbytes 分区包含的数据块(1024字节)的数目。
used 已用空间。
avail 可用空间。
capacity 已用空间的百分比。
Mounted on 文件系统挂载点。

某些目录(例如 /devices)的 kbytes、used、avail 列为0,use列为0%,这些都是特殊(或虚拟)文件系统,即使位于根目录下,也不占用硬盘空间

du 命令

查看特定目录的空间使用情况

du dirName
-h 显示的更清晰

挂载文件系统

挂载是指将一个硬件设备(例如硬盘、U盘、光盘等)对应到一个已存在的目录上。 若要访问设备中的文件,必须将文件挂载到一个已存在的目录上, 然后通过访问这个目录来访问存储设备

查看当前系统所挂载的硬件设备

mount

一般约定,/mnt 为临时挂载目录,例如挂载CD-ROM、远程网络设备、软盘等。

用户管理

用户组

groupadd gorupName

修改用户组名

groupmod -n newName oldName

修改用户组id

groupmod -g 545 gorupName

删除

groupdel gorupName

用户

    useradd -d homedir -g groupname -m -s shell -u userid accountname

含义
-d homedir 指定用户主目录。
-g groupname 指定用户组。
-m 如果主目录不存在,就创建。
-s shell 为用户指定默认Shell。
-u userid 指定用户ID。
accountname 用户名。

修改密码
passwd userName

修改用户

    usermod -d /home/mcmohd20 -m -l mcmohd mcmohd20

删除用户

    userdel -r mcmohd20

userdel 命令仅有一个选项 -r,用来删除用户主目录和本地邮件。
为了便于恢复被误删的用户,可以忽略 -r 选项,保留用户主目录,之后确认无误可以随时删除主目录。

你可能感兴趣的:(linux 常用命令)