linux基本命令

用户管理

 who am i 查看用户

sudo adduser lilei 添加新用户

su -l lilei 切换用户

用户组

groups shiyanlou 查看所属实验组

cat /etc/group | sort 查看用户组信息

cat /etc/group | grep -E "shiyanlou"  获取group_name:password:GID:user_list

将其他用户添加sudo权限 

su shiyanlou # 此处需要输入shiyanlou用户密码

groups lilei

sudo usermod -G sudo lilei

groups lilei

删除用户

sudo deluser lilei --remove-home

查看文件权限

ls -l 

ls -A .. 显示上一级目录的隐藏文件

ls -Al  查看目录的完整属性 ls -dl 以人类看得懂的方式显示 

变更文件拥有者

sudo chown shiyanlou iphone6

修改文件权限

chmod 770 iphone6

adduesr和useradd的区别

useradd、userdel 这类操作更像是一种命令,执行完了就返回。而 adduser 更像是一种程序,需要你输入、确定等一系列操作。

linux的目录结构

FHS(英文:Filesystem Hierarchy Standard 中文:文件系统层次结构标准),多数 Linux 版本采用这种文件组织形式,FHS 定义了系统中每个区域的用途、所需要的最小构成的文件和目录同时还给出了例外处理与矛盾处理

FHS 定义了两层规范,第一层是, / 下面的各个目录应该要放什么文件数据,例如 /etc 应该放置设置文件,/bin 与 /sbin 则应该放置可执行文件等等;第二层则是针对 /usr 及 /var 这两个目录的子目录来定义。例如 /var/log 放置系统登录文件,/usr/share 放置共享数据等等。

pwd获取当前路径

绝对路径

简单地说就是以根" / "目录为起点的完整路径,以你所要到的目录为终点

相对路径

相对路径是以当前目.为起点,以你所要到的目录为终点

touch myfile

mkdir mydir

cp test father/son/grandson复制文件

cp -r father family     加上 -r 或者 -R 参数,表示递归复制

rm -f test   强制删除文件

rm -r family 强制删除目录

mv file1 Documents 移动文件

mv file1 myfile重命名文件


touch file{1..5}.txt           使用通配符批量创建 5 个文件

rename 's/ \.txt/\.c/' *.txt   批量将这 5 个后缀为 .txt 的文本文件重命名为以 .c 为后缀的文件

rename 'y/a-z/A-Z/' *.c    批量将这 5 个文件,文件名改为大写


cat -n passwd     加上-n 参数显示行号

查看文件

more/less/head/tail /etc/passwd

查看文件类型

file /bin/ls

编辑文件命令

vi/vim  fielname

环境变量和文件查找

declare tmp;tem=shiyanlou;$echo=tem

通常我们会涉及到的变量类型有三种:

  • 当前 Shell 进程私有用户自定义变量,如上面我们创建的 tmp 变量,只在当前 Shell 中有效。
  • Shell 本身内建的变量。
  • 从自定义变量导出的环境变量。
三个打印环境变量的命令

set显示当前 Shell 所有变量,包括其内建环境变量(与 Shell 外观等相关),用户自定义变量及导出的环境变量。
env显示与当前用户相关的环境变量,还可以让命令在指定环境中运行。
export显示从 Shell 中导出成环境变量的变量,也能通过它将自定义变量导出为环境变量。
$ env|sort>env.txt $export|sort>export.txt$set|sort>set.txt$ vimdiff env.txtexport.txt set.txt


shell查找路径 

echo $PATH

创建Shell 脚本文件

gedit hello_shell.sh

gedit hello_world.c  编译gcc -o hello_world hello_world.c ./hello_world

添加自定义路径到“ PATH ”环境变量

PATH=$PATH:/home/shiyanlou/mybin必须使用绝对路径

echo "PATH=$PATH:/home/shiyanlou/mybin" >> .zshrc

上述命令中 >> 表示将标准输出以追加的方式重定向到一个文件中,注意前面用到的 > 是以覆盖的方式重定向到一个文件中

变量删除 unset temp

source  .zshrc 立即生效(等同于:  . ./.zshrc)

搜索文件

whereis who 简单快速

locate /etc/sh (查找 /etc 下所有以 sh 开头的文件)快而全

locate /usr/share/ \*.jpg  查找 /usr/share/ 下所有 jpg 文件

如果想只统计数目可以加上 -c 参数,-i 参数可以忽略大小写进行查找,whereis 的 -b-m-s 同样可以使用

which man 小而精

sudo find /etc/ -name interfaces 精而细

这条命令表示去 /etc/ 目录下面 ,搜索名字叫做 interfaces 的文件或者目录。

sudo find /etc/ -name \*.list

文件打包和解压缩

zip打包和解压缩

zip -r -q -o shiyanlou.zip /home/shiyanlou

du -h shiyanlou.zip

设置压缩级别为 9 和 1(9 最大,1 最小)

zip -r -9 -q -o shiyanlou_9.zip /home/shiyanlou -x ~/*.zip

zip -r -1 -q -o shiyanlou_1.zip /home/shiyanlou -x ~/*.zip

du -h -d 0 *.zip ~ | sort  查看文件和排序

解压unzip shiyanlou.zip

使用安静模式解压unzip -q shiyanlou.zip -d ziptest

查看压缩文件的内容 unzip -l shiyanlou.zip

tar打包工具

tar -cf shiyanlou.tar ~ 上面命令中,-c 表示创建一个 tar 包文件,-f 用于指定创建的文件名,注意文件名必须紧跟在 -f 参数之后

tar -xf shiyanlou.tar -C tardir 解包一个文件(-x 参数)到指定路径的已存在目录(-C 参数)

tar -tf shiyanlou.tar 只查看不解包文件 -t 参数

tar -czf shiyanlou.tar.gz ~ 使用 gzip 工具创建 *.tar.gz 文件

tar -xzf shiyanlou.tar.gz 解压 *.tar.gz 文件

文件系统操作和磁盘管理

df

df -h

du -h -d 0 ~ 查看一级目录的信息

du -h -d 1 ~ 查看二级目录的信息

使用 dd 命令创建虚拟镜像文件
/dev/zero设备创建一个容量为 256M 的空文件
dd if= /dev/zero of=virtual.img bs= 1M count= 256
du -h virtual.img
挂载
mount -o loop -t ext4 virtual.img /mnt挂载我们创建的虚拟磁盘镜像到 /mnt目录
mount -o loop --ro virtual.img /mnt 以只读方式挂载

顺序执行多条指令:sudo apt-get update;sudo apt-get install some-tool;some-tool

$ which cowsay>/dev/null &&echo"exist" ||echo"not exist"   &&判断前面指令$?=0,则执行后面;||判断前面$?≠0则,执行后面,否则跳过

管道

ls -al /etc  |less

cut /etc/passwd -d ':' -f 1,6  显示第一和第六个字段

cut /etc/passwd -c -5  显示前五个(包含第五个)

cut /etc/passwd -c5-  显示后面五个(包含第五个)

cut /etc/passwd -c2-5  显示2-5个

匹配字符串

grep -rnI"shiyanlou" ~   -r 参数表示递归搜索子目录中的文件,-n表示打印匹配项行号,-I表示忽略二进制文件

简单的计数工具wc

wc -l /etc/passwd 计算行数 

单词数wc -w /etc/passwd  字节数 wc -c /etc/passwd  字符数  wc -m /etc/passwd 最长行字节数wc -L /etc/passw

ls -dl /etc/*/ | wc -l 统计ect目录下所有的目录数

排序命令

cat /etc/passswd |sort字典排序 cat /etc/passwd |sort -r 反转排序

cat /etc/passwd |sort -t':' -k3 -n    -t参数用于指定字段的分隔符,这里是以":"作为分隔符;-k 字段号用于指定对哪一个字段进行排序,这里是3,若要按照数字排序就要加上-n参数

uniq用于去除重复命令

history | cut -c 8- | cut-d' ' -f 1 | sort | uniq

history | cut -c 8- | cut-d' ' -f 1 | sort | uniq -dc   输出重复过的行(重复的只输出一个)及重复次数

history | cut -c 8- | cut-d' ' -f 1 | sort | uniq -D     输出所有重复的行


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值