Linux初学常用命令

基本操作

Ctrl+A 将光标移到行头,同 Home

Ctrl+E 将光标移到行尾,同 End

Ctrl+K 删除光标所在位置到行末

Alt+Backspace 向前删除一个单词

用户

who -a 打印全部能打印的信息

who -d 打印死掉的进程

who -mwho am i,第一列打印用户名,第二列打印伪终端,第三列打印伪终端启动时间

who -q 打印当前登录用户数及用户名

who -u 打印当前登录用户登录信息

sudo adduser xxx 新增用户,并默认为新用户在/home下创建工作目录,如:sudo adduser judy ,需输入root密码,输完新用户密码后其余信息可一直回车,新建用户不指定用户组的话,会自动创建与用户名相同的用户组,默认情况sudo用户组的用户可以使用sudo命令获取root权限,注:useradd 只创建用户,不会创建用户密码和工作目录,创建完需要使用 passwd xxx 去设置密码

sudo usermod -G sudo xxx 设置用户归属用户组,如 sudo usermod -G sudo judy

su -l xxxsu-xxx 切换用户,如 su - judy

sudo deluser xxx 删除用户,如 sudo deluser judy

sudo deluser xxx --remove-home 删除用户及home下的工作目录,如 sudo deluser judy --remove-home

exitCtrl+D ,退出当前用户或退出终端

groups xxx 查看用户所属哪些用户组,如 groups judy

sudo passwd xxx 更改密码,如 sudo passwd judy

groupdel 删除用户组,前提是删除其中所有用户

文件权限管理

ls -lh 使用较长格式列出文件,文件类型和权限-链接数-所有者-所属用户组-文件大小-最后修改时间-文件名,其中文件类型和权限具体如下图:
-h
在这里插入图片描述
ll file 使用较长格式列出文件file的信息

ls *.xxx 通配符可查找某类型文件,如 ls *.txt

ls -a 显示除了当前目录和上一级目录以外的所有文件,包括隐藏文件(以.开头的文件)

ls -dlh xxx 查看目录属性,,h文件大小显示最接近单位,如 ls -dlh /home

ls -asSh 显示所有文件大小,s显示文件大小,S按文件大小排序

ls -alh xxx 查看文件所有者,如 ls -alh file

sudo chown admin xxx 将所属xxx的文件所有者变更为admin,如 sudo chown admin file,该操作在admin用户下进行

chmod 600 file 修改文件权限为只有拥有者可读写,用户组及其他用户无任何权限,同 chmod go-rw file在这里插入图片描述rwx对应读、写、执行,以二进制表示为111,十进制为7,每个文件有三组固定权限,分别对应拥有者,用户组,其他用户,如rw-rw-rw-,表示三组都没有执行的权限,以666表示
u-user-用户,g-group-用户组,o-others-其他用户,+增加权限,-去掉权限,go-rw表示去掉用户组和其他用户的读写权限

目录及文件操作

FHS(Filesystem Hierarchy Standard)文件系统层次结构标准
sudo apt-get install xxx 安装软件包,如 sudo apt-get install tree
tree / 查看目录树
在这里插入图片描述
pwd 获取当前所在路径

cd ~ 进入我的home目录,同 cd /home/judy

cd /usr/local/bin 绝对路径进入bin目录,不管是写绝对路径还是写相对路径的过程中,两次连续 Tab 可列出所有可能目录

touch xxx 创建文件,如:touch abc.txt ,若文件已存在,则会更改文件时间戳
一次性创建多个文件,如:file_1.txt, file_2.txt, … , file_10.txt: touch file_{1..10}.txt

mkdir xxx 创建目录,如 mkdir mydir ,若已存在一个文件名为mydir,则会报错,因为Linux理念为一切皆文件,会认为重复,如果文件有后缀名不会报错

mkdir -p xxx/xx/x 同时创建父目录(如果父目录不存在),如 mkdir -p father/son/grandson

cp test father/son/grandson 复制test文件至grandson文件中

cp -r father family 复制father目录到family目录,-r表递归复制,复制目录时必须加

rm file 删除file文件

rm -f file 强制删除文件file

rm -r family 删除目录

rm -rf family 强制删除目录

mv file1 Documents 移动file1文件至Documents目录

mv file1 myfile 重命名为file1文件名为myfile

rename 's/\.txt/\.c/' *.txt 将所有txt的文件后缀批量替换为c

rename 'y/a-z/A-Z/' *.c 将所有后缀为c的文件的文件名和后缀都批量替换为大写

cat xxx 正序读取文件,如 cat file.txt,一个目录同时具有读权限和执行权限才可打开查看内部文件

cat -n file 查看文件file时显示行号

more file 查看file文件,打开后默认只显示一屏内容,终端底部显示阅读进度,Enter 滚动一行,Space 滚动一屏,h 显示帮助,q 退出

tail file 查看文件前10行和后10行

tail -n 1 file 查看最新增的1行

file text 查看text文件类型

vimdiff env.txt export.txt set.txt vim编辑器diff比较该三个文件的内容

变量

declare tmp 声明变量tmp,变量名只能是英文字母、数字或者下划线,且不能以数字开头,也可不声明直接复制,如把PATH赋值给变量mypath:mypath=$PATH

tmp=judy 将字符串judy赋值给变量tmp,等号两边不能有空格

echo $tmp 读取变量tmp

zsh 创建子Shell,exit 退出子Shell

export tmp 将自定义变量tmp导出为环境变量,在子Shell中也能访问

set 显示当前Shell所有变量

env 显示与当前用户相关的环境变量

保存在当前用户的Home目录下的.profile 文件只对当前用户生效,要添加永久生效的环境变量,需要打开 /etc/profile 文件,在文件末尾添加想加的变量

echo $PATH 查看 PATH 环境变量的内容,PATH 里面的路径以 : 分割

gcc -o hello_world hello_world.chello_world.c 生成可执行文件 hello_world,gcc生成二进制文件默认具有可执行权限

./hello_world 运行hello_world程序

PATH=$PATH:/home/judy/mybin 添加自定义路径到 PATH 环境变量,必须用绝对路径。添加后可在任意目录下执行mybin中的命令,比如mybin中有 hello_world 执行文件,现在可以其他目录直接执行 hello_world

cat /etc/shells 查看当前系统已安装的Shell

echo "PATH=$PATH:/home/shiyanlou/mybin" >> .zshrc 将标准输出以追加方式重定向到 .zshrc 文件中,每次启动Shell时会自动执行 PATH=$PATH:/home/shiyanlou/mybin,zshrc 是使用环境的默认配置而文件。如说Shell使用的是Bash,则为 .bashrc

source .zshrc 让zshrc配置文件中修改的东西立即生效,同 . ./.zshrc. 后面有一个空格,且后面的文件必须指定完整的绝对路径或相对路径,source 则不需要

mypath=${mypath%/home/shiyanlou/mybin} mypath为变量名,%后为匹配字串,从尾开始匹配,删除符合匹配字串的最短数据

unset mypath 删除环境变量mypath

文件查找

whereis find 搜索二进制文件,从数据库中查找并列出含有find的路径

locate /etc/sh 递归查找/etc下所有以sh开头的文件,查询 /var/lib/mlocate/mlocate.db 数据库检索,该数据库为系统定时更新,所有刚添加的文件可能找不到,需要手动执行sudo updatedb 再查找

locate /usr/share/*.jpg 查找 /usr/share 下所有jpg文件,如果提示 zsh: no matches found: /usr/share/*.jpg 则需要转义,locate /usr/share/\*.jpg

which nginx 检查是否安装了nginx程序,只从 PATH 环境变量搜索并返回第一个搜索结果,可查看某个系统命令是否存在以及执行的哪个地方的命令

sudo find /etc/ -name interfaces/etc/ 目录下搜索名字为interfaces的文件或目录,访问/etc目录下所有文件,加root权限所以前面加上 sudo

find ~ -newer /etc 列出当前用户目录下比/etc目录更新的文件

find ~ -mtime 0 查找当他(24小时之内)有改动的文件
-mtime -n 列出n天内(包含n天)被修改过的文件
-mtime +n 列出n天之前(不包含n天)被修改过的文件
-mtime n 列出n天之前的“一天之内”修改过的文件
在这里插入图片描述

文件打包和解压

zip -r -q -o judy.zip /home/judy/Desktop/home/judy/Desktop 打包成 judy.zip
-r 递归打包子目录的全部内容
-q 安静模式,打包过程屏幕无输出
-o 输出文件,后面紧跟打包输出文件名

du -h judy.zip 查看打包后的文件大小

zip -r -9 -q -o judy_9.zip /home/judy/Desktop -x ~/*.zip 排除之前打包的zip文件,按压缩级别为9打包
-9 压缩级别,有1(最小)到9(最大)
-x 排除文件

zip -r -e -o judy_encryption.zip /home/judy/Desktop 加密压缩
-e 加密

zip -r -l -o judy.zip /home/judy/DesktopLF 转换为 CR+LF,以便在windows系统上查看时换行正常

unzip judy.zip 解压

unzip -q judy.zip -d ziptest 使用安静模式将文件解压到ziptest目录,目录不存在的话自动创建

unzip -l judy.zip 不解压的情况下查看压缩包内容

unzip -O GBK 中文压缩文件.zip 指定编码问题,避免中文乱码

tar -P -cf judy.tar /home/judy/Desktop 压缩成tar包
-P 保留绝对路径符
-c 创建一个tar包
-f 指定创建的文件名,后面紧跟文件名

tar -xf judy.tar -C tardir 解压到指定路径的已存在目录tardir
-x 解压
-C 指定已存在目录

tar -tf judy.tar 不解压查看压缩包内容

tar -czf judy.tar.gz /home/judy/Desktopgzip 创建 .tar.gz 文件

tar -xzf judy.tar.gz 解压

磁盘管理

df -h 查看磁盘容量

du -h 查看目录容量

du -h -d 0 ~ 查看1级目录信息
du -h -d 1 ~ 查看2级目录信息
-d 查看目录深度

du -s 显示总计

dd of=test bs=10 count=1 从标准输入设备读入用户输入,输入完后,继续在终端打字,作为用户输入,只读取10个字节,最后输出到文件
dd if=/dev/stdin of=test bs=10 count=1
dd 转换和复制文件,选项格式为选项=值
bs 指定块大小,默认单位为Byte,也可指定为 K, M, G
count 指定块数量
if input file 输入文件
of output file 输出文件

dd if=/dev/stdin of=/dev/stdout bs=10 count=1 从标准输入设备读入用户输入,输入完后,继续在终端打字,作为用户输入,最后输出到标准输出

dd if=/dev/stdin of=test bs=10 count=1 conv=ucase 将输入的英文字符转换为大写再写入test文件

dd if=/dev/zero of=virtual.img bs=1M count=256/dev/zero 设备创建一个容量为256M的空文件
sudo mkfs.ext4 virtual.img 将虚拟磁盘镜像格式化为ext4文件系统
sudo fdisk virtual.img 进入磁盘分区模式

sudo mount 查看主机已挂载的文件系统

mount -o loop -t ext4 virtual.img /mnt 挂载创建的虚拟磁盘镜像到 /mnt 目录
-o option,后面跟操作选项
-t 后面跟文件系统类型
sudo umount /mnt 卸载已挂载磁盘

sudo fdisk -l 查看硬盘分区表信息

sudo losetup /dev/loop0 virtual.img 建立镜像与回环设备对的关联
sudo losetup -d /dev/loop0 解除设备关联

帮助命令
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值