linux 的一些常用命令
文件目录操作
日常开关机
用户管理
搜索命令
文本内容搜索
任务操作
系统管理
网络相关
ssh远程登录服务器
scp远程拷贝文件
解压tar文件
其他应用
文件目录操作
1
| cat, more, less, head, tail
|
1 2 3 4 5 6 7 8
| 常见参数: -l :列出长数据串,包含文件的属性与权限数据等 -a :列出全部的文件,连同隐藏文件(开头为。的文件)一起列出来(常用) -d :仅列出目录本身,而不是列出目录的文件数据 -h :将文件容量以较易读的方式(GB,kB 等)列出来 -R :连同子目录的内容一起列出(递归列出),等于该目录下的所有文件都会显示出来
示例: ls -l /tmp
|
1 2
| mkdir newdir mkdir -p newdir/newdir #递归创建目录
|
1 2
| mv filename dirname 移动文件 mv oldfilename newfilename 对文件重命名
|
1 2
| ln /etc/passwd passwd 创建硬链接 ln -s 创建软链接
|
1 2
| r=4,w=2,x=1 chmod xxx filename
|
日常开关机
1 2 3 4
| shutdown -r 关机重启 -h 关机不重启 now 立刻关机
|
用户管理
实现用户账号的管理,要完成的工作主要有如下几个方面:
用户账号的添加、删除与修改
用户密码的管理
用户组的管理
Linux系统用户账号的管理
- 添加新的用户账号使用 useradd 命令,其语法如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| useradd [-u|-g|-m|-d|-s] username
其中各选项含义如下:
-c comment 指定一段注释性描述。 -d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。 -g 用户组 指定用户所属的用户组。 -G 用户组,用户组 指定用户所属的附加组。 -s Shell文件 指定用户的登录Shell。 -u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号。 -m/M:创建家目录 /M 不创建
举例: 添加用户:`useradd -m ningshixian ` 然后设置密码: `passwd ningshixian`
|
- 删除用户:
- 修改帐号
1 2
| usermod 选项 用户名 usermod -s /bin/ksh -d /home/z –g developer sam
|
- 查看用户:
Linux系统用户组的管理
- 增加一个新的用户组使用groupadd命令。 其格式如下:
- 如果要删除一个已有的用户组,使用groupdel命令, 其格式如下:
- 修改用户所在组
1 2 3 4 5 6 7 8
| 强行设置某个用户所在组 sermod -g 用户组 用户名```
把某个用户改为 group(s) usermod -G 用户组 用户名```
把用户添加进入某个组(s),注意:原来的用户组还存在 usermod -a -G 用户组 用户名```
|
- 查看 所有用户 及 所有用户组
1 2 3 4 5 6 7 8 9
| `groups` 查看当前登录用户的组内成员
`groups 52php` 查看52php用户所在的组,以及组内成员
`whoami` 查看当前登录用户名
/etc/group 文件包含所有组
/etc/shadow 和 /etc/passwd 系统存在的所有用户名
|
- 查看当前活跃的用户列表:
w
1
| cat /etc/passwd|grep -v nologin|grep -v halt|grep -v shutdown|awk -F":" '{ print $1"|"$3"|"$4 }'|more
|
权限分配
- 用户/用户组管理
1
| chown -R nsx:nsx /usr/hadoop/
|
- 让普通用户拥有root的权限:
https://blog.csdn.net/lglglgl/article/details/46932001
1 2 3 4 5 6 7 8 9 10 11 12 13
| 以root身份登录,然后输入
`usermod -g root ningshixian`
执行完后username即归属于root组了,可以再输入
`id ningshixian`
查看输出验证一下,如果看到类似下面的输出:
`uid=502(ningshixian) gid=0(root) groups=0(root)`
就表示OK了
|
搜索命令
寻找 ls 命令所在位置: which ls
寻找特定档案:locate passwd
寻找特定档案:find
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| 用法: find [PATH] [option] [action] find 支持正则匹配 -name 按照文件名查找文件。 -perm 按照文件权限来查找文件。 -user 按照文件属主来查找文件。 -group 按照文件所属的组来查找文件。 -mtime -n +n 按照文件的更改时间来查找文件 -type 查找某一类型的文件
实例:
find / -name *.txt find . -name *.pyc exec rm -rf {}\; 找出 pyc 文件并删除 find . -type d 查找目录
|
文本操作
全文查看 cat/tac
语法: cat/tac filename
分页查看 less/more
语法: less/more filename
头尾查看 head/tail
语法: head filename
1 2 3
| 常见用法: head -10 /etc/passwd 查看文件前 10 行 tail -5 /etc/passwd 查看文件后 5 行
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| wc [-lwm] 选项: -l :仅列出行; -w :仅列出多少字(英文单字); -m :多少字符;
常见用法
wc /etc/passwd 50 94 2550 /etc/passwd 行数 单词数 字节数 wc -l /etc/passwd #统计行数很常用 wc -w /etc/passwd #统计单词出现次数 wc -m /etc/passwd #统计文件的字节数
|
1 2 3 4 5 6 7 8 9 10 11 12 13
| sort [-bcfMnrtk](源文件)[-o 输出文件』
常用 1 按文本排序 sort filename 2 按数字排序 sort -n 3 在输出内容中去除重复行 sort -u 4 反序 sort -r 5 指定列排序 sort -k 列号 -t 分隔符
|
1 2 3 4 5 6
| diff file1 file2 -i 忽略大小写 -w 忽略空白字符 -b 忽略空格数量的改变 -u 统一显示,比较信息,一般用于生成 patch 文件,在 svn 中版本控制很有用 diff -u file1 file2 > difference.patch
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| 主要参数 [options] 主要参数: -c:只输出匹配行的计数。 -I:不区分大 小写(只适用于单字符)。 -h:查询多文件时不显示文件名。 -l:查询多文件时只输出包含匹配字符的文件名。 -n:显示匹配行及 行号。 -s:不显示不存在或无匹配文本的错误信息。 -v:显示不包含匹配文本的所有行。
常见使用:
1 grep root /etc/passwd 匹配文件中有 root 的行 2 grep ^root /etc/passwd 匹配文件中以 root 开头的行 3 grep -v root /etc/passwd 匹配文件中无 root 的行 4 grep -v ^$ test 过滤文件中的空行 5 cat xxx.txt | grep -n error
|
替换 / 查找 / 删除命令——sed
强大的文本分析命令——awk
任务操作
定时任务: contab
任务调度 & / nohup
, 将任务打入后台
1 2
| python test.py& nohup python test.py&
|
系统管理
1 2 3 4 5 6 7 8 9 10 11 12
| ps [option] -A :所有的进程均显示出来 -a :不与 terminal 有关的所有进程 -u :有效用户的相关进程 -x :一般与 a 连用 可列出较完整的信息 -l :以长列表形式显示 -o :自定义显示
常用:
ps -aux/-ef 显示所有进程信息 ps -ax -o pid,%cpu,%mem --sort=-%cpu,-%mem | head -10 显示 cpu 以及内存占用最高的 10 个进程
|
- 性能分析:
top
Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况
按进程的CPU使用率排序: 运行top命令后,键入大写P。
按进程的内存使用率排序: 运行top命令后,键入大写M。
内容解释:
第一行是任务队列信息
1 2
| 13:22:30 up8 min, 4 users, load average: 0.14, 0.38, 0.25 当前时间 系统运行时间 当前登录用户数 系统负载
|
第二是进程信息
第三行是CPU信息
第四五行为内存信息
进程信息
- 系统活动情况报告:
sar
Linux 上最为全面的系统性能分析工具之一,可以从多方面对系统的活动进行报告,包括:文件的读写情况、系统调用的使用情况、磁盘 I/O、CPU 效率、内存使用状况、进程活动及 IPC 有关的活
网络相关
1 2 3 4 5
| 命令格式: ifconfig 『网络设备』 『参数』 常用 ifconfig eth0 up/down 启用或关闭指定网卡 ifconfig eth0 显示网卡信息
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| ping 『参数』 『主机名或 IP 地址』 参数: -d 使用 Socket 的 SO_DEBUG 功能。 -f 极限检测。大量且快速地送网络封包给一台机器,看它的回应。 -n 只输出数值。 -q 不显示任何传送封包的信息,只显示最后的结果。 -r 忽略普通的 Routing Table,直接将数据包送到远端主机上。通常是查看本机的网络接口是否有问题。 -R 记录路由过程。 -v 详细显示指令的执行过程。
常用
ping www.163.com ping -R www.163.com
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| netstat [option] 参数: -a: 显示所有 -n: 以 ip 形式显示 -p: 显示进程 -r: 显示路由表 -t: 只显示 tcp -u: 只显示 udp -i: 显示网络接口
常用:
1 netstat 2 netstat -nu 只显示 udp / -t 只显示 tcp 3 netstat -r 显示路由表,作用同 route
查看 Linux 下一些端口是否打开的命令 netstat -an|grep: 端口号
|
1 2 3
| ss -s 我想查看当前服务器的网络连接统计 ss -l 我想查看所有打开的网络端口 ss -a 查看这台服务器上所有的 socket 连接
|
查看设置网卡参数:ip
查看路由以及添加路由:route
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| route [option] [action] 参数: -n 不解析名字 -v 显示详细的处理信息 -f 清除所有网关入口的路由表。 -p 与 add 命令一起使用时使路由具有永久性。 add: 添加一条新路由。 del: 删除一条路由。 -net: 目标地址是一个网络。 -host: 目标地址是一个主机。
常用
route -n 显示路由表 route add/del default gw 192.168.120.1 删除和添加设置默认网关 route add -net 172.25.0.0 netmask 255.255.0.0 dev eth0 添加网关
|
- 查看路由轨迹:
traceroute
traceroute
追踪网络数据包的路由途径
1 2 3 4 5 6 7 8 9 10 11
| traceroute[参数](主机) 参数: -I 使用 ICMP 回应取代 UDP 资料信息。 -d 使用 Socket 层级的排错功能。 -s 设置本地主机送出数据包的 IP 地址。 -n 只显示 IP
常用
traceroute www.163.com traceroute -n www.163.com 显示 IP 地址,不查主机名
|
远程登录服务器
远程拷贝文件
用于在 Linux 下进行远程拷贝文件的命令 scp
上传本地文件到远程机器指定目录
1
| scp ~/test/a.out pi@192.168.1.178:/home/pi
|
解压 tar 文件
1
| tar xvf archive_name.tar
|
常用问题排查命令
1 2 3 4
| 1. ``` netstat -tln ``` 查看系统当前所有被占用端口; 2. ``` lsof -i :9001 ``` 看到当前被占用的端口的进程 3. ``` ps id ``` 4. ``` kill -9 id ``` 杀掉进程
|
1 2 3 4 5
| netstat -anl | grep "端口号" ```
netstat -tunpl | grep 端口号 ```
lsof -i: 端口号
|
- 通过 PID 查看进程完整信息
ll /proc/PID
1 2 3 4 5
| 解释 1. cwd 符号链接的是进程运行目录; 2. exe 符号连接就是执行程序的绝对路径; 3. cmdline 就是程序运行时输入的命令行命令; 4. environ 记录了进程运行时的环境变量;
|
1 2 3 4
| df -h 统计整体磁盘情况 du -bsh /usr/ 查看指定目录磁盘占用情况 du -sh 查看当前目录总共占的容量 du -ah --max-depth=1 / 查看根目录每个文件夹的占用情况
|
参考
《Linux 新建用户、用户组,给用户分配权限(chown、useradd、groupadd、userdel、usermod、passwd、groupdel)》