系统相关命令
login
登录logout
注销
poweroff
普通关机halt
立刻关机
reboot
普通重启shutdown -r now
立刻重启shutdown -r 10
过10分钟自动重启shutdown -r 20:35
在时间为20:35时候重启
shutdown -h now
关闭系统(root用户使用)shutdown -h 10
10分钟后关闭系统shutdown -c
取消按预定时间关闭系统init 0
关闭系统telinit 0
关闭系统
CentOS查看系统版本
$ cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)
$ uname -a
Linux DESKTOP-VEB85IN 4.4.0-18362-Microsoft #476-Microsoft Fri Nov 01 16:53:00 PST 2019 x86_64 x86_64 x86_64 GNU/Linux
$ cat /etc/issue #这个centos7以上看不了
$ cat /proc/version
Linux version 4.4.0-18362-Microsoft (Microsoft@Microsoft.com) (gcc version 5.4.0 (GCC) ) 476-Microsoft Fri Nov 01 16:53:00 PST 2019
#查看版本位数是64位还是32位
getconf LONG_BIT
getconf WORD_BIT
Ubuntu查看系统版本
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 18.04.4 LTS
Release: 18.04
Codename: bionic
$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=18.04
DISTRIB_CODENAME=bionic
DISTRIB_DESCRIPTION="Ubuntu 18.04.4 LTS"
$ cat /etc/issue
Ubuntu 18.04.4 LTS \n \l
Ubuntu查看系统信息及桌面环境:
$ sudo apt install neofetch
$ neofetch
.-/+oossssoo+/-. root@DESKTOP-VEB85IN
`:+ssssssssssssssssss+:` --------------------
-+ssssssssssssssssssyyssss+- OS: Ubuntu 18.04.4 LTS on Windows 10 x86_64
.ossssssssssssssssssdMMMNysssso. Kernel: 4.4.0-18362-Microsoft
/ssssssssssshdmmNNmmyNMMMMhssssss/ Uptime: 19 hours, 59 mins
+ssssssssshmydMMMMMMMNddddyssssssss+ Packages: 1846
/sssssssshNMMMyhhyyyyhmNMMMNhssssssss/ Shell: zsh 5.4.2
.ssssssssdMMMNhsssssssssshNMMMdssssssss. Terminal: /dev/tty1
+sssshhhyNMMNyssssssssssssyNMMMysssssss+ CPU: Intel i7-8700 (12) @ 3.192GHz
ossyNMMMNyMMhsssssssssssssshmmmhssssssso Memory: 10405MiB / 16246MiB
ossyNMMMNyMMhsssssssssssssshmmmhssssssso
+sssshhhyNMMNyssssssssssssyNMMMysssssss+
.ssssssssdMMMNhsssssssssshNMMMdssssssss.
/sssssssshNMMMyhhyyyyhdNMMMNhssssssss/
+sssssssssdmydMMMMMMMMddddyssssssss+
/ssssssssssshdmNNNNmyNMMMMhssssss/
.ossssssssssssssssssdMMMNysssso.
-+sssssssssssssssssyyyssss+-
`:+ssssssssssssssssss+:`
.-/+oossssoo+/-.
帮助相关命令
help [command]
查看某个命令的帮助man [command]
查看某个命令的详细文档man -f [command]
查看某个命令的参考资料,同 whatisman -k man
查看所有命令的参考资料man 1 cd
在第一章节查看cd命令的资料whatis [command]
查看某个命令的参考资料info [command]
查看某个命令的信息[command] --help
或[command] -h
man命令中常用按键以及用途:
按键 | 用处 |
---|---|
空格键 | 向下翻一页 |
PaGe down | 向下翻一页 |
PaGe up | 向上翻一页 |
home | 直接前往首页 |
end | 直接前往尾页 |
/ | 从上至下搜索某个关键词,如“/linux” |
? | 从下至上搜索某个关键词,如“?linux” |
n | 定位到下一个搜索到的关键词 |
N | 定位到上一个搜索到的关键词 |
q | 退出帮助文档 |
man命令帮助信息的结构以及意义:
结构名称 | 代表意义 |
---|---|
NAME | 命令的名称 |
SYNOPSIS | 参数的大致使用方法 |
DESCRIPTION | 介绍说明 |
EXAMPLES | 演示(附带简单说明) |
OVERVIEW | 概述 |
DEFAULTS | 默认的功能 |
OPTIONS | 具体的可用选项(带介绍) |
ENVIRONMENT | 环境变量 |
FILES | 用到的文件 |
SEE ALSO | 相关的资料 |
HISTORY | 维护历史与联系方式 |
目录及文件操作
目录标识
/
代表根目录~
表示为 home directory (root用户为/root
,普通用户为/home/username
).
则是表示目前所在的目录..
则表示目前目录位置的上一层目录
切换目录
cd dir
改变目录
列出目录/文件
ls
列出当前目录文件及子目录ls -l
显示文件和目录的详细资料,简写ll
ls -a
显示当前目录下包括影藏文件在内的所有文件列表ls -lSr
以尺寸大小排列文件和目录ls -ltr
按修改时间列出文件和文件夹详细信息ls -li
显示文件的 inode 信息
创建目录
mkdir dir1 dir2
同时创建两个目录mkdir -p path/to/dir
递归创建一个目录树mkdir -m 700 dir
创建目录并指定目录权限mkdir -p -m 750 path/to/dir
递归创建目录并指定目录权限rmdir -p path/to/dir
递归删除空目录
创建文件
touch file
创建文件touch -t 0712250000 file
修改一个文件或目录的时间戳 - (YYMMDDhhmm)
删除目录/文件
rm file1 file2
删除一个文件rm -rf dir
删除一个目录并同时删除其内容,不经确认
拷贝/移动/重命名
cp origin path/to/target
复制一个文件cp dir/* .
复制一个目录下的所有文件到当前工作目录cp -r origin target
复制一个目录及其所有文件mv origin target
移动/重命名文件
:::info 所有目标文件指定的目录必须是己经存在的,cp命令不能创建目录。 :::
在 Linux 下使用 cp 命令复制文件时候,有时候会需要覆盖一些同名文件,覆盖文件的时候都会有提示:需要不停的按Y来确定执行覆盖。文件数量不多还好,但是要是几百个估计按Y都要吐血了,于是折腾来半天总结了一个方法:
# 没有提示按Y、传递了目录属性、没有略过目录。
\cp -r -a aaa/* /bbb
# 另一种解决方案
echo y | cp ./a/* ./b
:::danger 如果把一个文件复制到一个目标文件中,而目标文件已经存在,覆盖文件的时候会有提示,如果选择 Y,那么,该目标文件的内容将被破坏。 :::
文件查看及编辑
cat
:::warning
当文件较大时,文本在屏幕上迅速闪过(滚屏),用户往往看不清所显示的内容。
因此,一般用more等命令分屏显示。
为了控制滚屏,可以按 Ctrl+S 键,停止滚屏;按 Ctrl+Q 键可以恢复滚屏。按 Ctrl+C(中断)键可以终止该命令的执行,并且返回Shell提示符状态。
:::
cat file1 file2
在屏幕上显示文件的内容cat file1 file2 > file
将文件 file1 和 file2 合并后放入文件 file 中cat file | more
分屏显示 file 文件的内容cat -n file
显示 file 内容并显示行号nl file
类似于cat -n
,显示时输出行号
tac
: 文件内容从最后一行开始显示,可以看出 tac 是 cat 的倒着写
nl
more 和 less
- more命令 是一个基于 vi 编辑器文本过滤器,它以全屏幕的方式按页显示文本文件的内容,支持vi中的关键字定位操作。more名单中内置了若干快捷键,常用的有H(获得帮助信息),Enter(向下翻滚一行),空格(向下滚动一屏),Q(退出命令)。
- less命令 的作用与 more 十分相似,都可以用来浏览文字档案的内容,不同的是 less 命令允许用户向前或向后浏览文件,而 more 命令只能向前浏览。用 less 命令显示文件时,用 PageUp 键向上翻页,用 PageDown 键向下翻页。要退出 less 程序,应按 Q 键。
more file # 类似于 `cat file | more`,分屏显示文件的内容
more -dc file # 显示文件 file 的内容,但在显示之前先清屏,并且在屏幕的最下方显示完核的百分比
more -c -10 file # 显示文件file的内容,每10行显示一次,而且在显示之前先清屏
head 和 tail
- head命令 用于显示文件的开头的内容。在默认情况下,head命令显示文件的头10行内容。
- tail命令 用于输入文件中的尾部内容。tail 命令默认在屏幕上显示指定文件的末尾10行。如果给定的文件不止一个,则在显示的每个文件前面加一个文件名标题。如果没有指定文件或者文件名为“-”,则读取标准输入。
:::info
如果表示字节或行数的N值之前有一个 “+” 号,则从文件开头的第N项开始显示,而不是显示文件的最后N项。
N值后面可以有后缀:b表示512,k表示1024,m表示1 048576(1M)。
:::
head file # 只显示头10行
head -1 file # 显示头一行
tail file # 只显示最后10行
tail -1 file # 显示最后一行
tail +20 file # 显示文件file的内容,从第20行至文件末尾
tail -c 10 file # 显示文件file的最后10个字符
输出目录树/文件树
# 输出目录树
find . -type d -print 2>/dev/null | awk '!/\.$/ {for (i=1; i<NF; i++){printf("%4s","|")} print("--"$NF)}' FS='/';
# 输出文件树
find . -print 2>/dev/null | awk '!/\.$/ {for (i=1; i<NF; i++){printf("%4s","|")} print("--"$NF)}' FS='/';
日期时间
date
显示系统日期date 041217002007.00
设置日期和时间 - 月日时分年.秒date -s "20170901 8:30:00"
设置时间 - 年月日 时分秒date "+%Y-%m-%d %H:%M:%S"
以特定格式输出系统时间
date命令中的参数以及作用
参数 | 作用 |
---|---|
%t | 跳格[Tab键] |
%Y | 年 |
%m | 月(01~12) |
%d | 日(01~31) |
%H | 时(00~23) |
%I | 时(00~12) |
%M | 分(00~59) |
%S | 秒(00~59) |
%j | 今年中的第几天 |
cal
显示本月日历cal 2008
显示2008年的日历表clock -w
将时间修改保存到 BIOS
其他命令
clear
清屏echo
在终端输出whoami
显示当前登录的用户名
pwd
显示工作路径tree
显示文件和目录由根目录开始的树形结构
stat file
用于显示文件的状态信息。stat命令的输出信息比 ls 命令的输出信息要更详细。file file
用来探测给定文件的 mime type 类型
du -sh dir1
估算目录 ‘dir1’ 已经使用的磁盘空间’du -sk * | sort -rn
以容量大小为依据依次显示文件和目录的大小