文件命名规则
Windows: / \ | ? * < > CON 以点开头 默认都不能作为文件名使用
Linux:除了/之外,所有的字符都合法
有些字符最好不要用:空格、制表符、退格符、@#$&()- 等 (空格是命令间的分隔符)
避免使用点(.) 作为普通文件名的第一个字符 (点开头的是Linux隐藏文件)
大小写敏感
一 linux命令的格式
1、命令 [选项] [参数]
ls list 显示目录下内容
① 命令名称:ls
命令英文原意:list
命令所在路径:/bin/ls
执行权限:所有用户
功能描述:显示目录文件
② ls 名直接回车,显示目录下内容
ls -l 长格式显示 (缩略选项用一个减号,完整选项用两个减号)
-rw------- 1 root root 1190 08-10 23:37 anaconda-ks.cfg
第一项: 权限位
第二项: 1 引用计数
第三项: root 所有者
第四项: root 属组
第五项: 大小
第六项 最后一次修改时间
第七项 文件名
ls -a 显示所有文件(包含隐藏文件)
ls -al
ls -h 文件大小显示为常见大小单位 B KB MB
ls -d 显示目录本身,而不是里面的子文件
ls -l 文件名
文件颜色及类型
1)默认色代表普通文件。 例:install.log
2)绿色代表可执行文件。 例:rc.news
3)红色代表tar包 文件。 例:vim-7.1.tar.bz2
4)蓝色代表目录文件。 例:aa
5)水红代表图象文件。 例:Sunset.jpg
6)青色代表链接文件。 例:rc4.d (此类文件相当于快捷方式)
7)黄色代表设备文件。 例:fd0
8)背景红色代表损坏的链接文件。例:rc4.d
常见文件类型
— 二进制文件
l 链接文件
d 目录文件
提示符:
[[email protected] src]#
[当前登录用户@主机名 当前所在目录]#
# 超级用户
$ 普通用户
当前所在目录: ~ 用户家目录
管理员 /root
普通用户 /home/用户名
二 目录操作命令
1) cd 切换所在目录
① 命令名称:cd
命令英文原意:change directory
命令所在路径:shell内置命令
执行权限:所有用户
②cd /usr/local/src
相对路径:参照当前所在目录,进行查找。一定要先确定当前所在目录。 root]#cd ../usr/local/src
绝对路径:cd /usr/local/src 从根目录开始指定,一级一级递归查找。在任何目录下,都能进入指定位置
建议:多使用绝对路径
cd ~ 进入当前用户的家目录 /root /home/aa/
cd
cd - 进入上次目录
cd .. 进入上一级目录
cd . 进入当前目录
2) pwd 显示当前所在目录
命令名称:pwd
命令英文原意:print working directory
命令所在路径:/bin/pwd
执行权限:所有用户
3) linux常见目录
/ 根目录
/bin 命令保存目录(普通用户就可以读取的命令)
/boot 启动目录,启动相关文件
/dev 设备文件保存目录
/etc 配置文件保存目录
/home 普通用户的家目录
/lib 系统库保存目录
/mnt 系统挂载目录
/media 挂载目录
/root 超级用户的家目录
/tmp 临时目录
/sbin 命令保存目录(超级用户才能使用的目录)
/proc 直接写入内存的
/sys
/usr 系统软件资源目录
/usr/bin/ 系统命令(普通用户)
/usr/sbin/ 系统命令(超级用户)
/var 系统相关文档内容
/var/log/ 系统日志位置
/var/spool/mail/ 系统默认邮箱位置
/var/lib/mysql/ 默认安装的mysql的库文件目录
4) 建立目录
mkdir 目录名
命令名称:mkdir
命令英文原意:make directories
命令所在路径:/bin/mkdir
执行权限:所有用户
mkdir -p 11/22/33/44 递归建立目录
5) 删除目录
rmdir 目录 只能删除空目录
命令名称:rmdir
命令英文原意:remove empty directories
命令所在路径:/bin/rmdir
执行权限:所有用户
rm 文件名 删除文件
rm -rf 目录 删除文件和目录
-r 递归,删除目录
-f 强制
6) tree 目录名 显示指定目录下所有内容的目录树
命令名称:tree
命令所在路径:/usr/bin/tree
执行权限:所有用户
一 文件操作命令
1)创建空文件或修改文件时间
touch 文件名
命令名称:touch
命令所在路径:/bin/touch
执行权限:所有用户
2)删除
rm -rf 文件名
-r 删除目录
-f 强制
命令名称:rm
命令英文原意:remove
命令所在路径:/bin/rm
执行权限:所有用户
3)cat 文件名 查看文件内容。从头到尾
命令名称:cat
命令所在路径:/bin/cat
执行权限:所有用户
-n 列出行号
4)more 文件名 分屏显示文件内容
命令名称:more
命令所在路径:/bin/more
执行权限:所有用户
空格向下翻页 b 向上翻页 q 退出
6) head 文件名 显示文件头
命令名称:head
命令所在路径:/usr/bin/head
执行权限:所有用户
head -n 行数 文件名 指定显示文件头几行
head -n 20 文件名
head -20 文件名
7) 链接文件
ln
命令名称:ln
命令英文原意:link
命令所在路径:/bin/ln
执行权限:所有用户
软链接相当于快捷方式
新建的链接,占用不同的硬盘位置
修改一个文件,两都改变
删除源文件,软连接打不开
ln -s 源文件 目标文件 文件名都必须写绝对路径
二 文件和目录都能操作的命令
1)rm 删除文件或目录
2)复制
命令名称:cp
命令英文原意:copy
命令所在路径:/bin/cp
执行权限:所有用户
cp 源文件 目标位置
-r 复制目录
-p 连带文件属性复制
-d 若源文件是链接文件,则复制链接属性
-a 相当于 -pdr
cp aa /tmp/ 原名复制
cp aa /tmp/bb 改名复制
3)剪切或改名
命令名称:mv
命令英文原意:move
命令所在路径:/bin/mv
执行权限:所有用户
mv 源文件 目标位置
mv /root/aa /tmp/
mv aa bb
三 权限管理
1 权限位
-rw-r--r-- 1 root root 0 08-11 01:45 aa
权限位是十位
第一位: 代表文件类型
- 普通文件
d 目录文件
l 链接文件
九位 属主权限u 属组权限g 其他人权限o
r 读 4
w 写 2
x 执行 1
2 修改权限
chmod
命令名称:chmod
命令英文原意:change the permissions mode of a file
命令所在路径:/bin/chmod
执行权限:所有用户
chmod u+x aa aa文件的属主加上执行权限
chmod u-x aa
chmod g+w,o+w aa
chmod u=rwx aa
chmod 755 aa
chmod 644 aa
实验:
root用户创建一个目录(默认rwxr-xr-x),在目录中新建一个文件,然后将新建的文件设为777,普通用户能否删除该文件?
实验需要相关知识:
useradd 用户名 #添加用户
passwd 用户名 #为用户设置密码
从新开一个终端,用新建的用户登录进行实验
实验2:
root用户创建的目录,将目录改为777,在目录中新增的文件权限为644(rw-r--r--),切换到普通用户,是否可以删除该文件?
因为rwx权限对于目录和文件,实际意义是不一样的
文件:
r cat more head tail 查看文件内容
w echo vi 修改文件内容
x sh (execute) 执行
目录:
r ls find tree 列出文件
w touch mkdir rm 创建删除文件
x cd 进入目录
对文件有写权限,只代表可以修改这个文件,要想删除文件,需要对文件所在目录有写权限
只要对目录有写权限,目录中的文件,就算是root创建的,普通用户一样能删除
所以,目录一般都同时有rx权限,如果一个目录只有r却没有x,你能用ls查看,却不能cd 进去!(用普通用户测试)
[[email protected] test]$ cd a
-bash: cd: a: 权限不够
[[email protected] test]$ ls a
123
对目录w权限,就意味着需要有rwx
对脚本执行,需要rx 并对该目录有rx权限
shell
3 权限意义:
1)权限对文件的含义
r:读取文件内容 cat more head tail
w:编辑、新增、修改文件内容 vi echo
但是不包含删除文件
x:可执行
/tmp/11/22/abc ---------
2)权限对目录的含义
r:可以查询目录下文件名 ls
w:具有修改目录结构的权限。如新建文件和目录,删除此目录下文件和目录,重命名此目录下文件和目录,剪切 touch rm mv cp
x:可以进入目录 cd
4 属主和属组命令
chown
命令名称:chown
命令英文原意:change file ownership
命令所在路径:/bin/chown
执行权限:所有用户
chown 用户名 文件名 改变文件属主
chown user1 aa user1必须存在
chown user1:user1 aa 改变属主同时改变属组
useradd 用户名 添加用户
passwd 用户名 设定用户密码
5 默认创建文件的权限
umask 显示0022
第一位特殊权限位
其他为三类用户的权限掩码值
777
-022
--------------
755
就是创建文件的默认权限
我们创建一个目录mkdir test 默认是755权限
但新建的文件 touch file 默认是644权限
Linux安全机制,不给新建文件x权限。
四 帮助命令
1 man 命令名 查看命令的帮助
命令名称:man
命令英文原意:manual
命令所在路径:/usr/bin/man
执行权限:所有用户
2 命令 --help 查看命令的常见选项
五 查找命令
1 whereis 命令名 查找命令的命令,同时看到帮助文档位置
命令名称:whereis
命令所在路径:/usr/bin/whereis
执行权限:所有用户
五 查找命令
1 whereis 命令名 查找命令的命令,同时看到帮助文档位置
命令名称:whereis
命令所在路径:/usr/bin/whereis
执行权限:所有用户
which alias
2 find 搜索命令
通配符
* 任意多个字符
? 1
[] 指范围值,外侧加引号
^ 反向匹配
, 分割多个情况
正则表达式
. 除换行外任意符号
* 任意个
? 0 1
^ 开头
命令名称:find
命令所在路径:/usr/bin/find
执行权限:所有用户
普通文件或命令都可以找到
需要指定搜索路径和条件
尽量不要在根目录/中查找,查找得慢,会占用太多服务器资源
如果需要在服务器中全盘查找,可以写一条计划任务在凌晨执行(计划任务后面讲)
范围越小越好
匹配条件,越精准越好
-name 根据文件名查找 *任意字符 ? 单个字符
例 find /etc -name init 这是精确查找 在/etc中查找 init文件
find /etc -name init* 查找以init开头的(*代表0个或多个任意字符)
find /etc -name init??? 用?号代表任意一个字符
find /root -name "*.log"
-iname 不区分大小写
-size 根据大小查找 单位是 block 数据块 一块是512字节
10M=1024k*10*2=20480 block
1M -> 1024k -> 2048块 (1块是0.5k 也就是512字节)
100M -> 102400k -> 204800块
例 find /etc -size -20480 查找小于10M的文件
find /etc -size +204800 查找大于100M的文件
注意+-号,如果没有,是精确这么大,通常都会带上+或-号,表示一个范围
-user 根据所有者查找
例 find /home -user jack 在/home中,查找所有jack用户的文件
注意,在系统中需要存在此用户,否则报错
按时间查找
按天 ctime atime mtime
按分钟 cmin amin mmin
c change 改变 表示属性被修改过:所有者、所属组、权限
a access 访问 被访问过(被查看过)
m modify 修改 表示内容被修改过
例:find /etc -mmin -120 查找120分钟内被修改过的
find /etc -mtime +7 超过7天没有改过的文件
-type根据文件类型查找
例: -type f 二进制文件
-type l 软链接文件
-type d 目录
连接符(逻辑连接符: -a -o 命令执行连接符: -exec -ok)
逻辑连接符:
-a (and 逻辑与 ) -o (or 逻辑或)
例: find /etc -size +163840 -a -size -204800在/etc下查找大于80M小于100M的文件
对查找到的文件,进一步处理
find ... -exec 命令 {} \;
{}表示find查询的结果集
\是转义符 表示一个命令或符号使用其本身的意义,不使用别名
;分号是表示语句的结束
是固定格式,只能这样写。注意中间的空格。
转义符的作用是什么?
在linux中有一个别名机制,如rm删除文件,执行的却是rm -i(用which rm 可以查看命令别名),使用rm删除文件前会提示,就是因为rm -i这个参数。如果想使用命令原意,可以在加\转义,
如:\rm test.txt 则不会提示,直接删除
找到文件后查看详情:
find /etc -name inittab -exec ls -l {} \;
find /etc -name init* -a -type f -exec ls -l {} \; 要过滤掉目录,只列出文件,否则ls会列出很多文件
找到testfile后,直接删除,默认不需要确认,直接删除,也不需要加-f选项
find /test -name testfile -exec rm {} \;
找samlee用户的所有文件并删除
find /home -user samlee -exec rm –r {} \;
找samlee用户的所有文件并删除,删除前会一个提示确认
find /home -user samlee -ok rm -r {} \;
结合使用:查二进制文件并显示详情
find /etc -name init* -a -type f -exec ls -l {} \;
根据i节点查找
如果一些特殊文件
touch "a b"
touch -- -abc
无法直接删除
rm a b
rm -abc
可以这样删除
rm "a b"
rm -- -abc
如果你不知道是怎样创建的,则可以先查看i节点
ls -i 查到结果例如 2310630 a b
find ./ -inum 2310630 -exec rm {} \;
3 grep “字符串” 文件名 查找符合条件的字串行。
命令名称:grep
命令所在路径:/bin/grep
执行权限:所有用户
grep -i “root” /etc/passwd
-v 反向选择
-i 忽略大小写
Find: 在系统当中搜索符合条件的文件名,如果需要匹配,使用通配符匹配。通配符是完全匹配。
Grep: 在文件当中搜索符合条件的字符串,如果需要匹配,使用正则表达式匹配,正则表达式是包含匹配
4 管道符
命令1 | 命令2 命令1的执行结果,作为命令2的执行条件
netstat -an | grep ESTABLISHED | wc -l 统计正在连接的网络连接数量
cat 文件名 | grep “字串” 提取含有字符串的行
grep “字符串” 文件名
ls -l /etc | more 分屏显示ls内容
补充命令:
netstat 查看网络状态的命令
-t 查看tcp端口
-u 查看udp端口
-l 监听
-n 以IP和端口号显示,不用域名和服务名显示
-a 查询所有连接
六 压缩和解压缩
.gz .bz2 linux可以识别的常见压缩格式
.tar.gz .tar.bz2 常见的压缩和打包命令
压缩同时打包
tar -zcvf 压缩文件名 源文件
tar -zcvf aa.tar.gz aa
-z 识别.gz格式
-c: 压缩
-v:显示压缩过程
-f:指定压缩包名
tar -zxvf 压缩文件名 解压缩同时解打包
tar -jcvf 压缩文件名 源文件 压缩同时打包
tar -jcvf aa.tar.bz2 aa
tar -jxvf aa.tar.bz2 解打包同时解压缩
查看不解包
tar -ztvf aa.tar.gz 查看不解包
tar -jtvf aa.tar.bz2
-t 只查看,不解压
tar -jxvf root.tar.bz2 -C /tmp/ 指定解压缩位置
七 关闭和重启命令
1)shutdown -h now 没有特殊情况,使用此命令
-h 关机
-r 重启
shutdown -r now
命令名称:shutdown
命令所在路径:/sbin/shutdown
执行权限:root
2)reboot
命令名称:reboot
命令所在路径:/sbin/reboot
执行权限:root
八 挂载命令
linux所有存储设备都必须挂载使用,包括硬盘
命令名称:mount
命令所在路径:/bin/mount
执行权限:所有用户
光盘挂载
/dev/sda1 第一个scsi硬盘的第一分区
/dev/cdrom 光盘
/dev/hdc 光盘 centos 5.5
/dev/sr0 光盘 centos 6.x
mount -t 文件系统 设备描述文件 挂载点(已经存在空目录)
mount -t iso9660 /dev/cdrom /mnt/cdrom
光盘卸载
umount /dev/cdrom
umount /mnt/cdrom 强调:退出挂载目录,才能卸载
fdisk -l
mount -t vfat /dev/sdb1 /mnt/usb
六 网络命令
1 ping 测试网络连通性
命令名称:ping
命令所在路径:/bin/ping
执行权限:所有用户
ping -c 次数 ip 探测网络通畅
2 ifconfig 查询本机网络信息
命令名称:ifconfig
命令英文原意:interface configure
命令所在路径:/sbin/ifconfig
执行权限:root
服务器管理规范:
越是安全等级要求高的服务器,越是严格限制用户等级,不能所有人都是root,远程服务器不能关机。
服务器不允许在负载高峰执行高负载命令。例如杀毒、大数据压缩解压缩,复制,全盘搜索。