花了两天时间小结Linux操作系统的常用命令,在学习Linux操作系统时遇到不会的可以方便地查看这些命令
文件&目录相关
内存&其他
查看&创建文件&转盘符
| ls -a |
显示隐藏文件 |
| ls -l |
显示文件详细信息 |
| touch ~/aa |
在主目录下创建文件(如果文件存在则更新创建时间) |
| touch ~/.aa |
在主目录下创建隐藏文件 |
| . |
代表当前目录 |
| . . |
代表上一级目录 |
| cd ~ |
返回用户目录 |
| cd / |
返回根目录 |
| cd . . |
返回上一级目录 |
| cd - |
跳转到上一次打开的目录 |
| cat /etc/shells |
查看当前系统下有哪些shell |
| echo $SHELL |
查看当前正在使用的shell |
创建和删除目录
| mkdir a |
创建a目录 |
| mkdir a b c |
创建a,b,c目录 |
| mkdir -p a/b/c |
创建包含关系的目录 |
| tree |
查看当前目录结构 |
| rmdir a |
删除空目录a(rmdir只能删除空目录) |
| rm -r a |
递归的删除a目录 |
| rm -rf a |
强制删除a目录 |
文件移动和重命名
| mv file1 file2 |
把文件1重命名为文件2 |
| mv a.c . ./ |
移动到上一级 |
| mv a.c . ./aaaa.c |
移动到上一级并改名 |
| mv . ./a.c ./ |
上一级的a.c移动到当前目录 |
| mv file1 -/ |
移动文件 |
拷贝文件和目录
| cp file1 file2 |
将文件1拷贝到文件2 |
| cp file1 dir/ |
将文件拷贝到dir目录下 |
| cp file1 . ./ |
将文件拷贝到上一级目录 |
| cp dir1 dir2 -r |
将目录1拷贝到目录2 |
| cp dir1 ~/ -r |
将目录1拷贝到用户目录下 |
查看详细内容并输出到终端
| cat file1 |
查看文件1的详细内容 |
| cat |
等待用户输入,并将其输出到终端,ctrl+d结束输入 |
| more file1 |
只显示一屏的内容,按回车一行一行显示,按空格全部显示完 |
| head -num file1 |
显示文件的前num行 |
| tail -num file1 |
显示文件的最后num行 |
软链接硬链接
| ln -s file1 file2 |
建立file1 与 file2 的软链接(符号链接) |
| ln file1 file2 |
建立file1 与 file2 的硬链接 |

注意 : 已存在的文件为file1,被建立的文件为file2,
软链接 : 显示空间小,依赖于与之建立链接的文件,一旦原文件消失,软链接生成的文件将无效
硬链接 : 显示与被建立链接的文件有同样大小,原文件消失,硬链接产生的文件不会受影响,上图a.c , b.c , c.c指向同一块存储空间,硬链接相当于指向一块内存空间的指针,删除其中一个指针并不影响其他指向同样内存空间的指针访问
计算文件Byte数,字数,列数
| wc file1 |
依次显示文件行数,单词数,字符数 |
| wc -l file1 |
只显示行数 |
| wc -w file1 |
只显示words数 |
| wc -c file1 |
只显示Bytes数 |
指定文件查看格式
| od -tc file1 |
以ASSCL码形式显示 |
| od -tcx file1 |
以ASSCL码和16进制显示 |
查看某个目录的大小
| du -dm |
以M显示当前所有目录的大小 |
| du -dk dir1 |
以M显示目录dir的大小 |
| du -dk |
以K显示当前所有目录的大小 |
| du -hb dir |
以K显示目录dir的大小 |
| du -db |
以B显示当前所有目录的大小 |
| du -hb dir |
以B显示目录dir的大小 |
查找文件
| find ./* -name “*.mp3” |
按文件名查找 |
|
grep “string” ./* -R** |
按文件内容查找 |
-c 只输出匹配行的计数
-i 不区分大小写(只适用于单字符)
-h 查询多文件时不显示文件名
按文件名查找: ./表示当前文件随后的是一个通配符表示所有文件,-name指定要找的文件名" "内部写文件名,.mp3指的是以mp3结尾的文件,有些文件禁止普通用户访问,在前面加上sudo可以临时以超级用户身份访问
按文件内容查找: “string”,string代表文件内容, ./*表示当前目录下所有文件, -R表示递归地进行
整体意思:在当前目录下递归地寻找内容带有string的文件
改变文件权限
| chmod [u/g/o/a][+/-][r/w/x] file1 |
//文字设定法 |
| chmod [num1][num2][num3] file1 |
//数字设定法(num 取值 0~7) |
| sudo chown root:root |
//改变文件所有者/所有组 |
文件权限解释
-rwxrwxrwx
第一个字符的意义:
- 普通文件
d 目录
l 符号链接
b 块设备文件
c 字符设备文件
s socket文件,网络套接字
p 管道
其余九个字符: r 读权限 ; w 写权限 ; x 执行权限
前三个:文件所有者权限; 中间三个:文件所有组权限; 最后三个:其他组权限
文字设定法 : u : user 使用者 ; g : group 所有组 ; o : other 其他组
数字设定法 : num1 : 使用者 ; num2 : 所有组 ; num3 : 其他组 ,将num转换为二进制,其中比特位为1的表示有对应的权限反之则无 例如 :
777 -> 111111111 -> -rwxrwxrwx;
111 -> 001001001 -> —x–x--x;
665 -> 110110101 -> -rw-rw-r-x;
774 -> 111111100 -> -rwxrwxr–;
查看指定命令所在的路径
which cmd : cmd是命令的名称
查看磁盘使用情况
| df --block=GB |
以GB形式显示 |
| df --block=MB |
以MB形式显示 |
| df --block=KB |
以KB形式显示 |
挂载/卸载U盘
| sud fdisk -l |
查看磁盘分区 |
| sudo mount /dev/sdb1 /mnt |
将U盘挂载到mnt目录下 |
| sudo umount /mnt |
将U盘从mnt目录下卸载 |
注意:若目录下有文件,挂载U盘后目录的文件会被隐藏,当卸载U盘后被隐藏的目录又会出现.
压缩包管理
tar [主选项 + 辅选项] 文件或目录
主选项:
c : 创建新的档案文件
r : 把要存档的文件追加到档案文件的末尾
t : 列出档案文件的内容,查看已经备份了哪些文件
u : 更新文件,用新增的文件取代原备份文件
x : 从档案文件中释放文件( 常用 )
辅助选项:
f : 使用档案文件或设备,这个选项通常是必选的( 常用 )
k : 保存已经存在的文件
m : 在还原文件时,把所有文件的修改时间设定为现在
M : 创建多卷的档案文件,以便在几个磁盘中存放
v : 详细报告tar处理的文件信息,若无此选项,tar不报告文件信息( 常用 )
w : 每一步都要求确认
z : 用gzip来压缩/解压缩文件,加上该选项后可以将档案文件进行压缩,
但还原时也一定要使用该选项进行解压缩(常用)
j : 用bzip2来压缩/解压缩文件,加上该选项后可以将档案文件进行压缩,
但还原时也一定要使用该选项进行解压缩(常用)
| tar cvf dir.tar dir |
创建一个归档文件 |
| tar xvf dir.tar |
还原一个归档文件 |
| tar zcvf dir.tar.gz dir |
以gzip压缩dir |
| tar zxvf dir.tar.gz |
以gzip解压缩dir.tar.gz |
| tar jcvf dir.tar.gz2 dir |
以bzip2压缩dir |
| tar xcvf dir.tar.gz2 |
以bzip2解压缩dir.tar.gz2 |
| tar xcvf dir.tar.gz2 -C dir2 |
以bzip2解压缩dir.tar.gz2 到 dir2目录下 |
| rar a -r newdir dir |
以rar压缩dir |
| unrar x dir.rar |
以rar解压缩dir.rar |
| zip -r newdir dir |
以zip压缩dir |
| unzip dir.zip |
以zip解压缩dir.zip |
进程管理
**命令 : who **
[[email protected] aa]$ who
rt123 :0 2019-02-27 11:09 (:0)
rt123 pts/0 2019-02-27 11:14 (192.168.197.1)
rt123 pts/1 2019-02-27 15:55 (192.168.197.1)
用户名 终端号 开启时间
命令: ps
PID TTY TIME CMD
7428 pts/1 00:00:01 bash
8536 pts/1 00:00:00 ps
进程号 终端号
命令:ps aux
-w : 宽输出
a : 显示终端上所有进程,包括其他用户的进程
r : 只显示正在运行的进程
x : 显示没有控制终端的进程
| USER |
PID |
%CPU |
%MEM |
VSZ |
RSS |
TTY |
STAT |
START |
TIME |
COMMAND |
| root |
2 |
0.0 |
0.0 |
0 |
0 |
? |
S |
12:16 |
0:00 |
[kthreadd] |
| 用户 |
进程号 |
使用占比 |
使用占比 |
|
|
使用的终端?表示无终端 |
进程运行状态S:睡眠; R:运行 |
|
|
|
命令: jobs //显示后台的作业号
fg num //唤醒num号作业到前台执行
bg num //唤醒num号作业到后台执行 ,执行文件后+&意为到后台运行
kill -l //查看所有信号
kill -num 进程 //向进程发送num号信号
2 : SIGINT //中断信号
9 : SIGKILL //杀死进程信号
11 : SIGSEGV //段错误信号
18 : SIGCONT //继续信号
19 : SIGSTOP //暂停信号
env //查看当前进程环境变量
vim ~/.bashrc //配置当前用户环境变量
vim /etc/profile //配置系统环境变量
export:PATH=$PATH:新路径
source file.sh //执行file脚本里的内容
. file.sh //执行file脚本里的内容
他们二者都会把执行后的数据传递给shell父进程,如果直接执行file.sh那么子进程结束后数据就被释放了
脚本固定格式:
{
#! /bin/sh
内容
}
用户管理
| sudo |
临时变为root用户 |
| su 用户名 |
切换用户 |
| sudo su |
变为root用户 (exit退出root模式) |
| sudo userdel -r 用户名 |
删除用户 |
网络管理
| ifconfig |
查看网卡信息 |
| sudo ifconfig eth0 down |
关闭网卡 |
| sudo ifconfig eth0 up |
开启网卡 |
| sudo ifconfig eth0 IP |
给eth0配置临时IP |
| ping 主机名/IP地址 |
查看网络上主机是否在工作 |
| finger 用户名 |
显示用户详细信息 |
关机重启
powerdown //断电
shutdown -t 秒数 [-rkhncfF] 时间 [警告讯息]
-t 秒数 : 设定在切换至不同runlevel之前,警告和删除二讯号之间的延迟时间
-k : 仅送出警告讯息文字,但不是真的要 shutdown
-r : shutdown 之后重启
-h : shutdown 之后关机
-n : 不经过init,由shutdown 指令本身来关机
-f : 重新开机时,跳过 fsck 指令,不检查档案系统
-F : 重新开机时 ,强迫做 fsck 检查
-c : 将已经在 shutdown 的动作取消
reboot //重启
其他命令
| shift pageup |
终端上翻页 |
| shift pagedown |
终端下翻页 |
| man |
查看手册 |
| man 章节数 名称 |
查看第几章的什么东西(共有9章) |
| clear |
清屏(ctrl + l) |
| alias ls=‘ls --color=auto’ |
给ls起别名等号左边代替等号右边 |
| alias rm=‘rm -i’ |
删除前询问是否要删除,(修改配置文件后需重启终端生效) |
| echo [-n] 字符串 |
回显一个字符串 |
| echo $变量名 |
回显变量 |
| echo $? |
查看上一个程序的退出值 |
| date |
查看当前时间 |
| umask nnn |
设置创建文件时的掩码,系统mode默认为666 |
计算权限公式 : mode & (~umask) ,最终得到数字即默认权限
辛苦整理不易,转载请注明出处~