在终端中,显示普通用户是$,而root用户是#。

1 Linux系统结构及配置文件
1.1 Linux系统结构
路径 | 描述 |
/ | 根目录,所有文件的第一级目录 |
/home | 普通用户家目录 |
/root | 超级用户家目录 |
/usr | 用户命令、应用程序等目录 |
/var | 应用数据、日志等目录 |
/lib | 库文件和内核模块目录 |
/etc | 系统和软件配置文件 |
/bin | 可执行程序目录 |
/boot | 内核加载所需的文件,grub 引导 |
/dev | 设备文件目录,比如磁盘驱动 |
/tmp | 临时文件目录 |
/opt | 第三方软件安装目录 |
1.2 环境变量文件
1.2.1 系统级
系统级变量文件对所有用户生效。
/etc/profile
# 系统范围内的环境变量和启动文件。不建议把要做的事情写在这里面,最好创建一个自定义,放在/etc/profile.d下
/etc/bashrc
# 系统范围内的函数和别名
1.2.2 用户级
用户级变量文件对自己生效,都在自己的家目录下。
~/.bashrc # 用户指定别名和函数
~/.bash_logout # 用户退出执行
~/.bash_profile # 用户指定变量和启动程序
~/.bash_history # 用户指定命令历史文件
开机启动脚本顺序:/etc/profile -> /etc/profile.d/*.sh -> /.bash_profile -> /.bashrc -> /etc/bashrc
因此,我们可以把写的脚本放在以上的文件内执行。
1.3 系统配置文件
路径 | 描述 |
/etc/issue | 系统版本 |
/etc/hosts | 主机名与 IP 对应关系 |
/etc/resolv.conf | DNS 服务器地址 |
/etc/hostname | 主机名 |
/etc/sysctl.conf | 系统参数配置文件 |
/etc/sudoers | sudo 权限配置 |
/etc/init.d | 服务启动脚本 |
/etc/sysconfig/networkscripts | 网卡信息配置目录 |
/etc/rc.d/rc.local | 系统 init 初始化完后执行,不建议将启动服务写在这里面,应创建 自己的 systemd 或 udev |
/etc/fstab | 硬盘自动挂载配置 |
/etc/inittab | 系统启动运行级别 |
/etc/crontab | 系统级任务计划 |
/var/spool/cron | 用户级任务计划,此目录下以用户名命名对应每个用户的任务计划 |
/etc/cron.d | 描述计算机任务计划 |
/etc/hosts.allow | TCP 包访问列表 |
/etc/hosts.deny | TCP 包拒绝列表 |
/usr/share/doc | 各软件的文档 |
/etc/sshd_config | SSH 服务配置文件 |
/var/log | 系统和应用程序日志目录 |
/var/spool/mail | 邮件目录 |
2 Shell常用命令
首先给一个查询命令的链接:https://man.linuxde.net/。另外可以通过man cmd、cmd --help、help cmd、info cmd 等方式查看命令的帮助文档。
cd命令同windows下一样使用(如:cd /opt/,进入opt目录下),有一个需要注意的地方:cd /opt 不同于cd opt/ ,前者是进入系统的opt目录,后者是进入当前目录的opt目录下(如果存在opt目录的话)。
2.1 ls
功能:列出目录内容
常用选项(可以共同使用):
- -a 显示所有文件,包括隐藏的
- -l 长格式列出信息
- -i 显示文件 inode 号
- -t 按修改时间排序
- -r 按修改时间倒序排序
- -h 打印易读大小单位
示例:
[gujun@localhost /]$ ls
[gujun@localhost /]$ ls -a
[gujun@localhost /]$ ls -lh

2.2 cat
功能:连接文件和标准输出打印
常用选项:
- -b 显示非空行行号
- -n 显示所有行行号
- -T 显示 tab,用^I 表示
- -E 显示以$结尾
示例:
[gujun@localhost ~]$ cat a.txt
[gujun@localhost ~]$ cat a.txt -b
[gujun@localhost ~]$ cat a.txt -n
[gujun@localhost ~]$ cat a.txt -T
[gujun@localhost ~]$ cat a.txt -E

2.3 cp
功能:复制文件或目录
常用选项:
- -a 归档
- -b 目标文件存在创建备份,备份文件是文件名跟~
- -f 强制复制文件或目录
- -r 递归复制目录
- -p 保留原有文件或目录属性
- -i 覆盖文件之前先询问用户
- -u 当源文件比目的文件修改时间新时才复制
- -v 显示复制信息
示例:
# 将test目录拷贝到des目录下
[gujun@localhost ~]$ ls
a.txt b.txt test
[gujun@localhost ~]$ mkdir des
[gujun@localhost ~]$ ls
a.txt b.txt des test
[gujun@localhost ~]$ cp -rf test/ des/

2.4 mkdir
功能:创建目录
常用选项:
- -p 递归创建目录
- -v 显示创建过程
示例:
# 创建多级目录
[gujun@localhost ~]$ mkdir test2/abc -pv

2.5 mv
功能:移动文件或重命名
常用选项:
- -b 目标文件存在创建备份,备份文件是"文件名后跟~"
- -u 当源文件比目的文件修改时间新时才移动
- -v 显示移动信息
# 将a.txt移入test2文件夹下
[gujun@localhost ~]$ mv a.txt test2/
# 将 b.txt 重命名为b_new.txt
[gujun@localhost ~]$ mv b.txt b_new.txt

2.6 du
功能:估算文件磁盘空间的使用大小
常用选项:
- -h 易读格式显示(K,M,G)
- -b 单位bytes显示
- -k 单位KB显示
- -m 单位MB显示
- -s 只显示总大小
- --max-depth=<目录层数>,超过层数的目录忽略
- --exclude=file 排除文件或目录
- --time 显示大小和创建时间
示例:
# 查看目录大小
[gujun@localhost ~]$ du -sh test2
# 排除指定目录的某个文件
[gujun@localhost ~]$ du -sh --exclude=a.txt test2

2.7 find
功能:搜索文件目录层次结构
格式:find path -option actions
常用选项:
- -name 文件名,支持(‘*’, ‘?’)
- -type 文件类型,d目录,f常规文件等
- -perm 符合权限的文件,比如755
- -atime -/+n 在n天以内/过去n天被访问过
- -ctime -/+n 在n天以内/过去n天被修改过
- -amin -/+n 在n天以内/过去n分钟被访问过
- -cmin -/+n 在n天以内/过去n分钟被修改过
- -size -/+n 文件大小小于/大于,b、k、M、G
- -maxdepth levels 目录层次显示的最大深度
- -regex pattern 文件名匹配正则表达式模式
- -inum 通过inode编号查找文件
动作:
- -detele 删除文件
- -exec command {} \; 执行命令,花括号代表当前文件
- -ls 列出当前文件,ls -dils格式
- -print 完整的文件名并添加一个回车换行符
- -print0 打印完整的文件名并不添加一个回车换行符
- -printf format 打印格式
其他字符:
- ! 取反
- -or/-o 逻辑或
- -and 逻辑和
示例:
# 全盘查找文件名包含http的文件。*是通配符
[gujun@localhost ~]$ sudo find / -name "*http*"

# 指定只寻找log文件
[root@localhost gujun]# find / -name "*.log" -type f -print

# 查找大于50M的文件:
[root@localhost gujun]# find / -size -50M
# 条件查找多个类型的文件,使用正则表达式:
# find . -name '*.sh' -o -name '*.bak'
# find . -regex ".*\.sh\|.*\.bak"
# find . -regex ".*\.\(sh\|bak\)"
2.8 wget
功能:非交互式网络下载,类似于HTTP客户端
在CentOS(RedHat内核)中,需要使用yum(RedHat中的包管理器)安装wget。
示例:
[root@localhost gujun]# yum install wget
# 下载单个文件到当前目录
[root@localhost gujun]# wget http://nginx.org/download/nginx-1.11.7.tar.gz

2.9 tar
功能:归档目录或文件
常用选项:
- -c 创建新归档
- -d 比较归档和文件系统的差异
- -r 追加文件到归档
- -t 存档的内容列表
- -x 提取归档所有文件
- -C 改变解压目录
- -f 使用归档文件或设备归档
- -j bzip2压缩
- -z gzip压缩
- -v 输出处理过程
# 解压刚刚下载的nginx的压缩包到 test目录下
# 如果不指定目录,默认是当前目录
[root@localhost test]# tar zxvf nginx-1.11.7.tar.gz -C test/

2.10 free
功能:查看内存使用率
常用选项:
- -b bytes显示
- -k KB显示
- -m M显示
- -g G显示
- -h 易读单位显示
- -s 每几秒重复打印
- -c 重复打印几次退出
示例:
# 查看物理内存:
# free -m
# 易读单位显示:
# free -h

2.11 ip
功能:查看/操作路由表,设备,路由策略和隧道
格式:ip [ OPTIONS ] OBJECT { COMMAND | help }
具体可以百度,一般用来查询ip地址用。
示例:
[root@localhost test]# ip addr

2.12 ssh
功能:SSH客户端,登陆其他的主机
常用选项:
- -p 指定远程主机端口,默认是22
- -i 指定认证文件
- -L [bind_address:]port:host:hostport
- -R [bind_address:]port:host:hostport]
- -D [bind_address:]port
示例:
# 默认端口登陆
[root@localhost test]# ssh 用户名@客户机地址
# 指定端口登陆
[root@localhost test]# ssh -p 端口号 用户名@客户机地址
# 退出使用logout 命令
[root@localhost test]# logout .
