基础指令

#打印字符串
echo hello linux #将file1 和 file2粘合在一起,打印到标准输出流
cat file1 file2

标准输入输出

  • 标准输入,stdin,即键盘、鼠标输入
  • 标准输出,stdout,即输出到终端
  • 标准错误流,stderr,输出到终端的错误信息

常用命令

# 列出目录下的文件以及详细信息
ls -l /home #将file1复制到file2
cp file1 file2
#将多个文件复制到dir目录
cp file1 file2 file3 dir #将file1重命名成file2,如果两者在同一个目录下
mv file1 file2
#将多个文件移动到dir目录下
mv file1 file2 file3 dir # 创建文件file,如果已经存在则更新创建时间
touch file #删除文件以及目录下的文件
rm file
rm -rf /dir #将参数显示到标准输出,还可以输出变量以及
echo hello again

浏览目录

  • .表示当前目录
  • ..,表示上一层级目录
# 切到dir目录下
cd /dir #创建dir目录
mkdir /dir echo at* #打印当前目录下所有at开头的文件名
echo *at* #所有包含at的
echo *at # 所有at结尾的 # * 通配任意长度的字符串
# ? 通配单字符
# '*'可以禁止通配符展开,即打印字符(*)本身

中间命令

#在passwd文件中匹配root关键字的行,并打印到标准输出流
grep root /etc/passwd
#匹配etc目录下所有包含root行的文件
grep root /etc/*
# -i表示不区分大小写匹配root,比如RooT,rOOT等
grep -i root /etc/passwd
#-v 表示反向匹配passwd文件,即打印所有不含有root的行
grep -v root /etc/passwd #相当于cat和more的加强版,分屏浏览文件内容
less /usr/share/dict/words
# B前一屏,SPACE后一屏,q退出,/word向下搜索Word关键字,?word向上搜索Word关键字 #显示当前目录
pwd -P #比较两文件的不同点
diff file1 file2 #查看file1文件的格式信息
file file1 #/dir目录下查找名为fileName的文件地址,并打印到终端
find /dir -name fileName #打印file1的前10行,如果 -5,表示前5行
head file1
#打印passwd文件尾部内容
tail /etc/passwd #排序file1的行,输出到标准流(终端)
sort file1
sort -r /etc/passwd#反向排序

基础文件系统知识

修改密码

passwd #然后输入一次旧密码,两次新密码即可修改当前用户密码
passwd root #修改root用户的密码

dot文件

即以.开头的文件,默认隐藏,调用ll可显示

环境变量与shell变量

STUFF=blade #给STUFF变量赋值blade,注意等号两边没空格,否则报错

echo $STUFF #打印STUFF变量

#将变量转成系统环境变量
export STUFF
  • 环境环境变量与shell变量的最大区别:shell变量只在当前shell作用,环境变量整个系统都可以使用,包括一些文件配置文件等。典型的,我们常配置$PATH变量

命令路径

$PATH变量,他定义了一堆目录,目录之间以:分割开来。在终端键入指令时,比如ls,就会在PATH定义的路径下搜索指令文件。如果有多个目录含有该指令,以第一个目录为准

敲命令行的一些快捷键

ctrl-b #光标左移
ctrl-f #光标右移
ctrl-p #上一个指令
ctrl-n #下一个指令
ctrl-a #光标移到指令开头
ctrl-e #移到指令结尾
ctrl-u #删除光标到开头的内容
ctrl-k #删除光标到结尾的内容
ctrl-y #粘贴前面删除的内容

帮助文档

#查看ls指令帮助文档
man ls #查看find指令的文档
info find #查找带sort关键字的所有指令
man -k sort

指令类型

类型代号 类型意义
1 用户指令
2 系统内核函数
3 lib函数库
4 接口、设备、驱动信息
5 配置文件,大多在/etc下面
8 超级用户的系统级指令

重定向以及管道

重定向:即将输出流的位置重新改变,常用的是该标准输出流到一个文件

#将grep的输出重定向到file1中
grep root /etc/passwd > file1
#一般的`>`会清空文件的本身内容在接受输出,使用`>>`会改为追加模式

管道:即前一个指令的输出做下一个指令输入,数据在指令之间流通就像流经不通的管道一样

# 将grep的输出内容使用sort排序,然后重定向到file1中
grep -v root /etc/passwd | sort > file1

查看、操作中进程

参数

  • pid:进程id,process id
  • tty:终端设备
  • stat:状态,S表示sleep,R表示RUN
  • time,占用CPU的时间
  • command:启用这个进程的指令

查询指令

# x:当前用户占用的所有进程 ax:系统所有进程 u:更详细的进程信息 w:显示命令行全名
#下面的意思为:显示进程名含有keywords的进程
ps -aux process_keywords

终结进程

kill pid
kill -term pid kill -stop pid #暂停进程
kill -cont pid #唤醒进程 kill -9 pid

文件权限

drwxr-xr-x的含义

文件详情的第一列,形如drwxr-xr-x,就是描述一个文件权限的描述符,共计10位字符

  • 0位,-:表示文件,d:表示目录,l:表示链接文件等
  • 1-3:表示文件所有者的权限,r:读 w:写 x:执行
  • 4-6:用户组的权限
  • 7-9:其他组的权限

修改文件权限

#group other增加读权限
chmod go+r file #设置权限为744,即读写操作-读-读
chmod 744 file

数值描述权限

  • r:4
  • w:2
  • x:1

因此,744就是(4+2+1)-(4+0+0)-(4+0+0)

注意,一个目录如果没有x权限,只能ls查看他包含的文件名称,却不能cd进去,也不能读取他里面的文件

创建符号链接

符号链接,即快捷键,给某个目录建立一个快捷键

#target:目标目录 linkname:连接符号名
ln -s target linkname

压缩、归档

压缩:将文件归为一个压缩包,降低占用空间

#压缩
gzip file
#解压
gunzip file.gz

归档:即将多个文件或者某文件夹整合为一档

# c:创建归档 v:显示细节 f:表示文件,后接文件名
tar cvf archive.tar file1 file2...
#解压归档文件 x:解压
#tar xvf achiver.tar

其实,在实际中压缩与归档可以用tar指令一步完成,如

#解压
tar xzvf file.tar.gz #压缩 归档
tar czvf achiver.tar.gz file1 file2...

linux目录结构

  • bin:可执行文件,c编译的二进制文件和shell脚本
  • sbin:超级用户的可执行文件,系统级指令
  • etc:配置文件
  • lib:编译动态链接库、函数等
  • home,家目录,理论上每个用户都在下面有个家
  • dev:接口设备文件
  • proc 和 sys:系统信息如进程信息等
  • var:运行时信息,日志、缓存、用户信息等
  • usr:大量系统文件,复杂
  • boot:启动的内核加载文件
  • media:可插拔设备文件
  • opt:第三方软件目录,很多系统没有这个目录

usr目录

存放用户空间的进程和数据

  • usr/bin 和 usr/sbin:用户使用的一些指令
  • usr/lib:链接库
  • include:c的哄文件(*.h)
  • info:指令文档
  • man:指令文档
  • local:管理员装软件的地方

内核位置

系统内核在vmlinuz或者boot/vmlinuz中

超级用户

通过修改etc/sudoers文件,可以添加拥有超级权限的普通用户。这个用户只需要敲sudo即可执行root权限

参考

  • 《精通linux第二版》

linux基础指令以及权限管理的更多相关文章

  1. Linux 基础指令初识

    Linux 基础指令初识 01. ls 指令 语法: ls [选项] [目录或文件] 功能:对于目录,该命令列出该目录下的所有子目录与文件.对于文件,将列出文件名以及其他信息 -a 列出目录下的所有文 ...

  2. Linux基础指令

    Linux基础指令 只写了最简单的一些文件操作,基本没有带参数 查看当前目录 pwd 跳转到某路径 cd 查看当前目录下的文件 ls ls -l // -l 查看详细信息 打开当前所在文件夹 open ...

  3. Linux用户及文件权限管理

    Linux用户及文件权限管理

  4. Linux课程---10、权限管理(权限有哪几种)

    Linux课程---10.权限管理(权限有哪几种) 一.总结 一句话总结: r 读 w 写 x 执行 1.drwxr-x---  2 root root  4096 Jan 20 19:39 mnt ...

  5. Linux常见命令之权限管理命令

    chmod命令 chmod命令用来变更文件或目录的权限.在UNIX系统家族里,文件或目录权限的控制分别以读取.写入.执行3种一般权限来区分,另有3种特殊权限可供运用.用户可以使用chmod指令去变更文 ...

  6. Linux学习之常用权限管理命令(二)

    (一)常用权限管理命令 (1)chmod命令 (2)chown (3)chgrp (4)umask (一)常用权限管理命令 (1)chmod命令 命令名称:chmod命令英文原意:change the ...

  7. Linux基础三(软件安装管理)

    目录: 一.Linux 中软件包的分类 1.源码包 2.二进制包 3.源码包 4.软件安装的选择 二.软件安装之 RPM 1.背景知识 2.准备知识 3.安装升级与卸载 4.查询校验与提取 三.软件安 ...

  8. Linux基础指令--韩顺平老师课程笔记

    一.vi和vim编辑器 ①.三种模式 所有的 Linux 系统都会内建 vi 文本编辑器.vim 具有程序编辑的能力,可以看做是 vi 的增强版本,可以主动的以字体颜色辨别语法的正确性,方便程序设计. ...

  9. Linux UGO和ACL权限管理

    自主访问控制(Discretionary Access Control, DAC)是指对象(比如程序.文件.进程)的拥有者可以任意修改或者授予此对象相应的权限.Linux的UGO(User, Grou ...

随机推荐

  1. Scrapy框架之日志等级和请求传参

    一.Scrapy的日志等级 在使用scrapy crawl spiderFileName运行程序时,在终端里打印输出的就是scrapy的日志信息. 1.日志等级(信息种类) ERROR:错误 WARN ...

  2. mysql 常用操作语句

    1 根据表中的其中一个字段的值来修改同行某字段的值 UPDATE  radar a INNER JOIN radar b ON a.id=b.id SET a.letter=LEFT(b.filena ...

  3. Fragstats:使用R软件读取frag78b.asc文件

    Fragstats中,有一个用于熟悉Fragstats软件的demon,在tutorial中的1种,有reg78b.asc文件,其文件内容是包含了山歌图像的行数和列数以及分辨率大小等基本信息. 采用R ...

  4. 【邀请函】小投入 大产出—微软智能云(Azure)之CDN 专题

    会议时间 2016 年 11 月 24 日 14:00-16:00 会议介绍 尊敬的客户: 您是否还在为如何提高网站的响应速度以及用户增长造成的源站压力烦恼?是否还在担心源站 IP 暴露存在安全隐患? ...

  5. sqlserver内存管理之lazy writer

    任何在缓冲区被修改的页都会被标记为“脏”页.将这个脏页写入到数据磁盘就是CheckPoint或者Lazy Writer的工作.前面就大体说了一下checkpoint,这会就简单的理解一下这个lazy ...

  6. vscode 显示"没有活动的源代码控制提供程序“处理

    不知为何我的 VS Code 在 1.25 版本开始就一直 ”没有活动的源代码控制提供程序“,找了好几天都没找到,今天终于找到怎么处理了, 切换到插件中找到下图对应的 Git (可以直接再上面搜索框输 ...

  7. C# 64位win7下DllImport LoadLibrary函数失败 z

    [DllImport["kernel32.dll"]] static extern IntPtr LoadLibrary(string lpFileName); public vo ...

  8. RAC环境修改数据库字符集

    sql> alter system set cluster_database=false scope=spfile sid='qcjk1';   --------注意sid根据不同环境要修改 在 ...

  9. 使用VM Tools让VMware虚拟机里的ubuntu能够共享Windows系统的文件夹

    我们经常有这样的使用场景,在宿主机Windows(Linux)操作系统上通过VMware软件安装了一个Linux(Windows)的虚拟机, 然后需要在两种操作系统中通过某种介质共享数据. 一种比较麻 ...

  10. angular2 里父子组件传值的坑

    1.如果传的是基本类型的值,子组件里改变该值,父组件无变化 2.如果传的是对象,子组件里改变对象里的变量,父组件会变化 3.如果传的是函数,this不会继续指向父组件对象了,如果需要this指向父组件 ...