linux命令行大全

本文详述了Linux命令行的各个方面,从基础的shell命令到高级的shell脚本编写,涵盖文件操作、进程管理、权限设置、网络通信等多个主题。通过实例演示,读者可以学习如何高效地使用Linux命令行,提升日常操作效率。
摘要由CSDN通过智能技术生成


前言

本文是我阅读了《linux命令行大全》之后做的读书笔记,目的在于方便自己的复习回顾,如果有朋友想复习一下linux的内容,也可以按照我博客的内容过一遍,此外,我认为没写过linux的朋友也可以看这篇博客作为入门

就这本


LINUX命令行大全

学习shell

基本的

date 显示日期

cal 显示日历

df 查看磁盘驱动器当前的可用空间

free 显示可用内存

exit 结束终端会话

pwd 打印当前工作目录

ls 列出目录的内容,ls /usr可以显示/usr的目录内容,ls -l会显示更加详细的内容·

cd /usr/bin cd表示更改工作目录

. 符号.表示工作目录,..表示父目录,以.开头的文件名是隐藏的,除非输入ls-a才能显示

cd .. 将工作目录改为当前目录的父目录

- -命令表示选项,有很多种选项:

-a 列出所有文件

-d 作为d和l的组合,即可查看当前目录的详细信息

-F 在名字之后加上一个类型指示符

-l 长格式显示

-r 以相反的顺序显示(字母逆序)

-S 按文件大小对结果进行排序

-t 按修改时间排序

file 打印文件内容的简短说明

less filename 查看文本文件

G 跳转到文本结尾

g 跳转到文本开头

/character 查找character字符串

n 查找下一个出现的字符

q 退出less

操作文件与目录

通配符

* 匹配任意多个字符

? 匹配任意一个单字符

[character] 匹配任意一个属于character中的字符

[!character] 匹配任意一个不属于character中的字符

[[:class:]] 匹配任意一个属于指定字符类的字符(alnum, alpha, digit, lower, upper)\

mkdir 创建目录

cp 复制文件和目录 例: cp file1 file2 dir1 -i提示用户确认 -u表示仅仅复制目标文件中不存在的文件

mv 移除和重命名文件,mv item1 item2 将item1移到item2

rm 删除文件和目录

-i 删除前提示用户确认

-r 删除一个目录的时候使用,递归的删除

-f 忽略不存在的文件且无需提醒

ln file link 创建硬连接 不能引用自身文件系统之外的文件,无法引用目录

ln -s item link 创建符号连接 连接指向的文件不会随着连接删除而删除

命令

命令包含四种:可执行程序,shell内置命令,shell函数,alias命令(可以在其基础上定义的自己的命令)

type 显示命令的类型

which 显示可执行程序的位置

help 获取帮助文档,显示命令的使用信息;两种使用方法help lsls --help

man 显示程序的手册页

whatis 显示命令的简要描述

info 显示程序的info目录,在这样的页面中一般按q退出

创建一个alias命令:

  1. 首先查看命令名称是否存在 type foo

  2. alias foo=‘cd /usr; ls; cd -’ foo命令就创建好了

  3. unalias foo 命令就删除了

重定向

> 重定向操作符>可以用于后接文件名,把标准输出重定向到另一个文件中去;举例来说ls -l /usr/bin > ls-output.txt,在我的电脑中就会出现ls-output.txt文件。如果重定向符之前的操作是一个错误信息,产生的文件就是一个空文件;

>> 使输出内容添加到文件的最后面

2> 标准错误等同于文件描述符2,使用2>实现将标准重定向到后面的文件中,举例来说:ls -l /bin/usr 2> ls-error.txt

&> 将标准输出和标准错误都重定向到同一个文件,举例来说:ls -l /bin/usr &> ls-output.txt

/dev/null 这个文件位置可以接受输入但是不对输入进行任何处理,举例来说:ls -l /bin/usr 2> /dev/null

cat cat有很多种用途,首先cat可以显示短的文本文件,并且cat可以将多个文件作为参数,将他们合并起来。

显示操作:cat ls-output.txt 合并操作:cat movie.mpeg.0* > movie.mpeg

除此之外,cat还可以创建短文本文件:cat > lazy_dog.txt i am a lazy dog!,这样的结果就是创建好了一个内容为i am a lazy dog!的lazy_dog.txt文件

| 管道操作符,把一个命令的标准输出传送到另一个命令的标准输入中,举例来说:ls -l /usr/bin | less ,这可以方便的检查任意一条生成标准输出的命令的运行结果;ls /bin /usr/bin | sort | less,把两个目录下的所有可执行程序合并成一个列表,并按照顺序排序,最后再查看

uniq 可以忽略文件中重复的行,后面加上-d表示查看重复的行,举例来说:ls /bin /usr/bin | sort | uniq-d | less

wc 打印行数,字数,字节数wc ls-output.txt,用wc -l可以只打印行数,同理,可以把wc加在管道里:ls /bin /usr/bin | sort | uniq | wc -l

grep 用管道的方式打印含有zip的匹配的行:ls /bin /usr/bin | sort | uniq | grep zip,-i表示搜索时忽略大小写,- v表示输出和模式不匹配的行

head/tail 打印文件的开头,结尾部分,-n表示显示多少行。可以使用管道的方式:ls /bin | head -n 5 和直接输出的方式:tail -n 5 ls-output.txt

tee 获取,输出:ls /usr/bin |tee ls.txt|grep zip将内容输出到ls.txt中,然后再用grep进行过滤

echo

echo命令本身只是将文本参数内容打印到屏幕

echo hello world

echo * 这会打印*的扩展结果

扩展包括很多:

*就是一种任意字符的拓展,~会拓展为用户的主目录名,$(())表示算术拓展,

{}表示花括号拓展,举例:echo {2009..2011}--{1..9}-,$USER称之为参数拓展,

引用的方式也很多

""双引号中引用的特殊字符都将被看作是普通字符,$,\,'除外,参数拓展,算术拓展,命令替换在双引号中仍然成立。

''单引号中所有拓展都被抑制

\转义字符可以实现引用单个字符,\\实现引用反斜杠

高级键盘技巧

Ctrl+A:移动光标到行首

Ctrl+E:移动光标到行尾

Ctrl+K:复制光标到行尾的内容

Ctrl+U:复制光标到行首的内容

Ctrl+Y:粘贴到光标位置

tab 在输入字符之后按tab可以实现自动补齐,

history 可以实现搜索历史命令,例如我想寻找输入的包含ls的历史命令行:history | grep ls 会得到结果173 ls Desktop 输入!173可以输出173行的命令;按Ctrl+R可以实现逆向递增式搜索,按Ctrl+J实现将内容复制到当前行。

!! 重复最后一个执行的命令

权限

创建用户时,用户将被分配一个称为用户id (uid)的号码,用户还被分配为一个有效组id(gid),超级用户一般uid为0

关于读取,写入和执行:一般会用10个字符来表示文件属性,第一个字符表示文件属性,后面每三个字符分别表示文件所有者,文件所属群组,其他所有用户对该文件的读写执行操作权限。

第一个字符:- 表示普通文件,d 表示目录文件,l 表示符号连接,c 表示字符设备文件,b 表示块设备文件

后面的字符:r表示可以打开和读取文件,w表示可以写入或者截短文件,x表示允许把文件当作程序一样来执行

举例:drwxr-xr-x,d表示这是一个目录文件,所有者拥有读,写,执行的权限,组成员拥有读和执行的权限,其他用户也拥有读和执行的权限。

chmod 可以实现更改文件模式,有两种方法,第一种是用八进制数字表示,第二种是符号表示法,八进制对应的如下:

举例来说:

chmod 600 foo.txt 可以实现对foo.txt的权限更改

符号表示法中,u,g,o分别表示用户,群组和其他用户

chmod u+x foo.txt

chmod o-rw foo.txt

chmod u+x,go=rx foo.txt # 为文件所有者添加可执行权限,同时设置群组和其他用户具有读权限和可执行权限

umask 一般可以用来设置默认权限,默认掩码值一般为0022

除了常用的rwx权限之外,还存在setuid,setgid,sticky位;setuid可以将一个实际用户id设置为程序所有者id,setgid可以把有效组id从该用户的实际组id更改为该文件所有者的组id,sticky可以阻止用户删除或者重命名文件(除非用户为程序所有者或root)

su -l -l表示指定用户,后面输入user即可以其他用户和组id的身份来运行shell,不输入名称默认为r

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值