Linux常用命令
对于普通的电脑用户,接触的最多的是Windows,对Linux的了解甚少,而作为一个开发者,Linux是一个不得不接触的东西。
相比于其它的操作系统,Linux的占用内存更低,现在的VPS的内存越高,价格几乎也是成倍增长,一个Windows系统,占用的内存远远高于Linux。
同时Linux开源,如果有什么漏洞,会有各路大神帮忙修复,所以Linux往往更加安全。
同时Linux的稳定性也高于其它系统,一个Linux服务器,可以几十天不重启都不会宕机。
Linux一般用于服务器,对于家用电脑来说,还是推荐学习成本更低的Windows,对于开发者而言,Mac也是一个非常优秀的选择。
本篇文章用来收集Linux中的常用命令。
基础指令
shutdown -h now # 表示立即关机
shutdown -h 1 # 表示 1 分钟后关机
shutdown -r now # 立即重启
halt # 关机
reboot # 重启
sync # 把内存的数据同步到磁盘,当我们关机或者重启时,都应该先执行以下 sync 指令,把内存的数据写入磁盘,防止数据丢失。
man [命令或配置文件] # 获得帮助信息
help 命令 # 获得 shell 内置命令的帮助信息
文件目录
pwd # 显示当前工作目录的绝对路径)
ls # 显示当前文件夹所有文件和目录
ll # 显示当前文件夹所有文件和目录
ll -a # 显示当前文件夹所有文件和目录,包括隐藏文件
cd [参数] # 切换到指定目录
cd ~ # 回到自己家目录
cd .. # 回到上一级目录
mkdir # 创建文件目录
mkdir -p # 创建多级目录
rmdir # 指令删除空目录
rmdir # 删除的是空目录,如果目录下有内容时无法删除的。
rm -rf # 如果需要删除非空目录
touch # 文件名称 创建空文件
cp # 复制文件
cp -r # 递归复制整个文件夹
rm # 指令移除【删除】文件或目录
rm -r # 递归删除整个文件夹
rm -f # 强制删除不提示
mv # 移动文件与目录或重命名
浏览文件
cat # 查看文件内容,是以只读的方式打开。
cat -n # 显示行号
cat # 只能浏览文件,而不能修改文件,为了浏览方便,一般会带上管道命令 | more
cat 文件名 | more # [分页浏览]
more # 指令是一个基于 VI 编辑器的文本过滤器,它以全屏幕的方式按页显示文本文件的内容。more 指令中内置了若干快捷键。
less # 指令用来分屏查看文件内容,它的功能与 more 指令类似,但是比 more 指令更加强大,支持各种显示终端。less 指令在显示文件内容时,并不是一次将整个文件加载之后才显示,而是根据显示需要加载内容,对于显示大型文件具有较高的效率。
echo # 输出内容到控制台。
head # 用于显示文件的开头部分内容,默认情况下 head 指令显示文件的前 10 行内容
head -n 5 文件 # (功能描述:查看文件头 5 行内容,5 可以是任意行数)
tail # 用于输出文件中尾部的内容,默认情况下 tail 指令显示文件的后 10 行内容
tail -n 5 5 文件 # 查看文件尾部 5 行内容,5 可以是任意行数
tail -f # 实时监控文件有没有变化,如果有变化就会看见
ln -s \[原文件或目录][软链接名] # (功能描述:给原文件创建一个软链接)<br>当我们使用 pwd 指令查看目录时,仍然看到的是软链接所在目录。
history # 查看已经执行过历史命令
history 数字 # 查看已经执行过n个历史命令
文件写入
> # 会将原来的文件的内容覆盖
>> # 追加:不会覆盖原来文件的内容,而是追加到文件的尾部。
时间日期
date # 指令-显示当前日期
date # 显示当前时间
date +%Y # 显示当前年份
date +%m # 显示当前月份
date +%d # 显示当前是哪一天
date "+%Y-%m-%d %H:%M:%S" # 显示年月日时分秒
date -s # 字符串时间 设置系统时间
cal [选项] # 不加选项,显示本月日历
搜索查找
find # 指令将从指定目录向下递归地遍历其各个子目录,将满足条件的文件或者目录显示在终端。
find [搜索范围] [选项]
locate # 指令可以快速定位文件路径。locate 指令利用事先建立的系统中所有文件名称及路径的locate 数据库实现快速定位给定的文件。Locate 指令无需遍历整个文件系统,查询速度较快。为了保证查询结果的准确度,管理员必须定期更新 locate 时刻,由于 locate 指令基于数据库进行查询,所以第一次运行前,必须使用 updatedb 指令创建 locate 数据库。
grep 指令和 管道符号 |
grep [选项] 查找内容 源文件 # 过滤查找,管道符,“|”,表示将前一个命令的处理结果输出传递给后面的命令处理。
-n # 显示匹配行及行号
-i # 忽略字母大小写
压缩和解压
gzip 文件 # 压缩文件,只能将文件压缩为*.gz 文件
gunzip 文件.gz # 解压缩文件命令
使用 gzip 对文件进行压缩后,不会保留原来的文件。`
zip # 用于压缩文件, unzip 用于解压的,这个在项目打包发布中很有用的
zip [选项] XXX.zip # 将要压缩的内容(功能描述:压缩文件和目录的命令)
-r # 递归压缩,即压缩目录
unzip [选项] XXX.zip # 解压缩文件
-d<目录> # 指定解压后文件的存放目录
tar [选项] XXX.tar.gz 打包的内容 # 打包目录,压缩后的文件格式.tar.gz
-c # 产生.tar打包文件
-v # 显示详细信息
-f # 指定压缩后的文件名
-z # 打包同时压维
-x # 解包.tar文件
用户管理
添加用户
useradd [选项] 用户名
# - 当创建用户成功后,会自动的创建和用户同名的家目录
# - 也可以通过useradd-d指定目录新的用户名,给新创建的用户指定家目录
passwd 用户 # 指定或者修改密码
userdel XXX # 删除用户 不删除家目录
userdel -r XXX # 删除用户 删除家目录
# 在删除用户时,我们一般不会将家目录删除。
id 用户名 # 查询用户
su - 指令 # 切换用户
# - 从权限高的用户切换到权限低的用户,不需要输入密码,反之需要。
# - 当需要返回到原来用户时,使用 exit 指令
用户组
groupadd 组名
groupdel # 删除组
useradd -g 用户组 用户名 # 增加用户时直接加上组
usermod -g 用户组 用户名 # 修改用户组
/etc/passwd 文件 # 用户(user)的配置文件,记录用户的各种信息
文件目录
ls -ahl # 查看文件的所有者
chown 用户名 文件名 # 修改文件所有者
chgrp 组名 文件名 # 修改文件所在的组
# 通过 chmod 指令,可以修改文件或者目录的权限
# u:所有者 g:所有组 o:其他人 a:所有人(u、g、o 的总和)
chmod u=rwx,g=rx,o=x 文件目录名
chmod o+w 文件目录名
chmod a-x 文件目录名
chown newowner file # 改变文件的所有者
chown newowner:newgroup file # 改变用户的所有者和所有组
-R # 如果是目录 则使其下所有子文件或目录递归生效
chgrp newgroup file # 改变文件的所有组
任务调度
crontab [选项]
-e # 编辑crontab定时任务
-l # 查询crontab任务
-r # 删除当前用户所有的crontab任务
conrtab –r # 终止任务调度。
crontab –l # 列出当前有那些任务调度
service crond restart # 重启任务调度
硬盘分区
df -h # 查询系统整体磁盘使用情况
du -h /目录 # 查询指定目录的磁盘占用情况,默认为当前目录
-s # 指定目录占用大小汇总
-h # 带计量单位
-a # 含文件
--max-depth=1 # 子目录深度
-c # 列出明细的同时,增加汇总值
ps –aux|grep xxx # 看看有没有 sshd 服务
- VSZ # 进程占用的虚拟内存大小(单位:KB)
- RSS # 进程占用的物理内存大小(单位:KB)
- TT # 终端名称,缩写 .
- STAT # 进程状态,其中 S-睡眠,s-表示该进程是会话的先导进程,N-表示进程拥有比普通优先级更低的优先级,R-正在运行,D-短期等待,Z-僵死进程,T-被跟踪或者被停止等等
- STARTED # 进程的启动时间
- TIME:CPU # 时间,即进程使用 CPU 的总时间
- COMMAND # 启动进程所用的命令和参数,如果过长会被截断显示
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!