命令是学习Linux必须掌握的一部分。Linux下命令大概600多个,常用命令80个左右。
待补充命令:软件安装相关、用户管理、权限管理
一、Linux下的shell简介
1、shell介绍:a
shell分类:
base - bourne again shell
csh - C shella
ksh - Korn shell
sh - bourne shell
tcsh - Tenex C shell
内置命令和一般命令
登录到系统的用户类型判断 "#"和“*”分别表示系统用户和普通用户
2、shell命令语法分析
(1) 命令格式
格式:command [option] [arguments]
命令
选项
参数
一个命令行多个命令 分号隔开;
ls -al;cp 1.txt 2.txt
多行中输入一个命令, 用反斜杠 \ 将一个命令持续到 下一行 ;
cp -i \
1.txt \
2.txt
(2)shell 通配符
* :匹配任意一个或多个字符
ls *.txt
?:匹配任意单个字符
ls ab?.txt
[] :匹配任何包括在方括号内的单字符
ls /dev/sda[123456]
ls /dev/sda[1-6]
组合使用:
ls [xyz]*.txt
(3)shell重定向
标准输入 < 或 <<
<< ,告诉shell当前命令的标准输入为来自命令行中一对分割号之间的内容。
例:wc < /etc/inittab
标准输出 > 或 >>
>> 不覆盖已存在文件,追加内容。
例:ls -ef > ps.txt
ls -al /etc/* >>/root/install.log
标准错误输出 > 或 >>
例:tar zxvf text.tar.gz 2>error.txt
(4)shell的管道
多个命令链接起来 |
一个命令的输入作为下个命令的输出
例:la -al /etc/* | more
ps -ef|grep httpd | wc -l #查看系统中正在运行的 httpd进程,并计算httpd的进程数
(5)shell中的引用
反斜杠 \
放到特殊字符前面,shell将忽略特殊字符的含义,当作普通字符对待;
单引号 ''
字符串放到单引号之间,所有字符的特殊含义将被忽略;
双引号 ""
包含在双引号中的大部分特殊字符当作普通字符,仍有部分特殊字符保留自己的特殊含义。比如 "$" 、 “ \” 、"`" 。
(6)shell的自动补齐命令
Tab
二、系统管理与维护命令:
2.1 ls 显示指定目录下的内容
参数很多,重点列举几个
-a 显示所有文件或子目录,包括隐藏类型
-l 除文件名,同时显示文件或子目录权限、使用者和大小等详细信息
-d 显示目录列表,不显示文件
2.2 pwd 显示当前工作目录
2.3 cd 改变当前目录
cd [目录] 切换到指定目录
cd 或 cd ~ 返回当前用户的工作目录
cd ~[用户名] 返回指定用户的工作目录
cd.. 或 cd../ 返回上级工作目录
cd / 返回根目录
2.4 date 显示或修改系统时间和日期
-s --set 设置系统时间
-d --date 显示描述的日期
时间显示格式较多,不一一列绝。
2.5 password 设置用户口令
普通用户修改自己口令: passwd 然后根据提示输入两次密码
超级用户修改某个用户口令: passwd [用户名] 然后根据提示输入两次密码
2.6 su 改变身份的命令
su [选项] 用户名
示例:
(1)普通用户要成为超级用户
su - #成为超级用户
(2)普通用户A下修改超级用户root的口令
su -c passwd #改变身份运行一个指令后就结束。
2.7 clear 清除屏幕
2.8 man 显示指定命令的帮助信息
man ls
2.9who 显示当前登录到系统的用户
who [选项] file
参数较多
示例:
who -r #系统处于什么运行级别
who -buT #显示系统最近启动日期,以及当前每个用户的登录详情、终端状态。
2.10 w 显示登录到系统的用户信息
w [选项] 用户
2.11 uname 显示操作系统相关信息
uname [选项]
-a 显示操作系统全部信息
-m显示系统cpu类型,32位还是64位系统
-n 主机名
-s 操作系统类型
-r 操作系统内核版本
2.12 uptime 输出系统任务队列信息
输出当前系统时间、系统开机到现在的运行时间、目前有多少用户在线、系统在1min,5min,15min前到现在的平均负载等
2.13 last 列出目前与过去登入系统的用户相关信息
last [选项] [-n 显示列数]
参数有4个
2.14 dmesg 显示开机信息
dmesg [选项]
2.15 free 显示系统内存状态
free [选项] [-s (间隔秒数)]
2.16 ps 显示系统进程瞬间的运动动态
ps [选项]
-a 所有用户进程
-x 所有系统程序,包括没有终端的
-u 显示使用者的名称和起始时间
-f 详细显示程序执行的路径群
-c 只显示进程名称
-e 除内核进程外所有进程信息写到标准输出
2.17 top 实时监控系统处理器状态
其它:
linux下帐户和密码保存文件(只能ROOT才可以改啊):
帐户/etc/passwd
密码/etc/shadow
三、文件管理与编辑
1、创建目录
mkdir [选项] 目录
-m 设置存取权限
-p 连续创建嵌套目录
示例:mkdir dir1/dir11/
2、逐屏显示内容的命令
more [选项] 文件名
-d
-s
-p
-c
按"Enter"键显示下一行;按空格键,显示下一屏
示例:more -c -10 filename
3、cat
将文件内容打印到标准输出,也可以连接合并文件内容
-A 将文件中的Tab输出显示为“^I”,同时在每行的末尾显示一个$符号
-b 将文件中的所有非空行按顺序编号,从1开始
示例:
cat f1.txt
cat f1.txt f2.txt > f3.txt
4、diff
比较文件的差异
-c 显示全部内容,并标出不同之处
-b
-r
-s
示例:diff c f1.txt f2.txt
5、grep [选项] 查找的字符串 文件名
过滤文本的命令
-i 搜索时忽略大小写
-n 在显示的搜索结果上显示行号
-An 除了列出符号条件的行,还列出每个符合条件行的后n行
-n 除了列出符号条件的行,还列出每个符合条件行的前n行
示例:grep -ni findstr f1.txt
6、rm [选项] 文件或目录名
删除某个目录及其下的所有文件及子目录
-r 递归删除全部目录、子目录及文件,无该参数不能删除目录
-i 交互式删除
-f 忽略不存在的问题,也不给出提示
示例:rm -i dir1
rm -rf dir2 #直接删除目录及下面的文件和子目录
7、touch
改变指定文件的访问时间和修改时间,若指定文件不存在则创建文件,若没有指定时间则使用当前时间
-a 改变文件的访问时间为当前时间
-m 改变文件的修改时间为当前时间
-c 如果文件不存在,不创建也不提示
-d 或 -t
-r <参考文件或目录>
8、ln 在文件或目录之间创建链接
linux下的链接有两种,一种是硬链接(Hard Link),一种是符号链接(Symbolic Link),默认情况ln产生的是硬链接。
ln [选项] 源文件 目标链接名
-f 如果在目标位置存在与链接名相同的文件,这个文件将被删除
-s 创建软链接(Symbolic Link)
-b 对将在链接时会被覆盖或者删除的文件进行备份
9、file 显示文件类型
file [选项] 文件名
长度为0的文件,被识别为空文件;对于符号链接文件缺省显示符号链接引用的真实文件路径
10、cp 拷贝文件或目录的命令
-a 拷贝时保留所有信息
-r 递归复制该目录下所有子目录和文件
-f 强行复制
-d 拷贝时保留链接
-p 保留文件的修改时间和存取权限
-i 如果已存在目标文件的同名文件,提示用户是否覆盖
11、find
指定的路径下查找指定的文件。
参数比较复杂
12、split 分割文档的命令
split [选项] [input_file] [output_file]
-b size 指定分割出来的文件大小,size可加入单位,b代表512bytes ,k代表1KB,m代表1MB
-n 指定分割每个文件的长度,默认1000行
-d 生成的文件序列以数字形式命名
-a 指定生成的文件序列的长度,默认为2
13、mv 文件、目录改名或变更存储位置
mv [选项] [源文件或目录] [目标文件或目录]
-i 交互式操作
-f 禁止交互式操作
四、压缩与解压缩
1、压缩/解压缩文件或者目录的命令 zip /unzip
将一般文件或目录进行压缩或解压缩,后缀.zip 。
zip [选项] 压缩文件名 需要压缩的文档列表 #递归压缩
-r 递归压缩
- d 压缩文件内删除指定文件
- i 只压缩文件列表中文件
-x 排除指定文件
-u 更新文件到压缩文件中
- m 压缩同时删除原始文件
-T 尝试修复损坏的压缩文件
-T 检查每个文件是否正确
- 压缩级别 #1-9的数字,9为最高级别
...
unzip [选项] 压缩文件名
-d 目录名 解压到指定目录
-t 测试有无损坏
-x 排除文件
-v 查看压缩信息
-n 不覆盖已存在文件
-o 直接覆盖已存在文件
...
2、压缩/解压缩文件的命令 gzip/gunzip
将一般文件进行压缩或解压缩,后缀.gz 。
即使指定压缩目录,只能压缩目录内的文件。
3、压缩/解压缩文件的命令bzip2/ bunzip2
4、将文件或者目录打包归档的命令tar
归档工具,并不压缩。
tar [主选项+辅助选项] 文件或目录
-z 压缩解压缩
-c #创建新文件
-x 还原出文件
-v 归档过程中显示各个文件名称
-f 归档文件名 ,后面不能再加参数
5、转换或拷贝文件的命令dd
6、重定向方式打包备份、还原恢复文件的命令 cpio
压缩解压缩命令总结:
1、*.tar 用 tar –xvf 解压 2、*.gz 用 gzip -d或者gunzip 解压 3、*.tar.gz和*.tgz 用 tar –xzf 解压 4、*.bz2 用 bzip2 -d或者用bunzip2 解压 5、*.tar.bz2用tar –xjf 解压 6、*.Z 用 uncompress 解压 7、*.tar.Z 用tar –xZf 解压 8、*.rar 用 unrar e解压 9、*.zip 用 unzip 解压
五、磁盘管理与维护
1、检查磁盘空间占用情况
df [选项]
2、显示文件或目录所占用的磁盘空间
du [选项] 文件或目录
3、检查文件系统或者尝试修复错误
fsck
4、强制把内存中的数据写回硬盘的命令
sync
5、退出抽取式设备的命令
eject
6、挂载卸载指定的文件系统的命令
mount/unmount
六、网络设置和维护
1、配置网络或显示当前网络接口状态的命令
ipconfig
2、将文件或目录拷贝到另一个linux系统
scp
3、显示本机网络链接、运行端口和路由表等信息
netstat
4、显示网络数据包传输到指定主机的路径信息的命令
traceroute
5、与远程的主机通讯或获取远程主机对应端口的信息
telnet
6、网络上下载软件的名利
wget [要下载软件的网址]
七、文本编辑工具vi
vi是linux下标准的文本编辑程序,它有两种工作模式,即命令模式和文本输入模式。
通过vi命令可以转换到文本输入模式,在编辑模式中按"Esc"键则切换到命令模式。
vi详细介绍:linux下vi命令大全
1、命令行下用vi打开文件的命令选项
vi filename 打开或新建一个文件,光标置于首行行首
vi -r filename 恢复上次打开时崩溃的文件
vi -R filename 只读方式打开文件
vi + filename 打开文件并把光标置于最后一行首
vi +n filename 打开文件并把光标置于第n行首
vi +/pattern filename 打开文件,并将光标置于第一个与pattern匹配的位置
vi -c command filename 对文件进行编辑前,先执行指定的命令
2、vi命令模式下的命令选项
移动光标类(未列全)
nG 移动到第n行行首
n+ 下移n行
n- 上移n行
n$ 再向后移动n行行首(同n-区别不理解)
H 移至屏幕顶部
M 移至屏幕中部
L 移至屏幕底部
0 当前行首
$ 当前行尾
:$ 文件最后一行行首
屏幕翻滚类命令
Ctri + u 相对于当前屏幕,向文件首翻半屏
Ctri +d 相对于当前屏幕,向文件尾翻半屏
Ctri + b 相对于当前屏幕,向文件首翻一屏
Ctri + f 相对于当前屏幕,向文件尾翻一屏
nz + Enter 将文件的第n行滚至屏幕顶部,如果不指定n值,将当前行滚至屏幕顶部
插入删除文本类
ESC 返回命令行模式
i 在光标前输入文字
a 在光标后输入文字
o 在当前行之下新开一行
O 在当前行之上新开一行
r 替换光标所在字符,输入r命令后,键盘输入新字符即可
x 删除光标所在字符
dd 删除光标所在行
yy 复制光标所在行
p 剪切板内容复制到光标后
P 剪切板内容复制到光标前
yw 将光标所在单词复制到剪贴板
搜索替换类
/abd 向前查找abc
?abc 向后查找abc
n 在同一方向重复上次的搜索命令
N 在反方向重复上次的搜索命令
:s/a1/a2/g 当前光标所在行a1替换成a2
:n1,n2s/a1/a2/g 文件第n1至n2行的a1替换成a2
:g/a1/a2/g 文件中所有a1替换成a2
:set nu 给文件每行加上行号
保存退出类
:wq 保存退出
:w 保存
:q 退出
x! 保存退出
--------------------------------------------------------------
其它系统命令及快捷键:
1、控制台切换
Ctrl+Alt+(F1-F6) 图形界面切换到命令行
startx 或者 Ctrl+Alt+ F7 进入 图形界面
2、硬件资源管理
lspci
more /proc/cupinfo
more /proc/meminfo
fdisk -l
3、linux外在设备的使用
挂载:
mount -t msdos /dev/fd0 /mnt/floppy
mount -t vfat /dev/sda1 /mnt/usb
mount -t iso9660 /dev/hda /mnt/cdrom 或者 mount -t /dev/cdrom /mnt/cdrom
卸载:
umount /mnt/floppy
umount /mnt/cdrom