Linux命令总结(部分说明)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux命令总结(部分说明)相关的知识,希望对你有一定的参考价值。
1、登陆和开关机
关机
halt poweroff init 0
重启
reboot init 6 shutdown shutdown -r 重启
shutodwn -h 关机 shutdown -c 取消计划关机 shutdown +0 马上关机 +1 一分钟后关机
-X X分钟后关机 20:00 今天20:00关机
whoami 显示当前的登录用户名
who am i 显示当前的登录用户名 终端名 登录时间
who 显示当前所有的登录用户名 终端名 登录时间
w 显示当前所有的登录用户名 终端名 登录时间 登录的来源 当前在做什么
2.切换用户与当前工作目录
su – 用户名 切换用户,并切换至用户家目录
su 用户名 非登陆切换用户
cd 相对或者绝对路径 进入目录
-P 如果目标目录是个软链接目录,则直接进入其源始目录
.. 进入上一级目录
cd 进入家目录
cd ~或直接 cd 进入家目录
cd – 进入上一次的工作目录
pwd 获取当前目录路径
3.基本常用命令
date 获取系统时间
date -s “2018-1-20 13:50:11” 设置系统时间
hwclock 或 clock 获取原子时间
-s 将硬时间写入软时间。
-w 将软时间写入硬时间。
cal 获取日历
history 获取命令的历史记录
hostname 获取主机名
中断命令
ctrl+C 强制中断
ctrl+d 正常中断
4.帮助命令文档查询
type 用来判断命令的类型
enable 管理显示内部命令
enable command 禁用内部命令
enable -n command 激活已禁用的内部命令
help 内部命令
外部命令 –help
查看指定命令的帮助信息
whereis command 查看命令的路径(外部命令)和 帮助文档的路径
which command 查看命令路径
man 检索命令帮助文档
5.文件查询
ls 列出目录的内容
ls 列出目录的内容
-a 列出所有文件(包含隐藏文件)
-A 列出所有文件(包含隐藏文件但不包含.和..)
-l 长列出(即显示属性信息)
-R 递归
-ld 查看指定目录的属性
-1 竖显示
stat 文件名
查看一个文件的详细属性,包括三个时间戳。
file 文件路径 判断文件的类型
-b 只显示辨识结果,不显示文件名
-f 文件路径 根据文件内容,将其中的文件分别辨识
cat 文件名 查看文件内容
vim 文件名 查看并编辑文件
6,新建文件, 移动、复制、删除文件
touch newfile 创建空文件
touch oldfile 更新文件的三个时间戳
touch -a oldfile 更新文件的atime和ctime
touch -m oldfile 更新文件的mtime和ctime
touch -t 201802122021.59 fstab
touch -c newfile 若文件存在则更新时间戳,若不存在不创建
mkdir
-p 一次性创建多级目录,无论父级目录是否存在。
-v 创建时显示信息
-m mode 创建时直接指定权限
rmdir 删除空目
cp src dst 被复制文件路径 新文件或被覆盖文件路径
-i 覆盖时提示
-r 递归,可复制目录
–preserv=mode 权限不变
–preserv=owner 权限及所属关系不变
–preserv=timestamp 时间不变
–preserv=all 以上全变
-p 等于 –preserv=mode,owner,timestamp 复制时保留权限,时间不变
-d 复制软链接
-v 显示复制过程
-a 以上全部
-f 当dst已存在,但当前用户对其没有w权限,导致无法直接覆盖,如果当前用户对所在目录有wx权限,即可创建和删除文件,那么,加上-f后,会先删除文件,再创建新文件,最后再填充内容与src一致。
mv src dst
若dst不存在,则改名。
-i 若dst已存在,则询问是否覆盖
-f 抵消掉-i的作用,直接覆盖,不询问
rm 删除
rm 文件名
-i 询问是否删除
-f 抵消掉-i的作用,直接删除,不询问
-r 递归,删除目录
ls |xargs rm -rf 当删除的文件数量过多,超过了所支持的参数数量上限时,可配合管道及xargs来删除。
–no-preserve-root
7.文本处理命令
tr
[set1] [set2 将set1转换成set2,set1的位数多于set2时,多出的位数全转成 set2的最后一位,如tr abcd ef 即a转成e,bcd均转成f
-d [set1] 删除set1的字符
-c [set1] [set2 除了set1以外的剩下其他字符都转换set2(换行符也会被转)
-cd [set1] 删除除set1以外的字符
-s [set1] 将连续重复的字符转为一个
cut -d分隔符(只能是单个字符) -f取哪一列 文件名
-output-delimiter=分隔符 表示输出的分隔符。默认为原文件分隔符
-fn,m 或 -fn-m
-cn,m 或 -cn,m -cn
sort
-t分隔符
-k以分隔符的第几列排序
-n以数字方式排序
-r倒序排列
-u去除重复项
-f忽略大小写
uniq 去重
uniq 去除连续的重复行,仅保留一行
-u 去除连续的重复行,不保留
-d 仅显示重复的行,去除不重复的行
-c 显示的结果前显示重复的次数
8.正则表达式grep 和 sed
grep
–color=auto 关键字高亮显示
-v 反选
-n 显示行号
-c 显示匹配行的数量
-i 忽略大小写
-q 静默
-A n 显示关键字及其下n行
-B n 显示关键字及其上n行
-C n 显示关键字及其上下n行
-e:实现多个选项间的逻辑or关系
-w:匹配整个单词
-E 或 egrep 使用扩展正则
-F 或 fgrep 不使用正则
sed
-i 更改原文件
-i.bak 在更改前将原文件备份为.bak
-n 不打印
-e 多模式
-f sed.txt 指定scripts的文件
-r 指定扩展正则
p打印
d删除
a在指定行后增加
i在指定行前增加
c替换指定行
w将模式空间的行写入指定文件
r将文件中的内容读入模式空间
=: 为模式空间中的行打印行号
!:模式空间中匹配行取反处理
Linux命令的语法格式:
COMMAND options arguments
选项:定义命令的执行特性
长选项:--引导,后跟单词,如 --help,--verbose
短选项:-引导,后跟单个字符,如-h,-l,-a
多个短选项可以组合: -h, -l , -a = -hla
有些选项也可以带参数
参数:定义命令的作用对象
ls : 列出指定目录下的文件
-l : 长格式显示文件的详细属性
文件类型
属主、属组及其它用户的权限
文件被硬链接次数
属主
属组
文件的大小
文件最后一次被修改的时间
时间戳:
最后一次被访问
最后一次被修改:内容
最后一次被改变:属性
-a : 显示所有文件,包括隐藏文件
-A : 跟-a功能相同,但不显示.和..;
. : 当前目录;
.. : 上级目录;
-n : 以用户级组的id号排序;
-h : 文件大小会自动进行单位换算;
-r :文件名逆序显示;
-R:递归显示;
-1 : 纵向列表显示,列表过滤或需要复制纵向结果时常用。
执行历史命令数据的快捷方法
!# : 执行历史中的第#条;
!-#: 执行历史中的倒数第#条;
!! : 命令历史中的最后一条命令;
!string : 执行命令历史中最近一条以“string”开头的命令
Ctrl+r 输入”string”: 搜索命令历史中最后一条以“string”开头的命令
COMMAND !$ 使用上一个命令的参数 也可用Alt+. 或 Esc .
系统时钟与硬件时钟的同步
hwclock
-w : 以系统时钟为准,将硬件时间修改为系统时间
-s : 以硬件时钟为准,将系统时间修改为硬件时间
Linux FHS标准目录结构:
/ : 根目录;
/bin : 二进制,可执行的命令;
/sbin : 可执行命令,仅用于管理,通常管理员才权限使用;
/boot : 引导,操作系统用于引导系统启动的文件,内核、grub;
/dev : 设备文件;
Linux的设备类型;
字符设备:c, 线性设备
块设备 : b, 随机设备
/etc : 配置文件;
/home : 用户的家目录,/home/USERNAME, jerry,/home/jerry;
/root : 管理员的家目录;
/lib, /lib64 : 库文件
/media : 挂载点目录,通常用于挂载便携性设备,如U盘;
/mnt : 挂载点目录,挂载额外的文件系统;
/misc : 备份目录;
/opt :可选目录,通常第三方软件偶尔安装于此路径下;
/proc : 伪文件系统:内存中内核的映射;
/selinux : 安全加强的Linux;
/srv : 属于服务的中间数据存储位置;
/sys : 伪文件系统,通常用于访问硬件设备属性信息;
/tmp : 临时文件目录;
/usr : 存储只读文件;
/var : 经常会发生变化的文件;比如说日志等;
切换到家目录的常用快捷方法
cd ~
cd
cd ~USERNAME : 切换到USERNAME的家目录;
cd - : 在上个目录和当前之间切换;
dirname : 显示指定路径的目录
在写脚本的时候常用来获取相应脚本的所在目录
例:
test.sh 脚本内容如下
base_dir=$(cd `dirname $0` && pwd)
echo $base_dir
执行结果 : 是test.sh的所在目录
bash支持命令行展开:{}
分别创建这四个目录 a_b,a_d,c_b,c_d
方法一: mkdir a_b a_d c_b _c_d
方法二: mkdir {a,c}_{b,d} –v
分别创建这几个目录 x/y, x/z, x/y/a, x/y/b, x/m
mkdir x/{y/{a,b},z,m}
文件相关的命令:
查看:
cat , tac : 正向和反向输出文件内容
more/less
more : 向后翻,在翻至文件尾部前允许向前翻
less : 向前后都可以
head/tail
head : 文件的前n行 默认10行
tail : 文件的后n行 默认10行
-n : 指定输出n行
tail -f : 实时输出文件尾部内容;退出使用Ctrl+C;
id命令:
id - print real and effective user and group IDs
id [OPTION]... [USER]
常用选项:
-u:查看uid
username:查看用户是否存在
在centos6.x中uid:
0:root用户
1-499:系统用户
500-65534:普通用户
在centos7.x中uid:
0:root用户
1-999:系统用户
1000-65534:普通用户
查看当前shell类型:
~]# echo $SHELL
shell的配置文件:/etc/shells
~]# cat /etc/shells
/bin/sh
/bin/bash
/sbin/nologin
/usr/bin/sh
/usr/bin/bash
/usr/sbin/nologin
/bin/tcsh
/bin/csh
显示提示符格式:\\u:user \\h:host \\w:present path
~]# echo $PS1
[\\[email protected]\\h \\W]\\$
自定义提示格式:PS1=[.....]
PS1:
\\u: 当前用户名
\\h: 主机名
\\H: FQDN,完整格式的主机名
\\W:当前工作目录的基名
\\w: 当前工作目录绝对路径
\\$: 提示符
当前使用命令查看:type
内嵌:type cd 查看帮助手册:help cd
外部:type mkdir
hash命令:
搜索外部命令路径的结果缓存至key-value中
hash:显示缓存
hash -r:清空缓存
hash -d:清空指定命令的缓存 如:hash -d ls
命令的执行的顺序:先找内部命令->缓存外部->外部命令,按照$PATH来找。
alias命令:
显示系统的别名,和设别名。
选项:
alias ls=’ls --color=auto’ 设置别名
unalias ls 取消别名
which命令:
显示命令的位置所在
which COMMAND which mkdir
whereis命令:
显示命令的帮助文档和命令所在的位置
date命令:
显示系统的时间
选项:
-s:修改系统时间
date: 日期和时间
date [options] [+FORMAT]
%s: 时间戳计时法,从Unix元年(1970-01-01 00:00:00)到此刻所经过的秒数
%F, %D
%T
%Y
%m
%d
%H
%M
%S
date [MMDDhhmm[[CC]YY][.ss]]
Linux有两个时钟:系统时钟和硬件时钟
硬件时钟:
系统时钟:Linux
hwclock
-s: 以硬件为准
-w:以系统为准
ntp: Network Time Protocol
通过网络同步系统时间
C/S: Server, Client
ntpdate SERVER
screen命令:
screen - screen manager with VT100/ANSI terminal emulation
安装screenrpm包:
rpm -i /media/CentOS_6.8_Final/Packages/screen-4.0.3-19.el6.x86_64.rpm
执行:screen -x chen
在另一端执行:screen -ls screen -rchen
echo命令:
功能:回显
选项:
\\a:发出警报
\\b:退格
\\c:不加上换行符
\\n:换行且换标移道行首
\\e:转义
~]# echo -e "\\033[42;31mman\\033[0m"
~]# echo -e "\\033[41;36m something here \\033[0m"
shell脚本中echo显示内容带颜色显示,echo显示带颜色,需要使用参数-e
格式如下:
echo -e "\\033[字背景颜色;文字颜色m字符串\\033[0m"
例如:
echo -e "\\033[41;36m something here \\033[0m"
其中41的位置代表底色, 36的位置是代表字的颜色
注:
1、字背景颜色和文字颜色之间是英文的""
2、文字颜色后面有个m
3、字符串前后可以没有空格,如果有的话,输出也是同样有空格
下面是相应的字和背景颜色,可以自己来尝试找出不同颜色搭配
例
echo -e “\\033[31m 红色字 \\033[0m”
echo -e “\\033[34m 黄色字 \\033[0m”
echo -e “\\033[41;33m 红底黄字 \\033[0m”
echo -e “\\033[41;37m 红底白字 \\033[0m”
字颜色:30—–37
echo -e “\\033[30m 黑色字 \\033[0m”
echo -e “\\033[31m 红色字 \\033[0m”
echo -e “\\033[32m 绿色字 \\033[0m”
echo -e “\\033[33m 黄色字 \\033[0m”
echo -e “\\033[34m 蓝色字 \\033[0m”
echo -e “\\033[35m 紫色字 \\033[0m”
echo -e “\\033[36m 天蓝字 \\033[0m”
echo -e “\\033[37m 白色字 \\033[0m”
字背景颜色范围:40—–47
echo -e “\\033[40;37m 黑底白字 \\033[0m”
echo -e “\\033[41;37m 红底白字 \\033[0m”
echo -e “\\033[42;37m 绿底白字 \\033[0m”
echo -e “\\033[43;37m 黄底白字 \\033[0m”
echo -e “\\033[44;37m 蓝底白字 \\033[0m”
echo -e “\\033[45;37m 紫底白字 \\033[0m”
echo -e “\\033[46;37m 天蓝底白字 \\033[0m”
echo -e “\\033[47;30m 白底黑字 \\033[0m”
最后面控制选项说明
\\33[0m 关闭所有属性
\\33[1m 设置高亮度
\\33[4m 下划线
\\33[5m 闪烁
\\33[7m 反显
\\33[8m 消隐
\\33[30m — \\33[37m 设置前景色
\\33[40m — \\33[47m 设置背景色
\\33[nA 光标上移n行
\\33[nB 光标下移n行
\\33[nC 光标右移n行
\\33[nD 光标左移n行
\\33[y;xH设置光标位置
\\33[2J 清屏
\\33[K 清除从光标到行尾的内容
\\33[s 保存光标位置
\\33[u 恢复光标位置
\\33[?25l 隐藏光标
\\33[?25h 显示光
命令扩展、被包括起来的集合
whatis命令:
whatis - search the whatis database for complete words.
如何获取命令帮助:
内置命令:help COMMAND
例如:help history
外部命令:
1、COMMAND --help
2、手册:manual
man [#] COMMAND
如何查看指定命令在哪些章节下有帮助:
whatis COMMAND
注意:whatis根据数据库执行查找操作,此库为系统定期更新;可使用makewhatis手动更新;
man的使用机制:
翻屏:
空格键:向文件尾部翻一屏
b: 向文件首部翻一屏
回车键:向文件尾部翻一行
k: 向文件首部翻一行
Ctrl+d: 向文件尾部翻半屏
Ctrl+u: 向文件首部翻并屏
字串搜索:
/keyword: 从文件首部向尾部进行搜索
?keyword: 从文件尾部向首部进行搜索
n: 显示找到的下一个
N:显示找到的上一个
退出:q
3、info命令:获取在线文档
仅在man手册无法获取到足够信息,或想了解程序的开发历史时才使用info
4、很多应用程序都自带有帮助文档:/usr/share/doc/
ChangeLog: 程序版本升级的变动情况
INSTALL: 安装方法说明
README:程序说明信息
安装vmware-tools:
cd /media/VMware\\ Tools/
ls
cp VMwareTools-10.0.0-2977863.tar.gz /testdir/
cd /testdir/
tar xvf VMwareTools-10.0.0-2977863.tar.gz
cd vmware-tools-distrib/
./testdir/vmware-tools-distrib/vmware-install.pl d
reboot
图形界面开机免密码登录:在/etc/gdm/custom.conf [daemon]下添加如下代码:
vi /etc/gdm/custom.conf
[daemon]
AutomaticLoginEnable=True
AutomaticLogin=root
命令别名:
alias
\\COMMAND : 使用命令自身,而不使用与命令名称同名的别名;
例:在root用户下使用cp复制文件需要覆盖时默认会提示因为root用户默认别名为 alias cp=’cp -i’, 使用\\cp 则 不提示直接覆盖
通配符:bash 支持文件通配 ,globbing
* : 任意长度的任意字符;
?:任意单个字符
[] : 指定范围内的凭单单个字符;[a-z]
[0-9] : 所有的数字
[a-z] : 所有的小写字母
[A-Z] : 所有的大写字母
[a-zA-Z]:所有的字母
[0-9a-zA-Z]:所有的数字和字母
不区分大小写;
字符集合(过滤文件内容时使用下面的集合比上面的字符更准确):
[:digit:] : 所有数字,相当于0-9
[0-9], [[:digit:]]
[:lower:] : 所有的小写字母
[:upper:] : 所有的大写字母
[:alpha:] : 所有的字母
[:alnum:] : 相当于[0-9a-zA-Z]
[:space:] : 空白字符
[:punct:] : 所有标点符号
[^] : 脱字符,取反,指定范围外的任意单个字符,[^0-9]
Linux 文件类型:
普通文件(-):a.html, b.txt , c.ppt , ls
目录文件(d):
特殊文件:
块设备文件(b):
字符设备(c):
符号链接文件(l) :
命名管道文件(p) : pipe
套接字文件 (s): socket
判断普通文件的内容的类型,使用file命令;
# file FILE
以上是关于Linux命令总结(部分说明)的主要内容,如果未能解决你的问题,请参考以下文章