一、Shell基础命令
1、ls命令:用于列出当前目录下的文件和子目录。常用选项有-l(用长格式显示文件信息)、-a(显示隐藏文件)、-t(按时间排序)、-r(倒序显示)、-h(以易读格式显示大小)等。
$ ls -l -rw-r--r-- 1 root root 2345 Dec 15 09:45 example.txt
2、cd命令:用于切换当前工作目录。可用绝对路径或相对路径(.表示当前目录,..表示上级目录)。
$ cd /home/user/example/
3、mkdir命令:用于新建目录。
$ mkdir newdir
4、rm命令:用于删除文件或目录。常用选项有-r(递归删除目录)和-f(强制删除)。
$ rm example.txt
5、cp命令:用于复制文件或目录。常用选项有-r(递归复制目录)和-p(保留文件属性)。
$ cp example.txt newdir/
二、Shell进阶命令
1、grep命令:用于在文件中查找指定字符串,可以用通配符或正则表达式匹配。常用选项有-r(递归查找目录)、-i(不区分大小写)。
$ grep "example" example.txt
2、find命令:用于在指定目录下查找文件或目录,可以用多个限制条件。常用选项有-name(按名称查找)、-type(按类型查找)、-mtime(按修改时间查找)。
$ find /home/user/ -name "*.txt"
3、sed命令:用于在文件中替换指定字符串,可以用正则表达式匹配。常用选项有-i(直接修改文件)、-e(多个替换规则)。
$ sed -i 's/example/new/g' example.txt
4、awk命令:用于对文本进行处理和分析,支持多种操作。常用操作有print(打印指定列)、if(判断条件)、sum(计算总和)。
$ awk '{if($1=="example") print $2}' example.txt
三、Shell个性化配置
1、环境变量:可以设置常用的路径、别名等。将以下内容添加到.bashrc文件中即可。
export PATH=/usr/local/bin:$PATH alias ll='ls -l'
2、自定义命令:可以将常用的命令封装成脚本或函数,方便调用。例如下面的脚本用于统计当前目录下所有文件的大小。
#!/bin/bash total=0 for file in * do if [ -f "$file" ] then size=$(du -b "$file" | awk '{print $1}') total=$((total+size)) fi done echo "Total size: $total bytes."
3、Shell颜色:可以将命令输出的文本设置为不同的颜色以区分不同类型的信息。将以下内容添加到.bashrc文件中即可。
export PS1="\[\033[01;32m\][\u@\h:\w]\$\[\033[00m\] "
四、Shell实用工具
1、tmux:用于在终端中创建多个窗口或分屏,可在不同窗口或面板中同时执行多个命令。
$ tmux new -s session_name
2、screen:与tmux类似,在单个终端窗口中运行多个程序和命令。
$ screen -S session_name
3、rsync:用于同步本地或远程文件,可以增量同步,减少传输数据量。
$ rsync -avz source_dir/ remote_user@remote_host:dest_dir/
4、ssh:用于远程登录其他主机或执行远程命令。
$ ssh remote_user@remote_host $ ssh remote_user@remote_host "ls -l"
五、Shell脚本编程
可以使用Shell脚本编写自动化脚本,提高工作效率。下面是一个简单的例子,用于自动备份指定目录的文件。
#!/bin/bash src_dir=/home/user/example/ backup_dir=/mnt/backup/ backup_file=example_$(date +"%Y%m%d").tar.gz tar -czvf $backup_dir$backup_file $src_dir
以上是Linux Shell的基础和进阶命令、个性化配置、实用工具和脚本编程等方面的介绍。掌握这些技巧和工具,能够在命令行中高效地进行各种操作,提高工作效率。