文章

Linux 常用命令

·

Linux 常用命令 ls 命令 常用参数: cd 命令 pwd 命令 mkdir 命令 rm 命令 mv 命令 cp 命令 常用参数: cat 命令 more 命令 用于分页查看文本;现代 Linux 环境通常更推荐使用 。 less 命令 与 类似,但可以前后浏览文件,且查看前不必加载整个文件。 常用参数: 常用按

Linux 常用命令

ls 命令

常用参数:

ls -a    # 列出所有文件,包括以 . 开头的隐藏文件
ls -l    # 显示权限、所有者、大小和修改时间等详细信息
ls -h    # 以易读的单位显示文件大小;通常与 -l 一起使用
ls -t    # 按修改时间排序
ls -l -a -h  # 常用组合:详细信息、隐藏文件、易读大小

cd 命令

# 进入指定目录
cd [目录名]
# 进入根目录
cd /
# 进入当前用户的主目录
cd ~
# 返回上一次所在目录
cd -
# 进入父目录
cd ..

pwd 命令

# 查看当前路径
pwd
# 查看软链接解析后的实际路径
pwd -P

mkdir 命令

# 在当前目录创建新文件夹
mkdir [文件夹名称]
# 在 /tmp 下创建 test/t1/t;缺失的父目录也会一并创建
mkdir -p /tmp/test/t1/t

rm 命令

rm [选项] 文件
# 删除所有 .log 文件,逐一询问确认
rm -i *.log
# 删除 test 目录及其所有内容;不询问,谨慎使用
rm -r -f test

mv 命令

# 将 test.log 重命名为 test1.txt
mv test.log test1.txt
# 将多个文件移动到 /test3 目录
mv log1.txt log2.txt log3.txt /test3
# 目标存在时询问是否覆盖
mv -i log1.txt log2.txt
# 目标存在时直接覆盖,谨慎使用
mv -f log1.txt log2.txt
# 移动当前目录下的所有非隐藏文件到父目录
mv * ../

cp 命令

常用参数:

-i    # 覆盖前询问
-r    # 递归复制目录及其内容
-a    # 尽可能保留原文件的属性
# 复制 a.txt 到 test 目录;保留属性,覆盖前询问
cp -a -i a.txt test/
# 为 a.txt 创建符号链接
cp -s a.txt link_a.txt

cat 命令

# 一次显示整个文件
cat filename
# 从键盘创建文件;输入完成后按 Ctrl+D
cat > filename
# 合并多个文件并覆盖写入
cat file1 file2 > file

# -b:只给非空行编号
# -n:给所有行编号
# 给 log2012.log 加行号后写入 log2013.log
cat -n log2012.log > log2013.log
# 给两个文件的非空行编号后追加到 log.log
cat -b log2012.log log2013.log >> log.log
>   覆盖写入
>>  追加写入

more 命令

用于分页查看文本;现代 Linux 环境通常更推荐使用 less。

more file.txt
ls -l | more

less 命令

less 与 more 类似,但可以前后浏览文件,且查看前不必加载整个文件。

常用参数:

less -i file.txt       # 搜索时忽略大小写
less -N 1.log 2.log    # 显示行号,并查看多个文件
less -s file.txt       # 将连续空行显示为一行

常用按键:

Space       向前翻一页
b           向后翻一页
Enter       向前移动一行
d / u       向前 / 向后翻半页
j / k       向下 / 向上移动一行
/pattern    向前搜索
?pattern    向后搜索
n / N       重复搜索 / 反方向重复搜索
g / G       到文件开头 / 结尾
q           退出

find 命令

find [路径] [条件] [动作]

常用条件:

-name PATTERN       按文件名查找
-type f             普通文件
-type d             目录
-size +100M         大于 100 MB 的文件
-mtime -7           最近 7 个 24 小时区间内修改过的文件
-mmin -2880         过去 48 小时内修改过的文件
-maxdepth N         限制最大查找深度
# 在当前目录查找以 .log 结尾的文件
find . -name '*.log'
# 查找普通的 .log 文件
find . -type f -name '*.log'
# 查找过去 48 小时内修改过的文件
find . -type f -mmin -2880
# 查找大于 100 MB 的文件
find . -type f -size +100M
# 查找以 passwd 开头且内容包含 pkg 的普通文件
find . -type f -name 'passwd*' -exec grep -n 'pkg' {} \;
# 删除匹配的 .log 文件前逐一确认
find . -type f -name '*.log' -exec rm -i {} \;

atime 是访问时间;查找修改时间应使用 mtime 或 mmin。

chmod 命令

常用参数:

-c    # 发生改变时报告处理信息
-R    # 递归处理目录及其子目录中的文件

权限范围:

u    文件所有者
g    文件所属组
o    其他用户
a    所有用户

权限代号:

r = read(读)       = 4
w = write(写)      = 2
x = execute(执行)  = 1

- 表示该权限不存在,例如 rwxr-xr-- 等于 754。它不是删除权限;删除文件主要取决于所在目录的权限。

# 给所有用户增加 t.log 的执行权限
chmod a+x t.log
# 清除其他权限,只保留属主的读权限,并报告处理信息
chmod -c u=r t.log
# 属主 rwx(7)、组 r-x(5)、其他用户 --x(1)
chmod -c 751 t.log
# 等价写法
chmod -c u=rwx,g=rx,o=x t.log
# 递归为 text/ 中的文件添加读权限
chmod -R -c u+r,g+r,o+r text/

tar 命令

常用参数:

-c    创建归档文件
-x    从归档文件中解压
-t    查看归档内容
-f    指定归档文件名
-z    使用 gzip 压缩或解压
-v    显示操作过程
# 将 1.log 和 2.log 打包为 log.tar;文件名以空格分隔
tar -c -v -f log.tar 1.log 2.log
# 将所有 .log 文件打包为 logs.tar
tar -c -v -f logs.tar *.log
# 将 /etc 打包并使用 gzip 压缩
tar -z -c -v -f /tmp/etc.tar.gz /etc
# 查看压缩包内容
tar -z -t -v -f /tmp/etc.tar.gz
# 解压
tar -z -x -v -f /tmp/etc.tar.gz