文件命名规则:
1.除/以外,所有的字符都合法
2.有些字符最好不用,如空格符、制表符、退格符和字符@#$&()-等
3.避免使用.作为普通文件名的第一个字符(避免被隐藏)
4.大小写敏感,严格区分大小写
命令格式:命令 -选项 参数
说明:1.当有多个选项时,可以写在一起
2…和…分别代表当前目录和当前目录的父目录(上一级目录)
按键 | 功能 |
---|---|
Ctrl+c | 终止指令 |
Ctrl+d | 退出shell |
Ctrl+a | 光标移至行首 |
Ctrl+e | 光标移至行末 |
转义符\可保留本意
用户管理 | 命令 |
---|---|
改变用户 | su - 用户名 |
添加用户 | useradd 用户名 |
设置用户密码 | passwd 用户名 |
由命令所在的路径可判断命令的权限:
权限 | 路径 |
---|---|
root | /sbin ,/usr/sbin |
all user | /bin,/usr/bin |
ls
功能:显示目录文件
路径:/bin/ls
语法:ls 选项[-ald] [文件或目录]
①-a 显示所有文件,包括隐藏文件(all)
②-l 详细信息显示(long)
例子:drwxr-xr-x 2 root root 4096 12-01 20:52 bin
第一个字母表示文件类型
常见文件类型:d 目录directory
- 二进制文件
l 软链接文件link
后面代表权限:
(r-read读、w-write写、x-execute执行)
rwx r-x r-x
所有者u 所有组g 其他人o
user、owner group other
2-硬链接数
root root
表示管理者是root,管理组是root
4096表示文件大小(不准确)
linux一般用数据块大小来做储存文件大小的单位,即数据块是最小储存单位
12-01 20:52表示创建时间或最后修改时间
bin表示文件名
③-d 查看目录属性(directory)
(一般配合l,及-ld连用查看某个目录的属性)
cd
功能:切换目录
路径:shell内置命令
权限:所有用户
语法:cd [目录]
例子:cd / 切换到根目录
cd …回到上一级目录
pwd
功能:显示当前所在的工作目录
路径:/bin/pwd
语法:pwd
touch
功能:创建空文件
路径:/bin/touch
语法:touch [文件名]
例子:touch newfile
mkdir
功能:创建新目录
路径:/bin/mkdir
语法:mkdir [目录名]
例子:mkdir newdir
cp
功能:复制文件或目录
路径:/bin/cp
语法:cp -R [源文件或目录][目的目录]
-R 复制目录
-p 拷贝之后不改变时间值
例子:cp file1 file2 dir1(将文件file1、file2复制到目录dir1)
cp -R dir1 dir2(将目录dir1下的所有文件复制到目录dir2下)
mv
功能:移动文件、更名
路径:/bin/mv
语法:mv [源文件或目录][目的目录]
例子:mv file1 file3(将当前目录下文件file1更名为file3)
mv file2 dir2(将文件file2移动到目录dir2下)
(改名和移动可同时操作,如mv /dir1/file1 /dir2/file2)
rm
功能:删除文件
路径:/bin/rm
语法:rm -r [文件或目录]
-r 删除目录
-f 强制删除(避开询问)
例子:rm file1(删除文件file1)
rm -r dir1(删除目录dir1)
cat
功能:显示文件内容(显示大文件的话不完整)
路径:/bin/cat
语法:cat [文件名]
例子:cat /etc/issue
more
功能:分页显示文件内容(可以完整显示文件)
路径:/bin/more
语法:more [文件名]
(空格)或f 显示下一页
(Enter) 显示下一行
q或Q 退出
例子:more /etc/services
head
功能:查看文件前几行
路径:/bin/head
语法:head -num [文件名]
-num 显示文件的前num行
例子:head -20 etc/services
tail
功能:查看文件后几行
路径;/bin/tail
语法:tail -num [文件名]
-num 显示文件后num行
-f 动态显示文件内容
例子:tail -30 /etc/services
ln
功能:产生链接文件
路径:/bin/ln
语法:ln -s [源文件][目标文件]
-s 创建软链接
例子:ln -s /etc/issue/issue.soft(创建文件/etc/issue的软链接/issue.soft)
ln /etc/issue/issue.hard(创建文件/etc/issue的硬链接/issue.hard)
软链接(类似于快捷方式) lrwxrwxrwx --> (指向源文件)
10(文件很小) 时间值
硬链接(cp -p+同步更新) 与源文件有相同的inode
硬链接不能跨文件系统(不能跨系统文件分区)
若源文件消失,软链接失效,硬链接不变
chmod
功能:改变文件或目录权限
路径:/bin/chmod
语法:chmod u + r
g - w
o = x
u-所有者 g-所属组 o-其他人
rwx 可写可读可执行
r-4 w-2 x-1(重点掌握)
例如:rwxr-xr-- 754
752 rwxr-x-w-
例子:chmod g+w file1(赋予文件file1所属组写权限)
chmod 777 dir1(设定目录dir1为所有用户具有全部权限)
//对于权限的理解:
对文件:
r(可以查看文件内容)cat、more、head、tail
w(可以修改文件内容)echo、vi
x(可以执行文件)命令、脚本
对目录:
r(可以列出目录中的内容)ls
w(可以在目录中创建、删除文件)touch、mkdir、rm
x(可以进入目录)cd
chown
功能:改变文件或目录的所有者
路径:/bin/chown
语法:chown [用户][文件或目录]
例子:chown nobody file1(改变文件file1的所有者为nobody)
chgrp
功能:改变文件或目录的所属组
路径:/bin/chgrp
语法:chgrp [用户组][文件或目录]
例子:chgrp adm file1(改变文件file1的所属组为adm)
umask
功能:显示、设置文件的缺省权限
路径:/bin/umask
语法:umask -S
-S 以rwx形式显示新建文件或目录缺省权限
例子:umask
umask -S(直观)
假如umask得到0022
0-特殊权限位
022–用户权限位,权限掩码值
777 - 022 = 755
755表示权限
改变默认权限:umask 权限掩码值
Linux权限规则:
缺省创建的文件不能授予可执行x权限
which
功能:显示系统命令所在目录
路径:/usr/bin/which
语法:which [命令名称]
例子:which ls
find
功能:查找文件或目录
路径:/usr/bin/find
语法:find [搜索路径] [搜寻关键字]
例子:find /etc -name init(在目录/etc中查找文件init)
//注:* 匹配任意字符 若查找init开头的文件则init*
? 匹配单个字符 若查找带有init的七个字母的文件则init???
find / -size +204800(在根目录下查找大于100MB的文件,以数据块为
单位512字节)
//注:大于+,小于-
find /home -user samlee(在根目录下查找所有者为sanlee的文件)
find /etc -mmin -120(120分钟以内被修改的文件)
//时间
1.天 ctime、atime、mtime
2.分钟 cmin、amin、mmin
c-change改变,表示文件属性被修改过,所有者、所属组、权限
a-access访问
m-modify修改,表示文件内容被修改过
-之内,+超过
find /etc -size +163840 -a -size -204800(在/etc下查找大于80MB小
于100MB的文件)
//连接符 -a and 逻辑与 -o or 逻辑或
find /etc -name inittab -exec ls -l {} ;(在/etc下查找inittab文件并显示
其详细信息)
find /etc -user samlee -exec rm -rf {} ;(在/etc下查找用户名为samlee
的文件并删除)
//连接符 find … -exec 命令 {} ;(若用-ok代替-exec则会询问确认)
find /etc -type l(在/etc下查找软链接文件)
//f二进制文件、l软链接文件、d目录
find . -inum 16(在当前目录寻找i节点为16的文件)
locate
功能:寻找文件或目录(在updatedb数据库里寻找,速度快)
路径:/usr/bin/locate
语法:locate [搜索关键字]
例子:locate file(列出所有跟file相关的文件)
updatedb
功能:建立整个系统目录文件的数据库
路径:/usr/bin/updatedb
例子:updatedb
grep
功能:在文件中搜寻字符匹配的行并输出
路径:/usr/bin/grep
语法:grep [指定字母][源文件]
例子;grep ftp /etc/services
man
功能:获取帮助信息(遵循more的指令来换行换页和退出)
路径:/usr/bin/man
语法:man [命令或配置文件]
例子:man ls(查看ls命令的帮助信息)
man services(查看配置文件services的帮助信息)
若命令与配置文件同名则优先查看命令的帮助,通过man 5 […]来查看,即帮助有很多种,第五种为配置文件帮助
info
功能:获取帮助信息(与man功能完全相同,只是呈现方式不同)
路径:/usr/bin/info
语法:info [任何关键字]
例子:info ls(查看ls指令的帮助信息)
whatis和apropos
功能:获得索引的简短说明信息
路径:/usr/bin/whatis /usr/bin/apropos
语法:whatis [任何关键字]
apropos [任何关键字]
例子:whatis ls
spropos fstab(相当于man -k)
//注:与locate类似,需要用makewhatis指令建立whatis和apropos搜索使用的数据库(例子:makewhatis)
help
功能:查看shell内置命令的帮助
gzip
功能:压缩文件
路径:/bin/gzip
语法:gzip 选项[文件]
压缩后文件格式:.gz
1.只能压缩文件,不能压缩目录
2.不保留原文件
gunzip
功能:解压缩.gz的压缩文件(同gzip -d)
路径:/bin/gunzip
语法:gunzip 选项[压缩文件]
例子:gunzip file1.gz
tar
功能:打包目录
路径:/bin/tar
压缩语法:tar 选项 [目录]
-c 产生tar打包文件
-v 显示详细信息
-f 指定压缩后的文件名
-z 打包同时压缩
压缩后文件格式:.tar.gz
例子:tar -zcvf dir.tar.gz dir1(将目录dir1压缩成一个打包并压缩的文件)
注:老系统不支持打包压缩一起进行
解压缩语法:tar 选项 [压缩文件]
-x 解包.tar文件
-v 显示详细信息
-f 指定解压文件
-z 解压缩
例子:tar -zxvf dir1.tar.gz(将dir1解压到当前目录下)
/*
file指令
功能:判断文件类型
语法:file [文件名]
*/
zip
(默认的win和linux通用格式)
功能:压缩文件或目录(保留原文件)
路径:/usr/bin/zip
语法:zip 选项[-r] [压缩后文件名称] [文件或目录]
-r 压缩目录
压缩后文件格式:.zip
例子:zip services.zip /etc/services(压缩文件)
zip -r test.zip /test(压缩目录)
unzip
功能:解压.zip的压缩文件
路径:/usr/bin/unzip
语法:unzip [压缩文件]
例子:unzip test.zip(解压文件)
bzip2
功能:压缩文件
路径:/usr/bin/bzip2
语法:bzip2 选项[-k] [文件]
-k 产生压缩文件后保留文件
压缩后文件格式:.bz2
例子:bzip2 -k file1
bunzip2
功能:解压缩
路径:/usr/bin/bunzip2
语法:bunzip2 选项[-k] [压缩文件]
-k 解压缩后保留文件
例子:bunzip2 -k file1.bz2
write
功能:向另一个用户发信息,以ctrl+D作为结束(实时)
路径:/usr/bin/write
语法:write <用户>
例子:write samlee
wall
功能:向所有用户广播信息
路径:/usr/bin/wall
语法:wall [message] [文件名]
例子:wall Happy new year!
ping
功能:测试网络连通性
路径:/usr/sbin/ping
语法:ping 选项 IP地址
-c [num] pingnum次(类似windows的ping)
-s [num] 用num大小的数据包来测试(num不能大于65507)
例子:ping 192.168.1.1
*用ifconfig可查看本机IP地址*
ifconfig
功能:查看网络设置信息
路径:/usr/sbin/ifconfig
语法:ifconfig 选项[-a] [网卡设备标识]
-a 显示所有网卡信息
例子:ifconfig -a
ifconfig eth0(查看关键网卡信息)
ifconfig eth0 192.168.9.6(临时改变IP地址为192.168.9.6,若不写入配置文件,则仅在此会话中生效)
shutdown
功能:关机
路径:/usr/sbin/shutdown
语法:shutdown
例子:shutdown -h now(马上关机)
reboot
功能:重启系统
路径:/usr/sbin/reboot
语法:reboot
例子:reboot
1.命令补全
输入文件名起始的若干个字母后,按补齐文件名
2.清空屏幕
clear指令,或ctrl+L
3.快速删除
ctrl+U可以快速删除当前命令行光标前的所有内容
4.命令历史
history指令:列出敲过的所有指令
上下箭头键可以查找以前执行过的命令
1.命令别名
定义别名例子:alias copy=cp
alisa xrm=“rm -f”(带选项时要加双引号)
查看别名信息:alias
删除别名:unalias copy
2.输入/输出重定向
shell对于每一个进程预先定义三个文件描述字(0,1,2)
0(STDIN) 标准输入
1(STDOUT) 标准输出
2(STDERR) 标准错误输出
>或>> 输出重定向
例子:ls -l /tmp > /tmp.msg(tmp的内容输出到文件中,并替代原内容)
date >> /tmp.msg(data输出到文件内,并追加在原内容后面)
< 输入重定向
例子:wall < /etc/motd(把文件作为输入端)
2> 错误输出重定向
例子:cp -R /usr /backup/usr.bak 2> /bak.error(错误信息输出到文件/bak.error内)
3.管道
管道:将一个命令的输出传送给另一个命令,作为另一个命令的输入。
使用方法:命令1|命令2|命令3…|命令n
例子:ls -l /etc | more
ls -l /etc | grep init
4.命令连接符
; 用;间隔的各命令按顺序依次执行
&& 前后命令的执行存在逻辑与关系,前面的命令执行成功后,它后面的命令才被执行。
|| 前后命令的执行存在逻辑或关系,若前面的命令执行成功,则后面不执行;若前面的命令执行失败,则后面才会执行。
5.命令替换符
命令替换:将一个命令的输出作为另一个命令的参数
格式:命令1 `命令2`(注意不是单引号,而是键盘按键1旁边的替换符)
例子:ls -l `which touch`