编程知识 cdmana.com

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 jxvf dir.tar.gz2 以bzip2解压缩dir.tar.gz2
tar jxvf 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 **
[rt123@localhost 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) ,最终得到数字即默认权限

辛苦整理不易,转载请注明出处~

版权声明
本文为[Ran1366]所创,转载请带上原文链接,感谢
https://blog.csdn.net/TheKingOfSaltlyFish/article/details/88031133

Scroll to Top