linux_cmd 笔记
主键盘快捷键
bash的快捷键和emacs保持一致,用惯其中之一再用另一个程序会很顺手的。请记住一条原则:尽量使用主键盘快捷键而不使用移动光标键和编辑键。因为手不必离开主键盘是效率最高的,这样在你一生之中所节省的来回移动手的时间绝对可以用星期来计算,是绝对值得你花十分钟的时间记住这些快捷键的。
功能 | 快捷键 | 助记 |
---|---|---|
上 | Ctrl-p | previous |
下 | Ctrl-n | next |
左 | Ctrl-b | backward |
右 | Ctrl-f | forward |
Del | Ctrl-d | delete光标后面的 |
Home | Ctrl-a | the first letter |
End | Ctrl-e | end |
Backspace | Backspace | delete光标前面的 |
Clear | Ctrl-l | clear清屏 |
输入bind -P可以查看所有的键盘绑定
bash
CTRL相关的快捷键
Ctrl-A 相当于HOME键,用于将光标定位到本行最前面
ctrl+B: 光标左移一个字母
ctrl+C: 杀死当前进程
ctrl+D: 退出当前Shell
Ctrl-E 相当于End键,即将光标移动到本行末尾
Ctrl+F: 相当于右箭头键,用于将光标向右移动一格
ctrl+H: 删除光标前一个字符,同backspace键相同
Ctrl+J: 相当于回车键
ctrl+K: 清除光标后至行尾的内容
ctrl+L: 清屏,相当于clear
Ctrl+P 相当于上箭头键,即显示上一个命令
Ctrl+N 相当于下箭头键,即显示下一个命令
ctrl+R: 搜索之前打过的命令。会有一个提示,根据你输入的关键字进行搜索bash的history
ctrl+U: 清除光标前至行首间的所有内容
ctrl+W: 移除光标前的一个单词
ctrl+T: 交换光标位置前的两个字符
ctrl+Y: 粘贴或者恢复上次的删除
ctrl+D: 删除光标所在字母;注意和backspace以及ctrl+h的区别,这2个是删除光标前的字符
ctrl+F: 光标右移
ctrl+Z: 把当前进程转到后台运行,使用fg命令恢复,或者使用bg命令后台运行
目录和文件
类Unix系统目录结构
ubuntu没有盘符这个概念,只有一个根目录/,所有文件都在它下面
/ 根目录
bin //系统可执行程序,如命令
boot //内核和启动程序,所有和启动相关的文件都保存在这里
grub //引导器相关文件
dev //设备文件
etc //系统软件的启动和配置文件,系统在启动过程中需要读取的文件都在这个目录。如LILO参数、用户账户和密码。
home //用户的主目录。下面是自己定义的用户名的文件夹
lib //系统程序库文件,这个目录里存放着系统最基本的动态链接共享库,类似于Windows下的system32目录,几乎所有的应用程序都需要用到这些共享库。
media //挂载媒体设备,如光驱、U盘等
mnt //目录是让用户临时挂载别的文件系统,如挂载Windows下的某个分区,ubuntu默认还是挂载在/media目录。
opt //可选的应用软件包(很少使用)
proc //这个目录是系统内存的映射,我们可以直接访问这个目录来获取系统信息。也就是说,这个目录的内容不在硬盘上而是在内存里。
sbin //管理员系统程序
selinux
srv
sys //udev用到的设备目录树,/sys反映你机器当前所接的设备
tmp //临时文件夹
usr //这是个最庞大的目录,我们要用到的很多应用程序和文件几乎都存放在这个目录下。]
bin //应用程序
game //游戏程序
include //add by ray 应用程序的库的头文件
lib //应用程序的库文件
lib64
local //包含用户程序等
sbin //管理员应用程序
用户目录
位于/home/user,称之为用户工作目录或家目录,表示方式:
/home/user
~
相对路径和绝对路径
绝对路径
从/目录开始描述的路径为绝对路径,如:
cd /home
ls /usr
相对路径
从当前位置开始描述的路径为相对路径,如:
cd ../../
ls abc/def
.和..
每个目录下都有.和..;. 表示当前目录;.. 表示上一级目录,即父目录;根目录下的.和..都表示当前目录
ls [OPTION]… [FILE]…
ls是英文单词list的简写,其功能为列出目录的内容。这是用户最常用的一个命令,因为用户需要不时地查看某个目录的内容。该命令类似于DOS下的dir命令。 对于每个目录,该命令将列出其中的所有子目录与文件。对于每个文件,ls将输出其文件名以及所要求的其他信息。默认情况下,输出条目按字母顺序排序。当未给出目录名或是文件名时,就显示当前目录的信息。
主要的OPTION有:
-a 列出隐藏文件,文件中以“.”开头的均为隐藏文件,如:~/.bashrc
-l 列出文件的详细信息
-R 连同子目录中的内容一起列出
用ls -l命令显示的信息中,开头是由10个字符构成的字符串,其中第一个字符表示文件类型,它可以是下述类型之一:
- 普通文件
d 目录
l 符号链接
b 块设备文件
c 字符设备文件
s socket文件,网络套接字
p 管道
后面的9个字符表示文件的访问权限,分为3组,每组3位。第一组表示文件属主的权限,第二组表示同组用户的权限,第三组表示其他用户的权限。每一组的三个字符分别表示对文件的读、写和执行权限。各权限如下所示:
r 读
w 写
x 可执行。对于目录,表示进入权限。
s 当文件被执行时,把该文件的UID或GID赋予执行进程的UID(用户ID)或GID(组 ID)。
t 设置标志位(sticky bit)。如果是有sticky bit的目录,在该目录下任何用户只要有适当的权限即可创建文件,但文件只能被超级用户、目录拥有者或文件属主删除。如果是有stickybit的可执行文件,在该文件执行后,指向其正文段的指针仍留在内存。这样再次执行它时,系统就能更快地装入该文件。
- 没有相应位置的权限。
访问权限后面的数字表示与该文件共享inode的文件总数,即硬链接数(参见下面ln命令)。
which
-
功能说明:查找文件、显示指定命令路径
-
语 法:which 可执行文件名称
-
补充说明:which指令会在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果
-
参 数:
-n 指定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名。 -p 与-n参数相同,但此处的包括了文件的路径。 -w 指定输出时栏位的宽度。 -V 显示版本信息
-
示 例:which ls
pwd 查看当前所在路径
mkdir
-
命令功能:命令用来创建指定的名称的目录,要求创建目录的用户在当前目录中具有写权限,并且指定的目录名不能是当前目录中已有的目录(区分大小写)。
-
语 法:mkdir [OPTION] DIRECTORY…
-
命令参数:
-m, --mode=模式,设定权限<模式> (类似 chmod),而不是 rwxrwxrwx 减 umask -p, --parents 可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录; -v, --verbose 每次创建新目录都显示信息 --help 显示此帮助信息并退出 --version 输出版本信息并退出
-
示 例:mkdir -p test2/test22
rmdir
功能说明:该命令从一个目录中删除一个或多个子目录项,删除某目录时也必须具有对父目录的写权限
语 法:rmdir [OPTION]… DIRECTORY…
补充说明:不能删除非空目录
参 数:
-p 递归删除目录dirname,当子目录删除后其父目录为空时,也一同被删除。如果整个路径被删除或者由于某种原因保留部分路径,则系统在标准输出上显示相应的信息。
-v, --verbose 显示指令执行过程
示 例:rmdir -p logs
rm
-
功能说明:删除一个目录中的一个或多个文件或目录,如果没有使用-r选项,则rm不会删除目录。如果使用 rm 来删除文件,通常仍可以将该文件恢复原状。
-
语 法:rm [选项] 文件…
-
补充说明: rm是一个危险的命令,使用的时候要特别当心,尤其对于新手,否则整个系统就会毁在这个命令(比如在/(根目录)下执行rm * -rf)。
-
参 数:
-f, --force 忽略不存在的文件,从不给出提示。 -i, --interactive 进行交互式删除 -r, -R, --recursive 指示rm将参数中列出的全部目录和子目录均递归地删除。 -v, --verbose 详细显示进行的步骤 --help 显示此帮助信息并退出 --version 输出版本信息并退出
-
示 例:rm -- -f 删除以-f开头的文件
touch
-
功能说明:touch命令不常用,一般在使用make的时候可能会用到,用来修改文件时间戳,或者新建一个不存在的文件
-
语 法:touch [选项]... 文件...
-
补充说明: touch命令参数可更改文档或目录的日期时间,包括存取时间和更改时间。
-
参 数:
-a 或--time=atime或--time=access或--time=use 只更改存取时间。 -c 或--no-create 不建立任何文档。 -d 使用指定的日期时间,而非现在的时间。 -f 此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题。 -m 或--time=mtime或--time=modify 只更改变动时间。 -r 把指定文档或目录的日期时间,统统设成和参考文档或目录的日期时间相同。 -t 使用指定的日期时间,而非现在的时间。
-
示 例:
touch log2012.log log2013.log 创建不存在的文件 touch -r log.log log2012.log 更新log.log的时间和log2012.log时间戳相同 touch -t 201211142234.50 log.log 设定文件的时间戳
mv
-
功能说明:用来移动文件或者将文件改名
-
语 法:mv [选项] 源文件或目录 目标文件或目录
-
补充说明: 视mv命令中第二个参数类型的不同(是目标文件还是目标目录),mv命令将文件重命名或将其移至一个新的目录中。在跨文件系统移动文件时,mv先拷贝,再将原有文件删除,而链至该文件的链接也将丢失。
-
参 数:
-b :若需覆盖文件,则覆盖前先行备份。 -f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖; -i :若目标文件 (destination) 已经存在时,就会询问是否覆盖! -u :若目标文件已经存在,且 source 比较新,才会更新(update) -t : --target-directory=DIRECTORY move all SOURCE arguments into DIRECTORY,即指定mv的目标目录,该选项适用于移动多个源文件到一个目录的情况,此时目标目录在前,源文件在后。
-
示 例:
mv test.log test1.txt 文件改名 mv test1.txt test3 移动文件
find
- 功能说明:
- 语 法:
- 补充说明:
- 参 数:
- 示 例:
find
- 功能说明:
- 语 法:
- 补充说明:
- 参 数:
- 示 例:
cd change dir 改变当前所在路径
pwd 查看当前所在路径
网友评论