1.1 系统登录和退出
1. exit和logout:命令退出Linux系统
-
exit 重新回到登陆状态 logout 重新回到登陆状态(同exit)
2. reboot命令:重启计算机
-
reboot 以root账户登录才可使用该命令
3. halt和poweroff命令:关闭计算机
-
halt poweroff
4. shutdown命令
-
shutdown [选项] [时间]
-
shutdown -r 关机后立即重启 (reboot) shutdown -h 关机后不重启 shutdown -c 取消一个已经运行的shutdown (cancel)
-
时间:hh:mm shutdown 10:40 表示10:40时候执行shutdown命令 shutdown +5 表示 5 分钟后执行shutdown命令
1.2 简单命令
1. who命令:列出所有正在使用系统的用户、所用终端和注册到系统的时间
-
who 列出所有正在使用系统的用户、所用终端和注册到系统的时间
2. date命令:显示系统日期和时间
-
date 显示系统日期和时间
3. cal命令:显示当前月份日历
-
cal [月] [年]
-
cal 显示当前月份日历
-
cal 2021 显示2021年日历 cal 12 2021 显示2021年12月日历
1.3 目录管理命令
Linux的树形目录结构
存放Linux的常用命令的目录是:/bin
1. 相对路径
-
./abc.txt 表示当前目录下的abc.txt文件 ../usr.conf 表示当前目录下的上一级目录的usr.conf文件 ../../usr/ 表示当前目录的上级目录的上级目录的usr目录
2. pwd命令:显示当前目录的路径
-
pwd 显示当前目录的路径
3. ls命令:列出目标目录中所有的子目录和文件
-
功能:列出目标目录中所有的子目录和文件
-
ls [选项] [目录路径]
-
ls -a 显示所有文件和子目录(包含隐藏文件(文件名以" . "开头)) ls -l 显示文件名、文件权限、所有者、文件大小等信息 ls -r 以英文逆序显示目录的内容 ls -t 以修改时间排序,最新的最靠前,显示文件名 ls -S 以文件长度由大到小显示 ls -a 显示当前目录下所有文件及子目录(包含隐藏文件) ls -l /etc 显示/etc目录下所有文件及子目录(==不==包含隐藏文件)
4. cd命令:切换目录
-
功能:切换目录
-
cd / 或 cd .. 表示切换到上一级目录 cd 或 cd ~ 表示回到用户主目录
5. mkdir命令:创建子目录
-
功能:创建子目录
-
mkdir [选项] 目录名称或路径 mkdir -m 设置存取权限,由八进制数字表示 mkdir -p 一次建立多个目录,若新建目录所指定的路径中父目录不存在,则自动建立
-
mkdir mine 建立名为mine的子目录 mkdir stu teacher 同时建立stu和teacher子目录 mkdir /root/abc 在/root目录下建立abc子目录 mkdir -p staff/wang 在当前目录下建立staff子目录,并在staff目录下再建立wang子目录
6. rmdir命令:删除子目录
-
功能:删除子目录
-
rmdir [选项] 目录名称或路径 rmdir -p 递归删除子目录,删除子目录后,若其父目录为空,则一同删除;若非空,则保留父目录 注意:子目录在被删除之前应是空目录
-
rmdir mine 删除当前目录下mine目录 rmdir stu teacher 删除stu和teacher目录 rmdir /root/abc 删除/root目录下的abc子目录 rmdir -p staff/wang 删除staff子目录,并同时删除staff目录下的wang子目录
1.4 显示文本文件内容命令:显示文本文件内容
1. cat命令:显示文本文件内容
-
功能:显示文本文件内容
-
cat [选项] 文件
-
cat -b 从1开始对所有非空输出行进行编号 cat -n 从1开始对所有输出行编号 cat -s 将多个相邻的空行合并成一个空行
-
cat /etc/networks 显示/etc/networks文件的内容 cat -b /etc/networks 显示/etc/networks文件内容,并对所有非空输出行进行编号 cat -n /etc/networks 显示/etc/networks文件内容,并对所有输出行进行编号 cat -s /etc/sensors.conf 显示/etc/sensors.conf的文件内容,并将多个相邻的空行合并为一个空行
2. more命令:一次性显示一屏幕的文本
-
功能:一次性显示一屏幕的文本,满屏后停下,且在屏幕底部显示出一个提示信息,给出目前 已显示文本占该文件的百分比:–More–(XX%)
-
more [选项] 文件
-
more -num 指定一个整数,表示一屏显示多少行 more -c 不滚屏,在现实下一屏之前先清屏 more +num 从行号num开始 more -s 将文件中连续的空白行合成一个空白行显示
-
功能键:
- 空格键:显示文本的下一屏内容
- 回车键:显示下一行内容
- b键:显示上一屏内容
- q键:退出more命令
-
more /etc/sensors.conf 分屏显示/etc/sensors.conf文件的内容 more -10 /etc/sensors.conf 分屏显示/etc/sensors.conf文件的内容,一屏显示10行 more -10 -c /etc/sensors.conf 分屏显示/etc/sensors.conf文件的内容,一屏显示10行,且不滚动屏幕 more +20 /etc/sensors.conf 从第20行分屏显示/etc/sensors.conf的内容
3. less命令:与more类似,但可以向前翻滚、向后翻滚
-
功能:与more类似,一次显示一页,可向前翻滚、向后翻滚
-
less 文件
-
功能键:
- 空格键: 显示下一页
- 回车键: 显示下一行
- b键: 显示上一页
- Page up键:同b键
- Page down键:同空格键
- q键:退出less
-
less /etc/sensors.conf
4. head命令:在屏幕上显示指定文件开头的若干行,行数由参数决定。默认显示10行
-
功能:在屏幕上显示指定文件开头的若干行,行数由参数决定。默认显示10行
-
head [选项] 文件
-
head -n N或-N 显示前N行,若有'-'(负号),则分别显示每个文件最后N行以外的所有内容 head -c N 显示每个文件的前N字节,若有'-'(负号),则与上同理 head -q 不显示给指定文件的标题
-
head -n 5 /etc/sensors.conf 或 head -5 /etc/sensors.conf 显示/etc/sensors.conf文件内容前5行 head -n -5 /etc/hosts 显示/etc/hosts除了最后5行的所有内容 head -c 20 /etc/sensors.conf 显示/etc/sensors.conf文件内容前20字节内容 head -c -3 /etc/hosts 显示/etc/hosts文件除最后3字节的所有内容
5. tail命令:显示指定文件最后若干行,默认10行
-
功能:显示指定文件最后若干行,默认10行
-
tail [选项] 文件
-
tail -n N或+N 显示文件最后N行,默认10行;若数字前带有'+',则从文件开头的第N行开始显示 tail -c N或+N 显示文件最后N字节,若带有+,则从文件开头第N字节开始显示 tail -q 不显示文件的标题
-
tail -n 5 /etc/sensors.conf 或 tail -5 /etc/sensors.conf 显示/etc/sensors.conf文件最后5行 tail -n +15 /etc/hosts 或 tail +15 /etc/hosts 显示/etc/hosts文件开头15行到末尾的所有内容 tail -c 20 /etc/sensors.conf 显示/etc/sensors.conf文件内容的最后20字节
6. touch命令:修改指定文件的时间标签,默认改为系统当前时间,若该文件不存在,则创建一个空文件
-
功能:修改指定文件的时间标签,默认改为系统当前时间,若该文件不存在,则创建一个空文件
-
touch [选项] 文件名 …
-
touch -a 仅改变文件的存取时间 touch -c 不创建任何文件 touch -m 仅改变文件的修改时间 touch -t STAMP 使用STAMP指定的时间标签,而不是系统当前时间
-
touch a b 在当前目录下建立a和b两个空文件
1.5 复制、移动、删除文件命令
1. cp命令:复制
-
功能:将源文件或目录复制到目标文件或目录中
-
cp [选项] 源文件或目录 目标文件或目录
-
cp -f 若现存的目标文件无法打开,则删除并重试 cp -i 再覆盖目标文件之前先给出提示,与用户交互,回答y则会覆盖目标文件 cp -R或r 递归复制目录,将源目录下的所有文件以及其各级子目录都复制到目标位置
-
cp命令中可以使用通配符
-
‘?’ 可代替单个字符
-
‘*’ 可代替任意字符串
-
[字符集] 可代替字符集中任意单个字符
- 例如:
- [cChH] 可代替c或h字符的大小写形式
- [a-z] 可代替任意小写字母
- [a-zA-Z] 可代替人以字母
- 例如:
-
将/etc/passwd文件复制到mine目录下 mkdir mine cp /etc/passwd ./mine
-
将/etc/group文件复制到当前目录下的mine子目录下,并改名为mygroup cp etc/group ./mine/mygroup
注意:这里不是/etc/group而是etc/group,是因为group文件将要改名为mygroup
-
再次将/etc/passwd文件复制到当前目录的mine子目录下,再用交互式复制 cp -i /etc/passwd ./mine
-
在当前目录下建立wang子目录,将mine目录下所有的文件都复制到wang子目录下 mkdir wang cp -r ./mine/* ./wang
-
在mine子目录下建立abc子目录,将/etc/中所有以c-g开头的文件,但不包括隐藏文件和子目录,都复制到abc目录下 mkdir ./mine/abc cp /etc/[c-g]* ./mine/abc
-
将mine目录下的abc子目录下的以f开头后跟4个字母的文件复制到wang子目录下 cp ./mine/abc/[f]???? ./wang
-
将mine目录下的abc子目录下的以c或d开头的文件复制到wang子目录下 cp ./mine/abc/[cd]* ./wang
-
将mine目录连同子目录的所有内容复制到zhang目录下 cp -r ./mine ./zhang
-
2. mv命令:重命名或移动
-
功能:对文件或目录重命名rename,或将文件从一个目录转移到另一个目录
-
mv [选项] 源文件路径 目的文件路径(或更改的新名)
-
mv -i 交互式,若源文件与目标文件或目标目录中的文件同名,则是询问否覆盖目标文件,y|n mv -f 强制式,禁止交互式操作,再覆盖已有的目标文件是,不给任何提示
-
可以使用通配符
-
将当前wang目录下的dialogrc移动到zhang目录下 mv ./wang/dialogrc ./zhang
-
进入zhang目录,将其中dialogrc文件改名为dia cd zhang mv dialogrc dia
-
交互式将当前wang目录下的mygroup移动到zhang目录下 mv -i ./wang/mygroup ./zhang
-
强制的将当前wang目录下的passwd文件移动到zhang目录下,不给任何提示 mv -f ./wang/passwd ./zhang
-
在当前目录下建立zhao目录,将mine目录下的abc子目录下的文件名为f或g开头的文件移动到zhao目录下 mkdir zhao mv ./mine/abc/[fg]* ./zhao
-
将zhao目录改名为qian,再将qian目录移动到wang目录下 mv zhao qian mv qian wang
3. rm命令:删除
-
功能:删除文件或目录
-
rm [选项] 文件或目录列表
-
rm -f 忽略不存在的文件,且不给出任何提示信息 rm -r 递归的删除指定目录及其下属的各级子目录和相应的文件 rm -i 交互式,删除文件
-
注意:
- 只要是文件,不管是否隐藏,或是文件的使用权限设置成只读,rm皆可删除
- 注意!!以删除的文件是无法恢复的,所以rm时要特别小心
- 可使用通配符 慎用rm -f*()
-
进入mine目录,删除mygroup和passwd文件 cd mine rm mygroup passwd
-
删除wang目录下qian子目录中以g开头的文件 rm wang/qian/g*
-
交互式删除mine目录下abc子目录中以e或f开头的文件 rm -i mine/abc/[ef]*
1.6 统计、查找、文件内容命令
1. wc命令:统计
-
功能:统计指定文件的字节数、字数、行数,并且显示出来
-
wc [选项] [文件] …
-
wc -c 统计字节数 wc -l 统计行数 wc -w 统计字数
-
统计/etc/imrc文件的行数,字数,字节数 wc -lwc /etc/imrc
2. grep命令:按模式查找
-
功能:在文本中查找指定模式的词或短语,并在标准输出上显示包括给定字符串模式的所有行
-
grep [选项] 查找模式 [文件名1,文件名2,…]
-
grep -c 只显示文件中包括匹配字符串的行数 grep -i 匹配比较时不区分字母的大小写 grep -r 一递归方式查询目录下的所有子目录中的文件 grep -n 在输出包括匹配模式的行之前,加上该行号(首行行号为1) grep -v 只显示不包括匹配字符串的文本行 grep -w 精确匹配(以单词匹配)
-
查找/etc/passwd文件内容中包含root的行 grep root /etc/passwd
-
查找/etc/group文件内容中包含root的行,显示行数 grep -c root /etc/group
-
查找/etc/hosts文件内容中包含this的行,不区分大小写 grep -i this /etc/hosts
-
查找/etc/hosts文件内容中包含this的行,不区分大小写,并且加上行号 grep -in this /etc/hosts
-
查找/etc/mtab文件内容中不包含fs的行 grep -v fs /etc/mtab
-
递归查找/etc目录下所有的文件包含usbfs的行 grep -r usbfs /etc
-
查找/etc/mtab文件内容中精确匹配fs这个单词的行 grep -w fs /etc/mtab
-
grep命令还可以查找用正则表达式所定义的目标
-
eg.
- ^ 指示一行的开头
- $ 指示一行的结束
- . 代表任意单一字符
- * 表示匹配 0 个或多个 * 之前的字符
-
查找/etc/lisarc文件内容中以S开头的行 grep '^S' /etc/lisarc
-
查找/etc/lisarc文件中以;结尾的行 grep ';$' /etc/lisarc
-
查找/etc/esd.conf文件中精确匹配包含以i开头后跟一个字母的单词的行 grep -w 'i.' /etc/esd.conf
-
查找/etc/esd.conf文件中精确匹配包含以c开头的单词的行 grep -w 'c.*' /etc/esd.conf
-
1.7 链接文件命令
1. ln命令:创建链接
-
功能:创建链接
-
ln [选项] 源文件 [目标文件]
-
ln -s 建立符号链接(软链接),而不是硬链接
-
注意:符号链接文件不是一个独立文件,他的很多属性以来源文件,所以给定的符号链接文件设置存取权限是没有意义的
-
在当前目录下创建/etc/mtab文件的硬链接文件mt ln /etc/mtab mt
-
在当前目录下创建/etc/mtab文件的符号链接文件mts ln -s /etc/mtab mts
-
建立空文件a,创建a的硬链接文件b touch a ln a b
-
创建a的符号链接文件c,删除a,观察文件b和c ln -s a c ls -l rm a ls -l
1.8 改变文件目录存取权限命令
1. Linux系统4中不同用户类型
- 文件主:
owner
- 同组用户:
group
- 可以访问系统的用户:
others
- 超级用户:
root
,具有管理系统的特权
2. 存取权限规定3种访问文件或目录的方式
- 读:
r
- 写:
w
- 可执行或查找:
x
3. chmod命令:改变或设置文件或目录的存取权限
-
-
以符号模式改变权限
-
chmod key 文件名
-
key由三部分组成:[who] [操作符号] [mode]
-
操作对象who:下面字母中任意一个或任意组合:
u(用户主) g(同组用户) o(其他用户) a(全部用户)
-
操作符号:
+ - =
-
操作方式mode:下面字母任意组合
r w x
-
-
以绝对方式改变权限
- chmod mode 文件名
- mode:3位八进制数字
- 第一位:文件主权限
- 第二位:组用户权限
- 第三位:其他用户权限
-
-
英文字母表示法
- 每一种用户的权限就直接用
r、w、x
来表示对文件可读、可写、可执行 - 再用
+,- 或 =
将各类型用户代表符号u、g、o
和rwx
3个字母连接起来即可
- 每一种用户的权限就直接用
-
用户本人对file1可以进行读写执行操作 chmod u+rwx file1
-
删除用户对file1可执行权限 chmod u-x file1
-
同组用户对file1增加权限为能读写,其他用户只能读 chmod g+rw o+r file1
-
创建文件t1,以符号模式修改t1的权限:文件主去掉写权限,同组用户和其它用户增加增加写权限 touch t1 chmod u-w go+w t1
-
以符号模式修改t1的权限:所有用户增加执行权限 chmod a+x t1
-
以符号模式修改t1权限:所有者者只为只有读写权限,同组和其他用户设置为只读权限 chmod u=rw,go=r t1
-
数字表示法
-
用三位数字XXX,最大值为777来表示
-
第一个数:用户存取权限
u
-
第二个数:同组用户使用权限
g
-
第三个数:其他用户存取权限
o
-
可读:
r => 4
-
可写:
w => 2
-
可执行:
x => 1
-
假设用户对file1的权限是可读写可执行rwx,用数字表示法则是把4、2、1 加起来 = 7
-
这里rwx == 4+2+1 = 7
-
至于同组用户和其他用户的权限,就顺序指定第2位数字和第3位数字即可
若不指定任何权限的话,就补0!
-
-
eg.
-
指定用户本人对file1的权限是可读写可执行的 chmod 700 file1
-
指定用户本人对file1权限是可读写 chmod 600 file1
-
指定所有用户对file1权限是可读写可执行 chmod 777 file1
-
-
以绝对模式修改t1权限:所有者设置为读写执行权限,同组用户设为读写,其他用户只读 chmod 0764 t1
-
4. umask命令:设置权限掩码
-
功能:设置限制新建文件权限的掩码
-
umask mode
-
umask u=rwx,g=rx,o=rx
-
也用八进制数来设置mode,
0777
代表所有权限,因此执行umask 0022
之后,默认权限为0755
-
umask -S 以字符形式显示当前掩码
-
设置限制新建文件权限的掩码为所有者具有读写权限,同组用户和其他用户只具有读权限,显示设置后的掩码 umask -S u=rw,g=r,o=r umask -S 0133
1.9 用户组管理命令
1. groupadd命令:新增用户组
-
功能:新增用户组
-
groupadd [选项] 组名
-
groupadd -g GID 指定用户组的组编号为GID
-
注意:
- 相应的
/etc/group
文件中增加了一行用户组条目 - 组名:组口令;组标识号
- 相应的
-
增加一个students用户组 groupadd students
-
增加一个teachers用户组,并设置组编号为2000 groupadd -g 2000 teachers
2.groupmod命令 :修改用户组
-
功能:修改用户组
-
groupmod [选项] 组名
-
groupmod -g GID 修改用户组编号为GID groupmod -n 新组名 修改组名
-
将teachers用户组的编号改为3000 groupmod -g 3000 teachers
-
将用户组teachers改名为staff groupmod -n staff teachers
3. groupdel命令:删除用户组
-
功能:删除用户组
-
groupdel 组名
-
删除用户组staff groupdel staff
1.10 用户管理命令
1. useradd命令:创建一个新用户
-
功能:创建一个新用户
-
useradd [选项] 用户名
-
useradd -d 指定用户登入时的主目录,若不指定,则系统默认/home/<用户名> useradd -g 指定用户所属的群组。值可以是组名,也可以是GID。用户组必须是已经存在的,默认100,即users useradd -u 指定用户编号,该值在系统中必须时唯一的。0~499默认是保留给系统用户账号使用的。所以该值必须大于499
-
注意:
/etc/passwd
文件中会增加一行用户条目- 注册名:口令:用户标识号:组标识号:用户个人信息:用户主目录:命令解释程序
-
增加一个名为john的用户 useradd john
-
增加一个名为wang的用户,并指定用户所属组为students,用户编号为2000 useradd -g students -u 2000 wang
2. passwd命令
-
功能:修改用户密码
-
passwd [用户名]
-
注意:
- 一旦进入系统后,可以直接用passwd命令来修改密码。这时系统会询问当前的密码,然后才是新密码
- 用户密码将被加密保存在
/etc/shadow
文件中
-
修改john用户的密码 passwd john
-
以john用户身份登录系统并修改密码 logout passwd
3. usermod命令:修改用户信息
-
功能:修改用户信息
-
usermod [选项 参数] 用户名
-
usermod -d 修改用户登入时的主目录 usermod -g 修改用户所属的群组。值可以是组名,也可以是GID usermod -u 修改用户编号。该值在系统中必须是唯一的。0~499是系统默认保留给用户账户使用的,故该值必须大于499
-
修改john用户的编号1500 usermod -u 1500 john
-
修改john用户的群组为students usermod -g students john
4. userdel命令:删除用户
-
功能:删除用户
-
userdel [选项] 用户名
-
userdel -r 删除用户,同时删除其主目录
-
删除john用户 userdel john
1.11 改变用户组和文件组命令
1. chgrp命令:改变所属用户组
-
功能:改变指定文件的所属用户组
-
chgrp [选项] 组名 文件名
-
chgrp -R 递归的改变指定目录及其下面所有的子目录和文件的所属用户组
-
建立子目录test,并在test下建立文件a,b,c,然后递归改变test及其所有文件的所属用户组为students mkdir test touch test/a test/b test/c chgrp -R students test
2. chown命令:改变所有者
-
功能:改变某个文件或目录的所有者和所属的组
-
chown [选项] 用户[:组] 文件或目录
-
chown -R 递归的改变指定目录及其所有子目录、文件的文件主
-
建立子目录test1,并在test1下建立文件a,b,c,然后递归的改变test1及其所有文件的所属用户为wang,所属组为students mkdir test1 touch test1/a test1/b test1/c chown -R wang:students test1
1.12 联机帮助命令
1. man命令
-
功能:格式化并显示某一命令的联机帮助手册页
-
man 命令名
-
显示cp命令帮助手册 man cp
2. help命令
-
功能:用来查看所有shell内置命令的帮助信息
-
help 命令
-
说明:有些命令构造在shell内部,从而在shell环境内部与运行。这种命令成为shell内置命令(也称内部命令)
-
help cd
1.13 有关进程管理命令
1. ps命令
-
功能:查看进程状态(最常用),可提供关于进程的许多信息
-
ps [选项]
-
ps -a 显示系统中与终端tty相关的所有进程的信息;当与选项x一起使用时,显示所有进程信息 ,即 ps -ax ps -u 显示面向用户的格式(包括用户名、CPU及内存使用情况等信息) ps -x 显示所有非控制终端上的进程信息;当与选项a一起使用时,显示所有进程信息 ,即 ps -ax
-
以面向用户的格式显示当前终端所有进程的信息 ps aux
2. kill命令
-
功能:向进程发送指定信号来结束相应进程的运行
-
kill [-s 信号] 进程号
-
常用选项:
-s
指定需要发送的信号,既可以是信号名(如kill),也可以是对应信号的号码(如9)
-
后台执行30分钟后关机的命令,然后杀死该命令的进程 shutdown -h +30 & ps 查看进程状态 kill -s 9 进程号
3. sleep命令
-
暂停一段时间
-
sleep 时间值
-
说明:
- “时间值”参数以秒为单位,即让进程暂停有时间值所指定的秒数
-
暂停5秒 sleep 5
1.14 其他命令
1. gzip命令:压缩与解压缩
-
功能:压缩和解压缩文件
-
gzip [选项] [name…]
-
gzip -d 解压缩 gzip -l 显示每个压缩文件的信息 gzip -r 递归地查看指定目录并压缩其中的所有文件或是解压缩 gzip -v 对每个压缩文件和解压缩文件,显示其文件名和压缩比
-
建立test2子目录,将/etc/下以g开头的文件复制到test2目录下,然后将test2目录下的所有文件进行压缩 mkdir test2 cp /etc/g* test2 gzip test2/*
-
显示test2目录下每个文件的压缩信息 gzip -v test2/*
-
将test2子目录下压缩文件解压缩 gzip -d test2/*
-
以递归方式将test2子目录下的文件进行压缩,并显示压缩比 gzip -rv test2
2. df命令
-
功能:检查文件系统的磁盘空间占用情况。以获取硬盘被占用了多少空间,目前还剩下多少空间等信息
-
df [选项]
-
df -a 显示所有的文件系统的使用情况 df -h 以容易理解的方式显示文件系统情况` ```
-
以容易理解的方式显示所有文件的使用情况 df -ah
3. du命令
-
功能:查询文件或目录的磁盘使用空间
-
du [选项] [目录]
-
du -a 显示全部目录及其次目录下的每个档案所占磁盘空间 du -b 大小用bytes来表示(默认值为 k bytes) du -c 最后再加上总计 du -h 以容易理解的方式显示
-
以容易理解的方式显示/boot所有文件或目录的磁盘使用信息,并总计 du -ach /boot
4. fdisk命令
-
功能:查看磁盘分区情况
-
fdisk [选项] [磁盘设备]
-
fdisk -l 显示详细信息
-
详细显示硬盘信息 fdisk -l /dev/hda