Linux 常用命令

1、Linux文件系统命名规范

(1)文件名名称严格区分字符大小写;
(2)文件可以使用除/以外任意字符;
(3)文件名长度不能超过255字符;
(4)以 . 开头的文件为隐藏文件。
. 当前目录;
当前目录的上一级目录。

2、Linux常用命令

(1)pwd
printing working directory,显示工作目录;
(2)cd
change directory,切换目录;
cd [/PATH/TO/SOMEDIR]
cd:切换回家目录;在bash中,~表示家目录;
cd ~:切换回自己的家目录;
cd ~USERNAME:切换至指定用户的家目录;
cd -:在上一次所在目录与当前目录之间来回切换;
相关的环境变量:
$PWD:当前工作目录,相当于命令pwd;
$OLDPWD:上一次的工作目录,相当于命令cd -;
(3)ls
list,列出指定目录下的内容;
ls [OPTION]... [FILE]...
-a:显示所有文件,包括隐藏文件;
-A:显示除.和…之外的所有文件;
-l:–long, 长格式列表,即显示文件的详细属性信息;
-rw-r–r--. 1 root root 8957 10月 14 19:34 boot.log
-:文件类型,分为:
-:普通文件;
d:目录;
l:链接文件;
b:块设备;
c:字符设备;
p:管道设备;
s:socket文件;
rw-r–r--:
rw-:文件属主的权限;
r–:文件属组的权限;
r–:其它用户(非属主、属组)的权限;
.:表示该文件有隐藏属性;
1:数字表示文件被硬链接的次数;
root:文件的属主;
root:文件的属组;
8957:数字表示文件的大小,单位是字节;
10月 14 19:34 :文件最近一次被修改的时间;
boot.log:文件名;
-h, --human-readable:对文件大小单位换算;换算后结果可能为非精确值;
-d:查看目录自身而非其内部的文件列表;
-r:reverse,以逆序方式显示,默认是以升序显示;
-R:recursive,递归显示,如果一个目录里面有子目录,则也同时显示其子目录中的文件。
(4)file
file /PATH/TO/SOMEWHERE:文件内容类型查看命令;
通过file命令可以获知该文件是什么类型的,如普通文件、目录、链接文件等。
(5)echo
回显,echo是个内建命令,因此可以使用help echo来获得echo的帮助信息;
echo [SHORT-OPTION]... [STRING]...
n:关闭自动换行功能;
-e:启用转义符;
\t:制表符;
\b:退格键;
\n:new line,新添加一行;
\033[##m:控制颜色:
第一个数字3:字体前景色;
第一个数字4:字体背景色;
第二个数字:表示颜色本身:0-7;
如果同时使用前景色和背景色:\033[3#;4#m;
\033[#m:单个数字用于控制字体的加粗,下划线等功能;
\033[0m:关闭字体功能。

[root@localhost ~]# echo "hello everyone"
hello everyone
[root@localhost ~]# echo -n "hello everyone"
hello everyone[root@localhost ~]# 
[root@localhost ~]# echo "hello \neveryone"
hello \neveryone
[root@localhost ~]# echo -e "hello \neveryone"
hello 
everyone
[root@localhost ~]# echo -e "hello\teveryone"			\t水平制表符
hello	    everyone
[root@localhost ~]# echo -e "hello\veveryone"      		\v垂直制表符
hello
     everyone
[root@localhost ~]# echo -e "hello\beveryone"
helleveryone
[root@localhost ~]# echo -e "\033[31mhello\033[0m everyone"        实现颜色控制
hello everyone

STRING可以使用引号,单引号和双引号均可用;
单引号:强引用,变量引用不执行替换;~]# echo '$SHELL'
双引号:弱引用,变量引用会被替换;~]# echo "$SHELL"
注意:变量引用的正规符号:${name}
(6)系统启动命令
关机命令:halt,poweroff,shutdown,init 0;
重启命令:reboot,shutdown,init 6;
跟用户登录相关的命令:
who:系统当前所有的登录会话;
whoami:显示当前登录有效用户;
w:系统当前所有的登录会话及所做的操作。
关机或重启命令:shutdown
shutdown [OPTIONS...] [TIME] [WALL...]
OPTIONS:
-h:halt,关机;
-r:reboot,重启;
-P:poweroff,关机;
-c:cancel,取消关机;
TIME:
now        立刻;
hh:mm    绝对时间表示法,具体时间几点几分;
+m          相对时间表示法,从命令提交开始几分钟以后;
+0           相当于now
WALL
(7)wall
向每个终端发送一个消息;
(8)日期相关的命令
Linux系统启动时从硬件读取日期和时间信息;读取完成以后,就不再与硬件相关联;时钟分为系统时钟和硬件时钟。
<1>date:系统时钟
显示日期时间:date [OPTION]... [+FORMAT]
FORMAT:格式符
%F:按照指定格式显示:%Y-%m-%d;
%T:%hh:%mm:%ss;
%D:直接显示日期 mm/dd/yy;
%Y:显示年份;
%m:显示月份;
%d:显示几号;
%H:显示小时,如:00…23;
%M:显示分钟;
%c:显示本地日期星期时间;
%S:显示秒;
%s:从1970年1月1号(unix元年)0点0分0秒到命令执行那一刻经过的秒数;

[root@localhost ~]# date
Sat Nov 12 12:30:19 CST 2016
[root@localhost ~]# date +%F
2016-11-12
[root@localhost ~]# date +%H
12
[root@localhost ~]# date +%T
12:31:52
[root@localhost ~]# date +%F-%T
2016-11-12-12:32:27
[root@localhost ~]# date +"%F %T"
2016-11-12 12:32:47
[root@localhost ~]# date +%c
Sat 12 Nov 2016 12:33:46 PM CST
[root@localhost ~]# date +%Y
2016
[root@localhost ~]# date +%m
11
[root@localhost ~]# date +%d
12
[root@localhost ~]# date +%H
12
[root@localhost ~]# date +%M
35
[root@localhost ~]# date +%S
25
[root@localhost ~]# date +%Y-%m-%d-%H-%M-%S
2016-11-12-12-36-26

设定日期时间:date [MMDDhhmm[[CC]YY][.ss]]
MM:月份;
DD:几号;
hh:小时;
mm:分钟;
YY:两位年份;
CCYY:四位年份;
ss:秒;
<2>Linux系统的两种时钟:
系统时钟:由Linux内核通过cpu的工作频率进行的计时;
硬件时钟:就是主板bios提供的时钟,由主板电池供电来维持运行;
date命令显示的是系统时间,clock或者hwclock命令显示的是硬件时钟。
时钟的修改:修改时钟包括系统时钟和硬件时钟。
hwclock,clock:硬件时钟
显示或设定硬件时钟:
-s, --hctosys:以硬件为准,把系统调整为与硬件时间相同;
-w, --systohc:以系统为准,把硬件时间调整为与系统时钟相同;
<3>cal:日历
cal [[[day] month] year

cal           显示当月日历
cal 2016      显示年历 
cal 10 2015   查看指定月份

(9)命令别名
举例:编辑网卡配置文件,通常需要 cd /etc/sysconfig/network-scripts,这样每次都会比较麻烦,因此我们可以通过定义命令别名来用一个自定义的名称来代替上面的命令。
获取当前shell下所有可用别名的定义:~]# alias
等号之前表示新的命令名称,等号后面表示所要代替的命令及其参数,这样新的命令将具有老的命令所定义的参数的功能。
定义别名:~]# alias NAME='COMMAND',注意:仅对当前shell进程有效。
定义别名如需永久有效,需要定义在配置文件中,其中,仅对当前用户有效:~/.bashrc,对所有用户有效:/etc/bashrc。
bash 进程重读配置文件:source /path/to/config_file,或者. /path/to/config_file
撤销别名:~]# unalias NAME
撤销所有命令别名:unalias -a(仅对当前shell有效);
如果别名与原命令的名称相同,则如果要执行原命令,可使用“\COMMAND”。
(10)which命令
which:显示命令的完整路径;
which [options] programname [...]
有时候一个命令还有其他的别名,但我们想查看命令本身,而非别名,此时可以使用:which --skip-alias COMMAND,禁止使用命令别名,直接使用原始的命令。
(11)whereis命令
whereis:定位命令的手册页;
whereis [options] name...
-b: 仅搜索二进制程序路径;
-m:仅搜索使用手册文件路径;
(12)who命令
who:查看登录当前系统的用户信息;
who [OPTION]...
-b: 系统此次启动的时间;
-d: 显示死亡的进程;
-l: 显示系统登陆进程;
-u: 显示登陆信息;
-r: 运行级别;
(13)w命令
w:增强版的who命令;
(14)目录管理类的命令
mkdir [OPTION]... DIRECTORY...
-p: 父目录存在时不返回错误,不存在时自动按需创建父目录;
-v: verbose,显示详细过程;
-m MODE:创建目录时直接指定权限;
注意:路径基名为命令的作用对象;基名之前的路径必须得存在;
rmdir [OPTION]... DIRECTORY...
rmdir只能删除空目录;
-p:删除某目录后,如果其父目录为空,则一并删除之;
-v: 显示过程;
(15)tree命令
tree [options] [directory]
-d:只显示目录;
-L level:指定要显示的层级;默认显示所有层级;
-P pattern:只显示指定pattern匹配到的路径;
注意:没有tree命令需要通过yum -install tree来安装。
(16)文件查看类命令
1)cat
连续地将文件的内容显示在屏幕上;

cat /etc/fstab
cat /etc/passwd
[root@localhost ~]# file /etc/fstab         查看文件类型
/etc/fstab: ASCII text                      文本文件

cat [OPTION]... [FILE]...
-A,–show-all,-vET:显示所有非正常的所有符号;
-E,–show-ends:显示行结束符 $ ;
-T,–show-tabs:显示制表符;
-v,–show-nonprinting:显示其他的非打印字符;
-n:对显示的行进行编号,与文件内容没有关系;
-b:打印出行号(空白行不标行号);
直接输入cat命令表示等待用户的输入并打印显示,以Ctrl+c结束。
2)tac
文件内容逆序显示。

tac /etc/fstab
tac /etc/passwd

tac [OPTION]... [FILE]...
-n:给显示的文本行编号;
-E:显示行结束符$;
3)分屏查看命令:more和less
more命令:more [options] FILE [...]
-d:显示翻页及退出提示;
特点:翻屏至文件尾部后自动退出;
less命令:less FILE
man命令即使用less命令查看;
4)head命令
查看文件的前n行内容(默认前10行):head [options] FILE
-n #:指定获取前#行,也可使用-#;
-c #:指定获取前#字节内容;
5)tail命令
tail [options] FILE
查看文件的后n行内容(默认后10行)
-n #:指定获取后#行,也可使用-#;
-c #:指定获取后#字节内容;
-f:查看文件尾部内容结束后不退出,跟随显示新增的行;用来动态显示文件新内容,做监视用,用Ctrl+c键退出。
(17)stat命令
stat:显示文件或文件系统状态;
stat FILE...
文件有两类数据:元数据和数据。
元数据:metadata,用来描述文件的属性信息,stat FILE
数据:data,组成文件的数据,cat FILE
stat命令显示的文件时间戳:

access time:2015-12-10 16:12:22.776423693 +0800
modify time:2015-12-10 16:12:22.776423693 +0800      数据改变
change time:2015-12-10 16:12:22.776423693 +0800      元数据改变

(18)touch命令
touch:改变文件的时间戳。
touch [OPTION]... FILE...
-c:当touch一个不存在的文件时,会先创建一个空文件,如果不想创建一个空文件,则使用-c选项,如touch -c a.txt,即如果文件不存在,则不创建该文件。chang time不能手动指定,只能修改atime和mtime;
-a: 仅修改access time,访问时间,即通过cat,more等读取其内容;
-m:仅修改modify time,修改时间,即改变文件内容;
-t STAMP:

[[CC]YY]MMDDhhmm[.ss]      修改指定时间戳为某时间
eg. touch -m -t 0212010303.03 /tmp/functions

(19)文件管理工具
1)cp命令:copy
单源复制:cp [OPTION]... [-T] SOURCE DEST

  1. 如果DEST不存在:则事先创建此文件,并复制源文件的数据流至DEST中;
  2. 如果DEST存在:
    a. 如果DEST是非目录文件:则覆盖目标文件(可以用-i来提醒用户是否覆盖);
    b. 如果DEST是目录文件:则先在DEST目录下创建一个与源文件同名的文件,并复制其数据流;

多源复制(必须使用-r选项):cp [OPTION]... SOURCE... DIRECTORY
cp [OPTION]... -t DIRECTORY SOURCE...

  1. 如果DEST不存在:先创建DEST目录,并将SRC中的所有内容复制到DEST目录中;
  2. 如果DEST存在:
    a. 如果DEST是非目录文件:错误;
    b. 如果DEST是目录文件:先在DEST目录下创建与SRC同名的目录,并将SRC中的所有内容复制到DEST中;

常用选项:
-i:交互式复制,即覆盖之前提醒用户确认;
-f:强制覆盖目标文件;
-r, -R:递归复制目录及内部的所有内容;
-d:–no-dereference --preserve=links,复制符号链接文件本身,而非其指向的源文件;其指向的源文件为相对路径;不加-d选项则用源文件填充符号链接文件成为普通文件;
-a:-dR --preserve=all, archive,用于实现归档;做备份;
–preserve=
mode:权限
ownership:属主和属组
timestamps: 时间戳
context:安全标签
xattr:扩展属性
links:符号链接
all:上述所有属性
-p:保持原有文件的属性信息;
-f:强制覆盖;
-v:显示过程;
2)mv命令:move
mv [OPTION]... [-T] SOURCE DEST
mv [OPTION]... SOURCE... DIRECTORY
mv [OPTION]... -t DIRECTORY SOURCE..
常用选项:
-i:交互式;
-f:force
3)rm命令:remove
rm [OPTION]... FILE...
常用选项:
-i:interactive
-f:force
-r: recursive
删除目录:rm -rf /PATH/TO/DIR
危险操作:rm -rf /*
注意:所有不用的文件建议不要直接删除,而是移动至某个专用目录(模拟回收站)。
(20)whatis
显示命令的帮助信息的位置。
创建命令的帮助手册的数据库在CentOS6和CentOS7上不同:
CentOS6:使用makewhatis命令可将当前系统上所有的帮助手册及与之对应的关键字创建为一个数据库;
CentOS7:使用mandb命令可将当前系统上所有的帮助手册及与之对应的关键字创建为一个数据库。

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 书香水墨 设计师:CSDN官方博客 返回首页