常用命令参考"/>
linux 常用命令参考
文章目录
- 系统信息
- 时间和日期
- 磁盘信息
- 进程信息
- 硬件信息
- 查看或切换目录
- cd 切换目录
- ls 列出信息
- 通配符
- 拷贝和移动文件
- cp 复制命令
- mv 移动或重命名命令
- 创建和删除操作
- mkdir 创建文件夹
- touch 创建文件与更新时间戳
- rm 删除命令
- 文本处理
- cat 查看文件所有内容
- more 分配显示文件内容
- grep 搜索文本筛选内容(正则表达式)
- echo 文字内容,结合重定向
- 重定向>和>>
- 用户权限
- chgrp 更改文件或目录的属组
- chmod 更改用户/组对文件或目录的权限
- chown 更改文件或目录的属主与属组
- 用户和群组
- root 超级管理员
- 组管理(创建/删除/确认)
- 创建一个新用户组
- 删除一个用户组
- 重命名一个用户组
- 确认组信息
- 修改文件/目录的所属组
- 用户管理
- 添加新用户
- 设置用户密码
- 删除一个用户
- 确认用户信息
- 查看用户信息
- 主组和附加组
- dash 切换 bash 进行Shell登录
- 远程管理
- 关机和重启 shutdown
- 网卡和网络 ifconfig ping
- --help man 查询命令帮助
- 其他命令
- find 查找内容
- 软连接 ln 快捷方式
- 管道 | 至少两个命令
- 打包和压缩 tar gz bz bz2 z zip
- tar
- gz命令
- .tar.gz 和 .tgz
- bz2命令
- .tar.bz2(bzip2)
- bz命令
- .tar.bz
- z命令
- .tar.z
- zip命令
- 软件安装
- file
- history 查看历史
- 关闭某个被占用的端口
- 参考
系统信息
时间和日期
date 显示系统日期 cal 显示当前月份的日历cal -y 当前年的日历cal 2019 显示2019年的日历表
磁盘信息
df -h 显示磁盘剩余空间 disk freedu -h [目录名] 显示目录下的文件大小 disk usagehdparm -tT /dev/sda 在磁盘上执行测试性读取操作
进程信息
进程:当前正在执行的一个程序
命令 | 作用 |
---|---|
ps aux | process status 查看进程的详细状况 |
ps au | 查看终端上进程的详细状况(推荐) |
ps a | 显示终端上的所有进程,包括其他用户的进程 |
ps u | 显示进程的详细状态 |
ps x | 显示没有控制终端的进程 |
ps | 显示当前用户通过终端启动的应用程序 |
top | 动态显示运行中的进程并且排序,推出按q |
htop | sudo apt install htop 比top美观 |
kill [-9] 进程代号PID | 终止指定代号的进程,-9表示强行终止 |
硬件信息
arch 显示机器的处理器架构(1) uname -m 显示机器的处理器架构(2) uname -r 显示正在使用的内核版本 dmidecode -q 显示硬件系统部件 - (SMBIOS / DMI) cat /proc/cpuinfo 显示CPU info的信息 cat /proc/interrupts 显示中断 cat /proc/meminfo 校验内存使用 cat /proc/swaps 显示哪些swap被使用 cat /proc/version 显示内核的版本 cat /proc/net/dev 显示网络适配器及统计 cat /proc/mounts 显示已加载的文件系统 lspci -tv 罗列 PCI 设备 lsusb -tv 显示 USB 设备lscpu 显示 cpu 信息lsblk 列出除RAM外的块设备
查看或切换目录
cd 切换目录
- 绝对目录:/或~ 根目录或家目录 如/home/johnny
- 相对目录:相对当前目录 .
pwd 查看当前目录cd /home 进入 '/ home' 目录cd .. 返回上一级目录(. 表示当前目录)cd ../.. 返回上两级目录 cd 进入当前用户的主目录 (/home/用户目录)cd ~ 进入当前用户的主目录 (/home/用户目录)cd - 返回上次所在的目录 ,最近两次目录切换
ls 列出信息
ls 查看目录中的文件 ls -F 显示目录条目时,在目录后加一个/ls -f 查看目录中的文件ls -l 显示文件和目录的详细资料 ls -a 显示隐藏文件 ls -h 将文件容量以较易读的方式(GB,kB等)列出来 ls -R 连同子目录的内容一起列出(递归列出),等于该目录下的所有文件都会显示出来 经常组合使用,多个参数,没有顺序
ls -lah
通配符
通配符 | 含义 | 实例 |
---|---|---|
* | 任意个数个字符 | ls *.txt |
? | 任意一个字符 | ls 1?3.txt |
[] | 可以匹配字符组中的任意一个 | ls [12345].txt |
[abc] | 匹配a\b\c中任意一个 | ls [12345]23.txt |
[a-f] | 匹配a到f范围内的任意一个字符 | ls [1-5]23.txt |
拷贝和移动文件
cp 复制命令
cp file1 file2 复制file1文件为file2cp dir/* . 复制一个目录下的所有文件到当前工作目录 cp -a file1 file2 连同文件的所有特性把文件file1复制成文件file2 cp -i file1 file2 若目标文件已经存在时,在覆盖时会先询问操作的进行 y ncp -r dir1 dir2 递归持续复制,用于目录的复制行为 cp -f file1 file2 强制复制cp -rf dir1 dir2 强制递归复制
mv 移动或重命名命令
mv dir1 new_dir 重命名/移动 一个目录mv -i dir1 new_dir 若目标文件已经存在,就会询问是否覆盖mv -f dir1 new_dir force强制的意思,如果目标文件已经存在,不会询问而直接覆盖mv -u dir1 new_dir update若目标文件已经存在,且比目标文件新,才会更新 mv dir/* new_dir 移动所有文件
创建和删除操作
mkdir 创建文件夹
mkdir test 创建test文件夹mkdir -p a/b/c 创建多级子文件夹
touch 创建文件与更新时间戳
将文件的访问和修改时间更新为当前时间。touch命令只会在文件不存在的时候才会创建它。如果文件已经存在了,它会更新时间戳,但是并不会改变文件的内容。
touch hello.pytouch a/b/c.txt
rm 删除命令
rm file1 删除rm -r dir 递归删除文件夹,删除文件夹必须加-rrm -f file1 强制删除一个叫做 'file1' 的文件' rm -i file1 在删除前会询问用户是否操作 rmdir dir1 删除一个叫做 'dir1' 的目录' rm -rf dir1 删除一个叫做 'dir1'
的目录并同时删除其内容 ,r代表递归删除rm -rf dir1 dir2 同时删除两个目录及它们的内容 rm -rf * 删除当前目录所有东西,谨慎使用
文本处理
cat 查看文件所有内容
cat 123.txt cat -b 123.txt 对非空输出行编号
nl 123.txt 同上cat -n 123.txt 对输出的所有行编号
more 分配显示文件内容
内容多使用more查看,分屏查看
more 123.txt 只会显示当前页的内容,剩下的内容折叠
操作键 | 功能 |
---|---|
空格 | 显示手册页的下一屏 |
回车 | 一次滚动手册页的一行 |
b | 回滚一屏 |
f | 前滚一屏 |
q | 退出 |
/word | 搜索word字符串 |
grep 搜索文本筛选内容(正则表达式)
grep he 123.txt 在123.txt文件中搜索关键词he并输出对应的内容grep -v he 123.txt 在123.txt文件中搜索不含关键词he并输出对应的内容grep -n he 123.txt 在123.txt文件中搜索关键词he并输出对应的内容和行号grep -i he 123.txt 不区分大小写在123.txt文件中搜索关键词he/He/hE/he并输出对应的内容grep -vn或-in 可以连用grep Aug /var/log/messages 在文件 '/var/log/messages'中查找关键词"Aug"
grep ^Aug /var/log/messages 在文件 '/var/log/messages'中查找以"Aug"开始的词汇
grep [0-9] /var/log/messages 选择 '/var/log/messages' 文件中所有包含数字的行
grep Aug -R /var/log/* 在目录 '/var/log' 及随后的目录中搜索字符串"Aug"
参数 | 含义 | 实例 |
---|---|---|
^bengin | 行首,搜寻以begin开头的行 | grep ^begin 123.txt |
end$ | 行尾,搜寻以end结尾的行 | grep end$ 123.txt |
echo 文字内容,结合重定向
echo hello
重定向>和>>
echo hello > 123.txt 将hello写入123.txt文件,覆盖所有内容echo hello >> 123.txt 将hello写入123.txt文件,写到最后,相当于追加ls -lh > 123.txttree >> 123.txt
用户权限
- chgrp 是更改文件或目录的属组
- chmod 是更改文件或目录的权限
- chown 是更改文件或目录的属主与属组
chgrp 更改文件或目录的属组
sudo chgrp 属组 文件/文件夹sudo chgrp root 999 将999文件夹的所属组改成rootsudo chgrp root 999/888.txt 将999文件夹内人888.txt文件的所属组改成rootsudo chgrp -R root 999 将999文件夹及文件夹里的内容的所属组改成root-R 递归遍历
chmod 更改用户/组对文件或目录的权限
-rw-rw-r-- 文件权限
drw-rw-r-- 文件夹权限
lrw-rw-r-- 链接权限文件所有者的权限(属主) | 与文件所有者同一组的用户的权限(属组) |不与文件所有者同组的其他用户的权限(其他用户)sudo chmod +/- rwx 增加删除权限,只能简单设置sudo chmod +x start.sh 赋予start.sh可执行权限sudo chmod 777 start.sh 赋予start.sh 所有者,组员,其他 全部权限sudo chmod 755 start.sh 代表属主有读,写,执行权限。属组和其他用户有读,执行权限sudo chmod -R 744 start.sh 赋予属主有读,写,执行权限。属组有读权限,其它用户有读权限sudo chmod 740 start.sh 代表属主有读,写,执行权限。属组有读权限,其它用户没有任何权限sudo chmod -R 666 start.sh 赋予所有用户都有读,写权限sudo chmod -R 644 start.sh 代表属主有读,写权限。属组有读权限,其它用户有读权限-R 递归遍历
- | 拥有者 | - | = | 组 | = | + | 其他 | + |
---|---|---|---|---|---|---|---|---|
r | w | x | r | w | x | r | w | x |
4 | 2 | 1 | 4 | 2 | 1 | 4 | 2 | 1 |
权限 | 二进制值 | 八进制值 | 描述 |
---|---|---|---|
— | 000 | 0 | 没有任何权限 |
–x | 001 | 1 | 执行权限 |
-w- | 010 | 2 | 写入权限 |
-wx | 011 | 3 | 写入和执行权限 |
r– | 100 | 4 | 读取权限 |
r-x | 101 | 5 | 读取和执行权限 |
rw- | 110 | 6 | 读取和写入权限 |
rwx | 111 | 7 | 全部权限 |
rwx 421
chown 更改文件或目录的属主与属组
sudo chown 属主 文件/文件夹sudo chown root dir 修改dir文件夹属主关系sudo chown -R root dir 修改dir文件夹及文件夹内文件属主关系sudo chown root.root dir 修改dir文件夹属主和属组关系
sudo chown root:root dir 同上sudo chown -R root.root dir 修改dir文件夹及文件夹内文件属主和属组关系
sudo chown -R root:root dir 同上
用户和群组
root 超级管理员
sudo -i 切换root账户设置root密码
sudo passwd root
组管理(创建/删除/确认)
创建一个新用户组
sudo groupadd group_name
删除一个用户组
sudo groupdel group_name
重命名一个用户组
sudo groupmod -n new_group_name old_group_name
确认组信息
cat /etc/group cat -n /etc/group | grep 用户名
修改文件/目录的所属组
chgrp 组名 文件/目录名
用户管理
添加新用户
sudo useradd -m -g 组 新建用户名
-m 自动建立用户家目录
-g 指定用户所在的组,已存在的组,没有此参数会建立一个和用户名同名的组sudo useradd 用户名 创建新用和新组户但没有家目录,这样不能单纯删除组,需要删除用户则组会一起被删除
默认使用useradd添加的用户是没有权限使用sudo以root身份执行命令的,可以使用下面的命令将用户添加到sudo附加组中,具体请查看后面
usermod -G sudo 用户名
设置用户密码
passwd 用户名
普通用户直接用passwd可以修改自己的账户密码
删除一个用户
userdel -r user1
-r 自动删除用户家目录,如果创建了家目录请一起删除
确认用户信息
cat /etc/passwd
cat -n /etc/passwd | grep 用户名
查看用户信息
命令 | 作用 |
---|---|
id [用户名] | 查看用户UID和GID信息 |
who | 查看当前所有登录的用户列表 |
whoami | 查看当前登录用户的账户名 |
主组和附加组
- 主组:passwd中的GID
- 附加组:其他的组,附加权限,如可以使用sudo权限
命令 | 作用 | 实例 |
---|---|---|
sudo usermod -g 组 用户名 | 修改用户的主组 | |
sudo usermod -G 组 用户名 | 修改用户的附加组 | sudo usermod -G sudo python |
dash 切换 bash 进行Shell登录
Shell:登录之后使用的终端命令
ubuntu默认是dash,而常用为bash修改用户登录shell
usermod -s /bin/bash 用户名
远程管理
关机和重启 shutdown
shutdown 一分钟之后关机shutdown now 立刻关机shutdown -h now 彻底断电关机,应该同上shutdown 21:00 今天21:00关机shutdown +10 在十分钟后关机shutdown -c 取消之前指定的关机计划shutdown -r 重新启动
reboot 同上logout 注销
网卡和网络 ifconfig ping
ifconfig 查看网卡ifconfig | grep inetping 192.168.1.1 检测ip连接是否正常hongwei@hongwei--ubuntu16:~$ ping 192.168.50.11
PING 192.168.50.11 (192.168.50.11) 56(84) bytes of data.
64 bytes from 192.168.50.11: icmp_seq=1 ttl=64 time=0.385 ms
64 bytes from 192.168.50.11: icmp_seq=2 ttl=64 time=0.159 ms发送56字节到目标ip,目标ip返回64字节,时间间隔为time,time越小网速越快ping 127.0.0.1 检查本地网卡是否工作正常
–help man 查询命令帮助
command --help
如 ls --helpman ls 查询用法手册,man为manual缩写
操作键 | 功能 |
---|---|
空格 | 显示手册页的下一屏 |
回车 | 一次滚动手册页的一行 |
b | 回滚一屏 |
f | 前滚一屏 |
q | 退出 |
/word | 搜索word字符串 |
其他命令
find 查找内容
特定的目录下搜索符合条件的文件
find [路径] -name "*.py" 查找所有.py结尾的文件,包括子目录find -name "*.txt"find /etc/ -name passwd ##查找/etc/下名称中带有passwd的文件
find /etc -maxdepth 1 -name passwd ##查找/etc/下名称中带有passwd的文件,查找一层。
find /etc -name *.conf ##查找/etc/下名称中带有*.conf的文件(下面显示的是部分)
find /etc -maxdepth 2 -name *.conf ##查找/etc/下名称中带有*.conf的文件,且查找两层,包括一层(下面显示的是部分)
find /etc -maxdepth 2 -mindepth 2 -name *.conf ##查找/etc/下名称中带有*.conf的文件,且只查找第二层
find /mnt -group tony ##查找/mnt中所有组是tony用户的文件
find /mnt -user student -group student ##查找/mnt中所有人和所有组都是student的文件
find /mnt -not -user student ##查找/mnt中所有人不是student用户的文件
find /mnt -not -user student -o -group tony ##查找/mnt中所有人不是student用户或者所有组是tony用户的文件
find /mnt -size 20K ##查找/mnt文件大小近似20k的文件
find /mnt -size +20K ##查找/mnt文件大小大于20k的文件
find /mnt -size -20K ##查找/mnt文件大小小于20k的文件
find /mnt -type d ##按type查找/mnt中目录
find /mnt -type f ##按type查找/mnt中文件
find /mnt -cmin 10 ##查找/mnt中十分钟左右修改的
find /mnt -cmin +10 ##查找/mnt中十分钟以上修改的
find /mnt -cmin -10 ##查找/mnt中十分钟以内修改的
find /mnt -ctime 10 ##查找/mnt中十天左右修改的
find /mnt -ctime +10 ##查找/mnt中十天以上修改的
find /mnt -ctime -10 ##查找/mnt中十天以内修改的
find /mnt/ -perm 444 ##查找/mnt文件权限为444的文件
find /mnt/ -perm -444 ##查找/mnt中user有读的权限且group有读的权限且other有读的权限的文件。(三个条件,u.g.o至少要读的权限即r--r--r--)
find /mnt/ -perm -004 ##查找/mnt中other有读权限的文件(一个条件,o至少有读的权限)
find /mnt/ -perm -644 ##查找/mnt中user有读写的权限且group至少有读权限且other有读的权限的文件。(四个条件,rw-r--r--)
find /etc/ -name *.conf -exec cp -rp {} /mnt \; ##把/etc/目录下名称中带有.conf的文件递归复制到/mnt下
find /mnt -name "*.conf" -exec rm -fr {} \; ##删除/mnt名称中带有.conf的文件
find / -group mail -exec cp -rp {} /mnt \; ##把/目录下的组属于mail的文件复制到/mnt
软连接 ln 快捷方式
ln -s 被链接的源文件 链接文件必须加-s ,没有-s选项建立的是一个硬链接文件源文件需要使用绝对路径,不能使用相对路径,方便移动sudo ln -s /home/johnny/Desktop/python/py1.py py1
硬链接:有多少种方式可以访问到文件或者目录,使用ls -l 命令,可以看不到权限后面的数字就是硬链接个数
管道 | 至少两个命令
- more 分屏显示
- grep 搜索文本
ls -l | morels -a | grep *.py
打包和压缩 tar gz bz bz2 z zip
tar
解包
tar -xvf filename.tar打包
tar -cvf filename.tar )
gz命令
解压1
gunzip filename.gz解压2
gzip -d filename.gz压缩
gzip filename
.tar.gz 和 .tgz
解压
tar -zxvf filename.tar.gz解压到指定路径(路径必须存在)
tar -zxvf 打包文件.tar.gz -C 目标路径压缩
tar -zcvf filename.tar.gz 文件或目录(可多个)压缩多个文件
tar -zcvf filename.tar.gz dirname1 dirname2 dirname3.....
bz2命令
解压1:bzip2 -d filename.bz2
解压2:bunzip2 filename.bz2
压缩:bzip2 -z filename
.tar.bz2(bzip2)
解压:tar -jxvf filename.tar.bz2
压缩:tar -jcvf filename.tar.bz2 dirname
bz命令
解压1:bzip2 -d filename.bz
解压2:bunzip2 filename.bz
.tar.bz
解压:tar jxvf filename.tar.bz
z命令
解压:uncompress filename.z
压缩:compress filename
.tar.z
解压:tar zxvf filename.tar.z
压缩:tar zcvf filename.tar.z dirname
zip命令
解压:unzip filename.zip
压缩:zip filename.zip dirname
软件安装
apt:Advanced Packaging Tool
安装
sudo apt install 软件包卸载
sudo apt remove 软件包更新源及/etc/apt/sources.list
sudo apt-get update 更新已安装的包
sudo apt upgrade
file
file 222.txt 列出编码类型222.txt: ASCII text
history 查看历史
history 显示了在终端中所执行过的所有命令的历史
关闭某个被占用的端口
查找被占用的端口
netstat -tln | grep 4000查看被占用端口的PID
sudo lsof -i:4000
netstat -tunlp | grep 4000
netstat -nap | grep 4000kill掉该进程
sudo kill -9 PID
参考
Linux常用命令大全(非常全!!!)
linux最常用的20个命令
更多推荐
linux 常用命令参考
发布评论