学习笔记(Linux基本指令)
1.ubantu和Linux
严格来讲,Linux这个词本身只表示Linux内核,但实际上人们已经习惯了用Linux来形容整个基于Linux内核,并且使用GNU 工程各种工具和数据库的操作系统。Linux系统是个统称,它有Red Hat、Debian、Suse、Ubuntu等发行版本,它们都是用的Linux内核,都是Linux系统。对于ubuntu而言,就是linux操作系统的具体,而linux对于ubuntu来说就是他的抽象。Ubantu是使用Linux内核的操作系统,是Linux的一个发行版本。
ubuntu 文件目录结构
不同于Windows, Linux没有盘符这个概念,只有一个根目录,所有文件都在它(/)下面,每个用户都是在/home目录下面建立自己的文件夹,根目录是整个系统最重要的一个目录,因为不但所有的目录都是由根目录衍生出来的, 同时根目录也与开机/还原/系统修复等动作有
关。
其他目录:
/bin 系统有很多放置执行档的目录,但/bin比较特殊。因为/bin放置的是在单人维护模式下还能够被操作的指令。在/bin底下的指令可以被root与一般帐号所使用,主要有:cat,chmod(修改权限), chown, date, mv, mkdir, cp, bash等等常用的指令。
/boot 主要放置开机会使用到的档案,包括Linux核心档案以及开机选单与开机所需设定档等等。Linux kernel常用的档名为:vmlinuz ,如果使用的是grub这个开机管理程式,则还会存在/boot/grub/这个目录。
/dev 在Linux系统上,任何装置与周边设备都是以档案的型态存在于这个目录当中。 只要通过存取这个目录下的某个档案,就等于存取某个装置。比要重要的档案有/dev/null, /dev/zero, /dev/tty , /dev/lp*, / dev/hd*, /dev/sd*等等
/etc 系统主要的设定档几乎都放置在这个目录内,例如人员的帐号密码档、各种服务的启始档等等。 一般来说,这个目录下的各档案属性是可以让一般使用者查阅的,但是只有root有权力修改。
/etc/X11/ 与X Window有关的各种设定档都在这里,尤其是xorg.conf或XF86Config这两个X Server的设定档。
/home 这是系统预设的使用者家目录(home directory)。 在你新增一个一般使用者帐号时,预设的使用者家目录都会规范到这里来。比较重要的是,家目录有两种代号:~ :代表当前使用者的家目录,而 ~guest:则代表用户名为guest的家目录。
/lib 系统的函式库非常的多,而/lib放置的则是在开机时会用到的函式库,以及在/bin或/sbin底下的指令会呼叫的函式库而已 。
/mediamedia 是媒体的英文,这个/media底下放置的就是可移除的装置。 包括软碟、光碟、DVD等等装置都暂时挂载于此。
/mnt 如果妳想要暂时挂载某些额外的装置,一般建议妳可以放置到这个目录中。在古早时候,这个目录的用途与/media相同了。 只是有了/media之后,这个目录就用来暂时挂载用了。
/opt 这个是给第三方协力软体放置的目录 。 什么是第三方协力软体啊?举例来说,KDE这个桌面管理系统是一个独立的计画,不过他可以安装到Linux系统中,因此KDE的软体就建议放置到此目录下了。 另外,如果妳想要自行安装额外的软体(非原本的distribution提供的),那么也能够将你的软体安装到这里来。 不过,以前的Linux系统中,我们还是习惯放置在/usr/local目录下。
/root 系统管理员(root)的家目录。 之所以放在这里,是因为如果进入单人维护模式而仅挂载根目录时,该目录就能够拥有root的家目录,所以我们会希望root的家目录与根目录放置在同一个分区中。
/sbinLinux 有非常多指令是用来设定系统环境的,这些指令只有root才能够利用来设定系统,其他使用者最多只能用来查询而已。放在/sbin底下的
srvsrv 可以视为service的缩写,是一些网路服务启动之后,这些服务所需要取用的资料目录。 常见的服务例如WWW, FTP等等。 举例来说,WWW伺服器需要的网页资料就可以放置在/srv/www/里面。呵呵,看来平时我们编写的代码应该放到这里了。
/tmp 这是让一般使用者或者是正在执行的程序暂时放置档案的地方。这个目录是任何人都能够存取的,所以你需要定期的清理一下。当然,重要资料不可放置在此目录啊。 因为FHS甚至建议在开机时,应该要将/tmp下的资料都删除。
linux快捷键和常见终端命令
打开终端:Crtl + ALT + T
pwd:查看”当前工作目录“的完整路径,
参数:
-L:–logical,显示当前的路径,有连接文件时,直接显示连接文件的路径,(不加参数时默认此方式),参考示例1。
-p:–physical,显示当前的路径,有连接文件时,不使用连接路径,直接显示连接文件所指向的文件,参考示例2。 当包含多层连接文件时,显示连接文件最终指向的文件
date:显示和设置系统日期和时间。
参数:
-d datestr, --date datestr 显示由datestr描述的日期
-s datestr, --set datestr 设置datestr 描述的日期
-u, --universal 显示或设置通用时间
history:显示指定数目的指令命令,读取历史命令文件中的目录到历史命令缓冲区,和将历史命令缓冲区中的目录写入命令文件。
参数:
-c:清空当前历史命令;
-a:将历史命令缓冲区中命令写入历史命令文件中;
-r:将历史命令文件中的命令读入当前历史命令缓冲区;
-w:将当前历史命令缓冲区命令写入历史命令文件中。
cd:cd+路径,跳转到制定路径
rm:rm + 参数 + 路径,删除Linux系统中的文件或目录。
参数:
-f --force 强制删除,忽略不存在的文件,从不给出提示
-i --interactive 交互模式删除文件,删除文件前给出提示。
-r --recursive 递归的删除目录下面文件以及子目录下文件。
-R --recursive 递归的删除目录下面文件以及子目录下文件。
-v --verbose 显示运行时详细信息
–help 显示命令在线帮助
–version 显示命令版本信息
vi:vi编辑器是所有Unix及Linux系统下标准的编辑器
- 命令行模式command mode)
控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到 last line mode。 - 插入模式(Insert mode)
只有在Insert mode下,才可以做文字输入,按「ESC」键可回到命令行模式。 - 底行模式(last line mode)
将文件保存或退出vi,也可以设置编辑环境,如寻找字符串、列出行号……等。
不过一般我们在使用时把vi简化成两个模式,就是将底行模式(last line mode)也算入命令行模式command mode)
简单操作:
a) 进入vi
在系统提示符号输入vi及文件名称后,进入vi之后,是处于「命令行模式(command mode)」,您要切换到「插入模式(Insert mode)」才能够输入文字。初次使用vi的人都会想先用上下左右键移动光标,结果电脑一直哔哔叫,把自己气个半死,所以进入vi后,先不要乱动,转换到「插入模式(Insert mode)」再说吧!
b) 切换至插入模式(Insert mode)编辑文件
在「命令行模式(command mode)」下按一下字母「i」就可以进入「插入模式(Insert mode)」,这时候你就可以开始输入文字了。
c) Insert 的切换
目前处于「插入模式(Insert mode)」,就只能一直输入文字,如果发现输错了字!想用光标键往回移动,将该字删除,就要先按一下「ESC」键转到「命令行模式(command mode)」再删除文字。
d) 退出vi及保存文件
在「命令行模式(command mode)」下,按一下「:」冒号键进入「Last line mode」,例如:
: w filename (输入 「w filename」将文章以指定的文件名filename保存)
: wq (输入「wq」,存盘并退出vi)
: q! (输入q!, 不存盘强制退出vi)
ls:是list的缩写,格式:ls [选项] [文件名],用来打印当前目录清单或者打印出指定目录下的文件及文件清单。ls命令在打印文件清单时,还可以查看文件权限、目录信息等等。
参数:
-a, --all
do not ignore entries starting with .(列出目录下的所有文件,包括以.开头的隐含文件)
-A, --almost-all
do not list implied . and …(列出除了.及…以外的所有文件)
–author
with -l, print the author of each file(打印出每一个文件的作者)
-b, --escape
print octal escapes for nongraphic characters(不能输出的字符用反斜杠加字符编号的形式输出)
–block-size=SIZE
use SIZE-byte blocks.(使用SIZE-byte的大小的字节为单位)
-B, --ignore-backups
do not list implied entries ending with ~(不列出任何以波浪号结束的项目)
-c with -lt: sort by, and show, ctime (time of last modification of file status information) with -l: show ctime and sort by name otherwise: sort by ctime
(输出文件的ctime(文件状态最后更改的时间),并根据ctime排序)
-C list entries by columns(由上至下的列出项目)
–color[=WHEN]
colorize the output. WHEN defaults to ‘always’ or can be ‘never’ or ‘auto’. More info below(控制是否使用色彩分辨文件。WHEN可以是always、never或者auto其中一个)
-d, --directory
list directory entries instead of contents, and do not dereference symbolic links
(将目录像文件一样显示,而不显示目录下面的内容)
-D, --dired
generate output designed for Emacs’ dired mode(产生适合Emacs的dired模 式使用的结果)
-f do not sort, enable -aU, disable -ls --color(对输出的文件不进行排序,-aU选线生效,-ls选项失效)
-F, --classify
append indicator (one of /=>@|) to entries(加上文件类型的指示符号(/=@| 其中一个))
–file-type
likewise, except do not append ‘’(和-F一样,除了不追加“”)
–format=WORD
across -x, commas -m, horizontal -x, long -l, single-column -1, verbose -l, vertical -C(–format=关键之,关键字可以是“across -x, commas -m, horizontal -x, long -l, single-column -1, verbose -l, vertical -C”)
–full-time
like -l --time-style=full-iso(即 -l --time-style=full-iso)
-g like -l, but do not list owner(像-l,但是不列出所有者)
–group-directories-first
group directories before files.(组目录在文件目录之前)
augment with a --sort option, but any use of --sort=none (-U) disables grouping
(用-sort选项进行扩展,但任何使用-sort=none(-U)禁用组)
-G, --no-group
in a long listing, don’t print group names(不列出任何有关于组的信息)
-h, --human-readable
with -l, print sizes in human readable format (e.g., 1K 234M 2G)(类似于-l,以人容易理解的格式列出文件大小)
–si likewise, but use powers of 1000 not 1024(像-h,但是文件大小取1000而不是1024)
-H, --dereference-command-line
follow symbolic links listed on the command line(使用命令列中的符号链接指示的 真正目的地)
–dereference-command-line-symlink-to-dir
follow each command line symbolic link that points to a directory(遵循指向目录的 每个命令行符号链接)
–hide=PATTERN
do not list implied entries matching shell PATTERN (overridden by -a or -A)(不 要列出与shell模式匹配的隐含条目(由-a或-A重写))
–indicator-style=WORD
append indicator with style WORD to entry names: none (default), slash (- p), file-type (–file-type), classify (-F)(指定在每个项目名称后加上指示符号<方 式>:none (default), slash (-p), file-type (–file-type), classify (-F))
-i, --inode
print the index number of each file(输出每个文件的inode号)
-I, --ignore=PATTERN
do not list implied entries matching shell PATTERN(不列出任何符合sell万用字 符<样式>的项目)
-k like --block-size=1K(像 --block-size=1K,以k字节的形式表示文件的大小)
-l use a long listing format(使用长格式,即列出文件详细信息)
-L, --dereference
when showing file information for a symbolic link, show information for the file the link references rather than for the link itself(当显示符号连接的文件信息时,显示符号链接所指示的对象而并非符号链接本身的信息)
-m fill width with a comma separated list of entries(所有项目以逗号隔开,并填满整行行宽)
-n, --numeric-uid-gid
like -l, but list numeric user and group IDs(类似-l,用数字UID和GID代替名称)
-N, --literal
print raw entry names (don’t treat e.g. control characters specially)(印出未经处理 的项目名称,(例如不特别处理控制字符))
-o like -l, but do not list group information(类似-l,但是不现实组信息)
-p, --indicator-style=slash
append / indicator to directories(向目录追加/指示器)
-q, --hide-control-chars
print ? instead of non graphic characters(以?字符代替无法打印的字符)
–show-control-chars
show non graphic characters as-is (default unless program is ‘ls’ and output is a terminal)(直接显示无法打印的字符(这是默认方式,除非调用的程序名称时‘ls’而且在终端机画面输出结果))
-Q, --quote-name
enclose entry names in double quotes(将项目名称打上双引号)
–quoting-style=WORD
use quoting style WORD for entry names: literal, locale, shell, shell-always, c, escape(使用指定的quotin方式类型:literal, locale, shell, shell-always, c, escape)
-r, --reverse
reverse order while sorting(以相反次序排列)
-R, --recursive
list subdirectories recursively(同时列出所有子目录层)
-s, --size
print the allocated size of each file, in blocks(以块大小为单位列出所有文件的大小)
-S sort by file size(根据文件大小排序)
–sort=WORD
sort by WORD instead of name: none -U, extension -X, size -S, time -t, version -v(根据关键词代替名字排序:none -U, extension -X, size -S, time -t, version -v)
–time=WORD
with -l, show time as WORD instead of modification time: atime -u, access -u, use -u, ctime -c, or status-c; use specified time as sort key if --sort=time(类似于-l,根据关键词显示时间代替默认的修改时间:atime -u, access -u, use -u, ctime -c, or status)
–time-style=STYLE
with -l, show times using style STYLE: full-iso, long-iso, iso, locale, +FORMAT. FORMAT is interpreted like ‘date’; if FORMAT is FORMAT1FORMAT2, FORMAT1 applies to non-recent files and FORMAT2 to recent files; if STYLE is prefixed with ‘posix-’, STYLE takes effect only outside the POSIX locale(显示时间使用style:…………)
-t sort by modification time(以文件修改时间排序)
-T, --tabsize=COLS
assume tab stops at each COLS instead of 8(显示我文件或目录最后被访问的时间)
-u with -lt: sort by, and show, access time with -l: show access time and sort by name otherwise: sort by access time(-u配合-lt:显示访问时间而依访问时间排序;
配合-l:显示访问时间但根据名称排序;否则,根据访问时间排序)
-U do not sort; list entries in directory order(不进行排序,依系统原有的次序列出项目)
-v natural sort of (version) numbers within text(根据文件版本进行排序)
-w, --width=COLS
assume screen width instead of current value(自行指定屏幕的宽度而不使用目前的数值)
-x list entries by lines instead of by columns(逐行列出项目而不是逐栏列出)
-X sort alphabetically by entry extension(根据扩展名排序)
-1 list one file per line(每行只列出一个文件)
cp:是把 一个代表的文件复制到另一个目录中。有时候,我们想把整个目录复制到另外一个目录下,这个时候,我们需要加上 -r 或 -R 或 --recursive 选项
格式:
cp 源文件 目标文件(夹)
mkdir:在当前目录下新建文件夹
cat:cat命令主要用来查看文件内容,创建文件,文件合并,追加文件内容等功能。
1、cat f1.txt,查看f1.txt文件的内容。
2、cat -n f1.txt,查看f1.txt文件的内容,并且由1开始对所有输出行进行编号。
3、cat -b f1.txt,查看f1.txt文件的内容,用法与-n相似,只不过对于空白行不编号。
4、cat -s f1.txt,当遇到有连续两行或两行以上的空白行,就代换为一行的空白行。
5、cat -e f1.txt,在输出内容的每一行后面加一个$符号。
6、cat f1.txt f2.txt,同时显示f1.txt和f2.txt文件内容,注意文件名之间以空格分隔,而不是逗号。
7、cat -n f1.txt>f2.txt,对f1.txt文件中每一行加上行号后然后写入到f2.txt中,会覆盖原来的内容,文件不存在则创建它。
8、cat -n f1.txt>>f2.txt,对f1.txt文件中每一行加上行号后然后追加到f2.txt中去,不会覆盖原来的内容,文件不存在则创建它。
clear:这个命令将会刷新屏幕,本质上只是让终端显示页向后翻了一页,如果向上滚动屏幕还可以看到之前的操作信息。一般都会用这个命令。
poweroff:立刻关机
shutdown:关机或重启
-c:取消已经执行的 shutdown 命令;
-h:关机;
-r:重启;
chmod:用于改变linux系统文件或目录的访问权限。
参数:
-c 当发生改变时,报告处理信息
-f 错误信息不输出
-R 处理指定目录以及其子目录下的所有文件
-v 运行时显示详细处理信息
source:通常用于重新执行刚修改的初始化文件,使之立即生效,而不必注销并重新登录。
用法:
source filename 或 . filename