Linux常用命令
Posted WINNER_QIUQIU
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux常用命令相关的知识,希望对你有一定的参考价值。
首先说明:
Linux命令区分大小写。
按TAB键可以自动补全命令。
【】内为可选项,{}内为必选项。
echo “hello world” 输出hello word。
常用目录
boot 存放启动文件
dev 存放设备文件
etc 存放配置文件
home 普通用户家目录,以/home/\\$username的方式存放
media 移动存储自动挂载目录,以/media/\\$device_name的方式来存放
mnt 手动挂载目录
opt 三方软件安装目录
proc 内存系统文件
root 管理员家目录
run 里面的东西是系统运行时需要的,不能随便删除。但是重启的时候应该抛弃,下次系统运行时自动生成。
srv 服务相关数据
sys 系统文件
tmp 临时文件夹
usr 存放库文件、文档、命令、用户数据等
var 日志存放
lib 库文件
Linux命令
命令【命令选项】【参数】
注:使用【】为可选项,{}为必选项
ls:查看文件夹的东西
ls -a/tmp 等价于 ls --all/tmp
注:简写前用-,全称用–。其中/tmp为参数(/为根目录)
type命令
使用type命令来区分命令是内部还是外部命令:
【root@www~】# type type
type 是shell内嵌
注:说明type是内部命令
【root@www~】# type clear
clear 是/user/bin/clear
注:说明clear是外部命令
命令存在哪里
【root@www~】#echo$PATH
/usr/local/sbin
/usr/local/bin
/usr/sbin
/usr/bin
区别:bin的命令任何人都可以使用,sbin的命令称为特权命令,只能管理员使用。
linux基本命令
清屏命令:clear 快捷键:Ctrl+l
帮助命令:man
进入文件夹命令:cd
列出当前目录内容命令:ls【-a -l -d】
其中:ls -l 为列出详细信息
ls -a 为列出所有信息
ls -i 为列出结点
显示主机名:hostname
显示日期时间:date【-s %F】
显示日历:cal
计算器:bc
重启命令:reboot 或 shutdown -r 或 init 6(后两种仅为管理员可用操作)
注销命令:logout
关机命令:halt 或 shutdown -h 或 init 0(后两种仅为管理员可用操作)
显示当前操作系统和机器的信息:uname
显示当前路径:pwd
ls -a /tmp:列出/tmp的详细信息
如下所示:
注:其中,黑色字体为文件,蓝色字体为文件夹,绿色字体为可执行文件,蓝色字体前带‘.’的为隐藏文件。
man帮助命令
帮助命令 man命令后面可以加一个数字参数,表示具体的范围定位:
数字“1”表示用户命令
数字“2”表示系统调用
数字“3”表示C语言库函数
数字“4”表示设备或特殊文件
数字“5”表示文件格式和规则
数字“6”表示游戏及其他
数字“7”表示宏、包及其他杂项
数字“8”表示系统管理员相关的命令
ls列出当前目录内容命令
ls -F 文件夹后加/显示
ls -x 按水平对齐方式列出档案
ls -m 以“,”隔开档案
ls -a 按时间排序档案
ls -l 显示详细信息,此命令等同于ll
ls -d 显示目录而不是其内容
ls -h 以K、M、B的形式进行显示
ls -R
cal日历
example
cal 05 2005 显示2005年5月
cal 2018 显示2018年的12个月
bc计算器
浮点运算 scale 指定小数点位数
echo “scale=2;100/3”|bc
uname显示当前操作系统和机器的信息
#uname -a 显示所有信息
#uname -p 显示处理器类型
#uname -m 显示机器硬件信息
#uname -r 显示内核版本
注:如何查看你的Linux是否为稳定版
【root@www~】#uname -r
3 主版本号
10 次版本号 偶数为稳定版 奇数为开发版
0 派生版本号
693 修改次数
文件的创建及删除
新建文件和修改文件或文件的时间戳
命令语法:
touch 【选项】【文件名】
命令选项:
-a 只修改文件的access(访问时间)
-c 或--no-create 不创建不存在的文件
-d 使用指定的日期时间,而非现在的时间
-m 修改modify时间,而不修改access(访问)时间
-r file使用指定file文件的时间戳(access,modify)更新文件的时间戳(access,modify)
-t 将时间修改为参数指定的日期,如:10011150代表10月8日11点55分
注:三个时间戳如下:
atime:访问时间
mtime:修改文件内容后时间才会变化
ctime:修改时间节点后时间会变化,例如修改文件名字
删除文件
命令语法:
rm 【options】 name
命令选项:
-i 删除前逐一询问确认
-f 即使原档案属性设为唯读,亦直接删除,无需逐一确认
-r 将目录及以下档案亦逐一删除(递归删除)
文件改名
命令语法:
mv old_file new_file
文件查看
- 普通文件
d 目录
l 链接文件
b 设备文件
c 字符设备
s 套接字文件
p 管道文件
Linux文件颜色的意义
绿色文件:可执行文件,可执行的程序
红色文件:压缩文件或包文件
蓝色文件:目录
白色文件:一般性文件,如文本文件、配置文件、源码文件等
浅蓝色文件:链接文件,主要是使用ln命令建立的文件
红色闪烁:表示链接的文件有问题
黄色:表示设备文件
灰色:表示其他文件
粉色:套接字文件
文件移动和拷贝
文件移动
命令语法:
mv 【选项】 源文件或目录 目标文件或目录
命令选项:
-b 若需覆盖文件,则覆盖前先行备份
-i 若指定目录已有同名文件,则询问是否覆盖旧文件
-f force强制的意思,如果目标文件已经存在,不会询问而直接覆盖
-u 若目标文件已经存在,且source比较新,才会更新(update)
拓展:mv src dsT
改名 dsT是一个文件夹的时候 执行是移动
dsT不是一个文件夹的时候 执行改名
文件拷贝
命令语法:
cp 【options】 源文件或目录 目标目录
命令选项:
-a 此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容
-d 复制时保留链接。这里所说的链接相当于Windows系统中的快捷方式
-f 覆盖已经存在的目标文件而不给出提示
-i 在覆盖目标之前给出提示,要求用户确认是否覆盖,回答y时目标文件将会被覆盖
-p 除复制文件的内容外,还把修改时间和访问权限也复制到新文件中
-r 若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件
-l 不复制文件,只是生成链接文件
查看文件内容
cat命令
用于连接文件并打印到标准输出设备上。
命令语法:
cat 【选项列表】【文件列表】
命令选项:
-n 或 --number 由1开始对所有输出的行数编号
-b 或 --number-nonblank 和-n相似,不过对空白行不编号
-s 或 --squeeze-blank 当遇到有连续两行以上的空白行,就代换为一行的空白行
-v 或 --show-nonprinting 使用^和M-符号,除了LFD和TAB之外
-E 或 --show-ends 在每行结束处显示$
-T 或 --show-ends 将TAB字符显示为^l
-A 或 --show-all 等价于 -vET
-e 等价于 -vE
-t 等价于 -vT
输出文件开始部分
命令语法:
head 【OPTION】【FILE】
命令选项:
-c,--bytes=SIZE 打印起始的SIZE字节
-n,--lines=NUMBER 显示起始的NUMBER行,而非默认的起始10行
-q,--quiet,--silent 从不显示给出文件名的首部
-v,--verbose 总是显示给出文件名的首部
--help 显示帮助后退出
--version 输出版本信息后退出
输出文件尾部部分
命令语法:
tail 【OPTION】【FILE】
命令选项:
-f 循环读取
-v 显示详细的处理信息
-c<数目> 显示的字节数
-n<行数> 显示文件的尾部n行内容
tail -n +5 从第5行开始打到最后
文件夹
文件夹管理
mkdir 新建文件夹
rmdir 删除空文件夹
rm -r 删除不为空的文件夹(递归删除)
mv 文件夹改名
ls 文件夹查看
建立目录
命令语法:
mkdir 【选项】 目录
命令选项:
-v 显示信息
-p 递归创建
删除空目录
命令语法:
rmdir 【options】directory
命令选项:
-p 递归删除空目录
文本界面文本编辑器vim
命令语法:
vim 文件名
四种模式
进入命令模式(默认):可以输入命令来进行文件存盘、移动光标、删除字符、撤销命令和重复命令
插入模式:删除字符、插入字符
末行模式:进行文件保存、退出vim、进行查找和替换等操作
替换模式:替换字符
光标的移动
h j k l 对应左下上右
home 光标移到本行开头
end 光标移到本行末尾
G 光标移到末尾
gg 光标移到开头
w 光标移动一个单词
ZZ 保存并退出
page up 上翻一页
page down 下翻一页
文本修改
yy 复制一行
nyy 复制n行
p 粘贴到一行后
P 粘贴到一行前
x 向后删除字符
X 向前删除字符
dd 删除一行
ndd 删除n行
dw 删除一个单词
u 撤销上一步操作
文本查找
/查找内容
注:若查找内容中本身包含
/
/
/,要使用转义字符$$对其进行转义
模式切换
从命令行模式进入输入模式
a 从光标所在位置后开始输入资料,光标后的资料随增加的资料向后移动
A 从光标所在行最后面的位置开始输入资料
插入
i 从光标所在位置前开始插入资料,光标后的资料随新增资料向后移动
I 从光标所在行的第一个非空白字符前面开始插入资料
开始
o 在光标所在行下新增一行并进入输入模式
O 在光标所在行上方新增一行并进入输入模式
退出输入模式
esc
末行模式
在命令模式下输入":"即可进入末行模式。在末行模式下,可以进行保存文件、退出vim、进行查找和替换等操作。
退出vim
:q 退出
:q! 强制退出不保存
:w 保存不退出
:wq 保存并退出
替换
:s/old/new 只替换光标所在行的第一个old string
:%s/old/new 替换全文所有行的第一个old string
:s/old/new/g 将本行(光标)的所有old string替换为new string g global n代表一个行号
:%s/old/new/g 将文本中所有的old string替换为new string
:1,2s/old/new/g 替换1到2行中的old string替换为new string
:.,2s/old/new/g .代表光标行到第二行中的old string替换为new string
:2,$s/old/new/g 2到最后一行中的old string替换为new string
其他命令
:set nu 显示行号
:set nonu 不显示行号
:!command 在vim编辑器中执行一条命令不需要退出当前的编辑
注:当同时编辑多个文件时,因为同一时间只能显示一个文件夹,所以在vi中切换打开的文件可以使用N或n。
:n 切换下一个文件
:N 切换上一个文件
相关配置文件
~/.viminfo 存储vim的历史编辑命令
~/.vimrc 个人定制文件
注:个人定制文件只能针对一个用户,文件带行号
用户和组
Linux用户
普通用户:UID大于999;权限较小,可以登录;只能用bin目录下的命令
系统用户:UID小于1000;系统服务管理用户,一般不允许登录系统
管理员:root
组
组是一个用户容器,用来装用户,没有其他意义
默认情况下,新建用户的同时,系统会创建一个同名组装载该用户
在linux中的每个用户必须属于一个组,不能独立与组外
在linux中每个文件有所有者、所在组、其他组的概念
新建用户
命令语法:
useradd 【选项】用户名
其中用户名不能超过32个字符
命令选项:
-c,--comment 描述
-d,--home HOME_DIR家目录
-e,--expiredate EXPIRE_DATE过期时间
-f,--inactive INACTIVE是否启用过期机制
-g,--gid GROUP指定组ID号
-G,--groups GROUP1[,GROUP2,...[,GROUPN]]附加组
-m,--create-home 建立家目录
-M 不建立家目录
-N,--no-user-group 不指定用户同名组
-r,--system 指定该账号是系统账号
-s,--shell SHELL指定登录shell
-u,--uid UID指定用户ID号
-U,--user-group 指定用户创建用户同名组
-o 创建用户是可以uid重复
eg:新建用户user01-user04
user01 UID 1500 附属于root组 家目录 /tmp/user01 登录shell/bin/bash
useradd -u 1500 -G root -d /tmp/user01 -s /bin/bash user01
user02系统用户,不要家目录,不允许交互登录
useradd -r -M -s /bin/nologin user02
user03 启用过期,过期时间为2019-04-01
useradd -f 3 -e 2019-04-01 user03
注:过期缓冲期为3天,即到2019-04-04彻底过期不允许登录
user04 UID为0,GID为0
useradd -o -u 0 -g 0 user04
将用户账号切换到user01
su -user01
密码设置
命令语法:
passwd 【选项】用户名
注:以上为管理员给用户设定密码
用户为自己设定密码:passwd即可
命令选项:
-l 锁定用户
-u 解锁用户
-d 删除账户的密码
-S 给定账户的密码状态信息
删除用户
命令语法:
userdel 【选项】用户名
命令选项:
-f,--force
-r,--remove 删除主目录及邮箱
修改用户账户
命令语法:
usermod 【选项】用户名
命令选项:
-a,--append
-L,--lock
-U,--unlock
-m,--move-home with -d
eg: usermod -G root -a user02
更改用户密码过期信息
命令语法:
chage 【选项】用户名```
命令选项:
```powershell
-h,--help display this help message and exit
-m 密码可更改的最小天数。为0时代表任何时候都可更改密码
-M 密码保持有效的最大天数
-W 用户密码到期前,提前收到警告信息的天数
-E 账号到期的日期。过了这天,此账号将不可用
-d 上一次更改的日期
-I 停滞时期。如果一个密码已过期这些天,此账号将不可用
-l 列出当前的设置。由非特权用户来确定他们的密码或账号何时过期
用户查看
命令语法:
/etc/passwd
显示分别为:【用户名】:【密码】:【UID】:【GID】:【身份描述】:【主目录】:【登录shell】
/etc/shadow 影子文件
用户名:这是用户登录系统时使用的名字,在系统中唯一
口令:此字段存放加密口令
最后一次修改的时间:标识从某一时刻起到用户最后一次修改口令的天数
最小时间间隔:两次修改口令之间的最小天数
最大时间间隔:口令保持有效的最多天数,即多少天后必须修改口令
警告时间:从系统开始警告到口令正式失效的天数
不活动时间:口令过期多少天后,该账号被禁用
失效时间:指示口令失效的绝对天数(从1970年1月1日开始计算)
标志:未使用
组
组创建
命令语法:
groupadd 【选项】组名
命令选项:
-g,--gid GID 指定GID
-r,--system 创建一个系统组
-o,--non-unique 此选项允许添加一个使用非唯一GID的组
注:组名最长为32个字节
eg:创建一个组,组名为admin
groupadd admin
eg:创建一个组,组名为ayitula,GID为4433
groupadd -g 4433 ayitula
查看组信息
vim /etc/group
小于1000为系统组,大于1000为普通用户组
修改组信息
命令语法:
groupmod 【选项】组名
命令选项:
-g,--gid GID
-n,--new-name NEW_GROUP 给组改名,如groupmod test -n test1
-o,--non-unique
eg:将user01添加到ayitula组
usermod -G ayitula user01
删除组
命令语法:
groupdel 【选项】组名
组配置文件
/etc/group
显示分别为:【组名】:【密码域】:【GID】:【组员列表】
/etc/gshadow
显示分别为:【组名】:【口令】:【组管理者】:【组内用户列表】
组密码与组切换
gpasswd命令,为组设置密码
-a,-add USER 将用户添加到组里
-d,--delete USER 将用户从组中移除
-r,--remove-password 去除组密码
-R,--restrict 限制非该组成员的用户登录该组
-M,--members USER 列出该组时间
-A,--administrators ADMIN 列出该组的管理员
newgrp命令,用户临时切换组身份
vim /etc/gshadow 查看密码
gpasswd -A user04 ayitula 将user04作为管理员,一个组中的管理员只能有一个
组密码的作用:可以临时切换到其他组
相关配置文件
/etc/passwd 用户账户信息
/etc/shadow 安全用户账户信息
/etc/group 组账户信息
/etc/gshadow 安全组账户信息
/etc/default/useradd 账户创建的默认值
/etc/skel/ 包含默认文件的目录
/etc/login.defs shadow密码套件配置
以上内容根据路飞学城linux入门视频整理。
以上是关于Linux常用命令的主要内容,如果未能解决你的问题,请参考以下文章
markdown [Docker] Docker片段列表和命令#linux #docker #snippets
Android 逆向Linux 文件权限 ( Linux 权限简介 | 系统权限 | 用户权限 | 匿名用户权限 | 读 | 写 | 执行 | 更改组 | 更改用户 | 粘滞 )(代码片段