Shell常用命令


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


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  易读格式显示(KMG
  • -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 .


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM