4.命令历史
history:查看命令历史
-c:清空命令历史
-d:OFFSET[n]:删除指定位置的命令
-w:保存命令历史至历史文件
命令历史的使用技巧:
!n:执行命令历史中的第n条命令
!-n:执行命令历史中倒数第n条命令
!!:执行上一条命令
!string:执行命令历史中最近一个以指定字符串开头的命令
!$:引用前一个命令的最后一个参数
[root@Kevin ~]# nano /tmp/inittab
[root@Kevin ~]# nano !$
nano /tmp/inittab
Esc,.:先按Esc,放开,再按点,一样引用前一个命令的最后一个参数
二,基本文件管理
1.ls
ls是"List"的意思,列出指定路径下的文件。
ls -l:长格式显示
-h:作单位换算,将byte换算成K,M,G等.
-a:列出全部文件,包括以.开头的隐藏文件
-d:列出目录自身属性
-i:index node,inode每个文件都有一个数字标识符,就是inode.也能够称为索引节点号,-i 就是显示索引节点号.
-t:以时间前后顺序显示结果
[root@Kevin ~]# ls -l
drwxr-xr-x. 2 root root 4096 Nov 4 23:10 bash
在ls -l命令所列出的文件属性中,各字段含义以下:
-:普通文件(f)
d:目录文件
b:块设备文件(block)
c:字符设备文件(character)
l:符号连接文件(symbolic link file)
p:命令管道文件:(pipe)
s:套接字文件(socket)
文件权限:9位,每3位一组,每一组:rwx(读[read],写[write],执行[execute],)
表示有多少个文件名链接到此节点(inode),即链接数
文件的属主(owner)
文件的属组(group)
文件大小(size)
,单位是字节(byte)
文件名
2.mkdir
mkdir是"make directory"的意思,新建目录
[root@Kevin ~]#mkdir aming ##建立一个名文aming的目录
[root@Kevin ~]#mkdir a b c ##依次在当前目录建立a b c三个同级目录
[root@Kevin ~]#mkdir -p aa/bb/cc ##递归建立aa bb cc目录,aa目录包含bb,bb目录包含cc
3.rmdir
rmdir是"remove directory"的意思,删除目录,用法同上,-p选项略有不一样
[root@Kevin ~]#rmdir -p aa/bb/cc ##会递归删除目录aa bb cc,可是前提是目录都为空,若是不为空就没法删除。
4.rm
rm是"remove"的意思,意为删除
rm -r:递归删除
-f:强制删除,不提示
-rf:递归并强制删除,不提示
5.cp cp
cp是"copy"的意思,意为复制
# cp -r aaa/bbb . ##将aaa下的bbb目录复制到当前目录,加上
-r参数能够复制目录
# ls
2.txt aaa bbb
# cp aaa/1.txt ./2.txt ##将1.txt复制到当前目录并重命名为2.txt
# ls
2.txt aaa
6.mv
mv是"move"的意思,意为移动,至关于windows中的剪切
[root@Kevin aa]# mv aaa/bbb . ##将aaa目录下的bbb目录移动到当前目录下
[root@Kevin aa]# ls
1.txt 2.txt aaa bbb
[root@Kevin aa]# mv 2.txt 3.txt ##将文件2.txt重命名为3.txt
[root@Kevin aa]# ls
1.txt 3.txt aaa bbb
7.touch
#touch a ##建立文件a,若是文件a已存在,则会更改文档的日期时间,包括存取时间和更改时间。固然对目录也有效。
三,查看文本经常使用命令
查看文本经常使用的命令有cat、tac、more、less、head、tail、od等
- cat:由第一行开始显示文件内容。
- tac:从最后一行开始显示,能够看出tac是cat的。
- more:一页一页地显示文件内容。
- less:与more相似,可是比more更好的是,它能够往前翻页!
- head:只看头几行。
- tail:只看结尾几行。
- od:以二进制的方式读取文件内容!
1.cat:concatenate,链接并显示文本内容。
]# cat -n /etc/issue ##显示行号,跟内容无关,只是对显示内容编号
1 CentOS release 6.4 (Final)
2 Kernel \r on an \m
3
对于Linux系统而言,全部文本文件行结束符是$,而windows的结束符是$+Enter.
]# cat -E /etc/issue ##显示换行符
CentOS release 6.4 (Final)$
Kernel \r on an \m$
$
- 这里若是直接输入cat,没接参数的话,从标准输入读取内容,并显示到标准输出,须要用Ctrl+C中断。
- 若是输入命令,输入一半不想执行,也能够用Ctrl+C中断,而不用删回从新输入。
- 若是在终端中输入的话,想查看输出的上下文,能够按Shift+page up/page down,不过若是文件比较大的话,由于内存控制,会显示不完。
2.tac:反向显示文本。
[root@Kevin ~]# tac /etc/issue
Kernel \r on an \m
CentOS release 6.4 (Final)
- 与cat相反,tac是由最后一行到第一行反向在屏幕上显示出来的。
3.more:分页显示文本,向后翻。
[root@Kevin ~]# more /etc/man.config
#
# Generated automatically from man.conf.in by the
# configure script.
#
# man.conf from man-1.6f
#
# For more information about this file, see the man pages man(1)
# and man.conf(5).
#
# This file is read by man to configure the default manpath (also used
--More--(5%)
- 空格键(space):表明向下翻页;
- Enter:表明向下滚动一行;
- /字符串:表明在这个显示内容当中,向下查询"字符串"这个关键字;
- :f:马上显示出文件名以及目前显示的行数;
- q:表明马上离开more,再也不显示该文件内容;
- b或者Ctrl+b:表明往回翻页,不
4.less:分页显示文本;翻到最后不会退出,要按q退出。
- PageDown:向下翻动一页;也可使用空格,space;也可使用f
- PageUp:向上翻动一页;也可使用b或Ctrl+b
- /字符串:向下查询"字符串"的功能;
- ?字符串:向上查询"字符串"的功能;
- n:重复前一个查询(与/或?有关);
- N:反向重复前一个查询(与/或?有关);
- q:离开
- j:向下滚动一行
- k:向上滚动一行
- shift+G,最下面
- shift+g,最上面
5.head:查看前n行(默认n=10)
]# head /etc/inittab ##默认显示前10行
]# head -n 20 /etc/inittab ##显示前20行,也能够直接head -20 /etc/inittab
]# head -n -100 /etc/inittab ##后面100行不显示,只显示前面的内容。
6.tail:显示后n行(默认n=10)
]# tail -f /var/log/messages ##持续监测messages文件,不退出,等待显示后续追加至此文件的新内容,Ctrl+C结束
Aug 18 19:56:10 Kevin NetworkManager[1367]: <info> (eth0): device state change: 2 -> 3 (reason 40)
Aug 18 19:56:10 Kevin kernel: e1000: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: None
Aug 19 03:52:34 Kevin kernel: pickup[4695]: segfault at 0 ip (null) sp bfeb1aac error 14 in libm-2.12.so[12a000+28000]
Aug 19 04:23:53 Kevin kernel: e1000: eth0 NIC Link is Down
Aug 19 04:23:53 Kevin NetworkManager[1367]: <info> (eth0): carrier now OFF (device state 3)
Aug 19 04:23:53 Kevin NetworkManager[1367]: <info> (eth0): device state change: 3 -> 2 (reason 40)
Aug 19 04:23:53 Kevin NetworkManager[1367]: <info> (eth0): deactivating device (reason: 40).
Aug 19 04:23:59 Kevin kernel: e1000: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: None
Aug 19 04:23:59 Kevin NetworkManager[1367]: <info> (eth0): carrier now ON (device state 2)
Aug 19 04:23:59 Kevin NetworkManager[1367]: <info> (eth0): device state change: 2 -> 3 (reason 40)
]# tail -n +100 /etc/man.config ##若是不知道有几行,想列出100行之后的内容
四,文本处理
文本处理经常使用命令:cut、join、sed、awk
1.cut:
-d:指定字段分隔符,默认是空格
-f:指定要显示的字段
[root@Kevin ~]# cut -d: -f1,7 /etc/passwd ##显示以:分割的第一个和第七个字段
root:/bin/bash
bin:/sbin/nologin
daemon:/sbin/nologin
adm:/sbin/nologin
lp:/sbin/nologin
]# cut -d: -f1-3 /etc/passwd ##显示第一个字段到第三个字段
]# cut -d" " -f1-3 a.txt ##以空格为分隔符,显示第一个字段到第三个字段
五,文本排序
1.sort:默认按ASCII表排序,其中-f参数忽略大小写
~]# sort sort.test ##按ASCII表排序
022
21234
213
232
~]# sort -n sort.test ##按数值大小排序
022
34
34
213
~]# sort -n -r sort.test ##按数值大小,而且降序排序
32423
21234
4546
3435
~]# sort -t: -k3 /etc/passwd ##-t:指定字段分隔符,-k指定以哪一个字段为准
root:x:0:0:root:/root:/bin/bash
uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
usbmuxd:x:113:113:usbmuxd user:/:/sbin/nologin
bin:x:1:1:bin:/bin:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
gopher:x:13:30:gopher:/var/gopher:/sbin/nologin
~]# sort -n -u sort.test ##其中,-u指unique,相同项只显示一次,即去掉重复项
022
34
213
232
3435
2.uniq:就是unique的意思
~]# sort 1.txt
022
21234
213
232
~]# uniq sort.test ##未作排序,重复项不显示,可是只限于相邻的重复项
32423
213
~]# uniq -c sort.test ## 显示文件中行重复的次数
~]# uniq -d sort.test ## 只显示重复的行
六,文本统计
1.wc(word count)
~]# wc /etc/fstab ##这里意思是15行,78个单词,779个字节
15 78 779 /etc/fstab
~]# wc -l /etc/fstab ##显示行数
15 /etc/fstab
~]# wc -w /etc/fstab ##显示单词数
78 /etc/fstab
~]# wc -c /etc/fstab ##显示字节数
779 /etc/fstab
~]# wc -m /etc/fstab ##显示字符数,其实这里字节就是字符
779 /etc/fstab
~]# wc -L /etc/fstab ##最长的一行包含93个字符
93 /etc/fstab
七,字符处理命令
1.tr:转换或删除字符, tr[option]... SET1[SET2]
[root@Kevin ~]# tr 'abc' 'ABc' ##转换字符abc为ABc
abc
ABc
account
Account
begin
Begin
[root@Kevin ~]# tr 'a-z' 'A-Z' < /etc/passwd ##将passwd文件中,a到z的全部字母转换成大写
[root@Kevin ~]# tr -d 'ab' ##删除出如今字符集中的ab,若是直接tr -d就是删除字符集中全部字符
aaaaaaabvc
vc
bfdsffa
fdsff
ab
aaaaaaabbbbc
c
split 切割大文件
[root@kevin ~]#split -b70k 2.txt ##将2.txt文件按大小分割成N个文件,每一个文件72k,默认命名为xaa xab xac....
[root@kevin ~]#split -l500 2.txt kevin ##将2.txt文件按行切割成N个文件,每一个文件500行,命名为kevinaa kevinab kevinac...
文件查找:
locate:
locate 数据库由另外一个 叫作 updatedb 的程序建立。
这个数据库不是持续更新的,若是新建立的文件去用locate查找,是找不到的,由于没有更新updatedb数据库,这时候需用手动更新一下.
非实时,模糊匹配,查找是根据全系统文件数据库进行的;
updatedb:
手动生成文件数据库
[root@www ~]# locate passwd |head -5 ##依据updatedb,能够手动更新updatedb
/etc/passwd
/etc/passwd-
/etc/pam.d/passwd
/etc/security/opasswd
/lib64/security/pam_passwdqc.so
[root@www ~]# updatedb ##手动更新updatedb,updatedb并非实时更新的
默认天天凌晨4点自动更新.
1.文件的操做命令:
ls -ld 目录
du -sh 查看目录和文件大小
touch 建立一个文件
mkdir ---mkdir aaa/ppp/ccc -p 递归建立目录
cat 命令: -n 查看文件时,把行号也显示到屏幕上
-A 显示全部东西出来,包括特殊字符
tac命令:用来把文件的内容显示在屏幕上,只不过是先显示最后一行,而后是倒数第二行,最后显示的是第一
行。倒叙显示
more 也是用来查看一个文件的内容,后面直接跟文件名,当文件内容太多,一屏幕不能占下,而你用 ‘cat’ 确定是看不前面的内容的,那么使用 ‘more’ 就能够解决这个问题了。当看完一屏后按空格键继续看下一屏。但看完全部内容后就会退出。若是你想提早退出,只需按 ‘q’ 键便可。
less做用跟more同样,后面直接跟文件名,但比more好在能够上翻,下翻。空格键一样能够翻页,而按 ‘j’ 键能够向下移动(按一下就向下移动一行),按 ‘k’ 键向上移动。在使用more和less查看某个文件时,你能够按一下 ‘/’ 键,而后输入一个word回车,这样就能够查找这个word了。若是是多个该word能够按 ‘n’ 键显示下一个。另外你也能够不按 ‘/’ 而是按 ‘?’ 后边一样跟word来搜索这个word,惟一不一样的是, ‘/’ 是在当前行向下搜索,而 ‘?’ 是在当前行向上搜索。
head命令:若是加 -n 选项则显示文件前n行。
tail命令:加-n 选项则显示文件最后n行。
加-f动态显示文件最后十行。
cp -r 表示拷贝目录(拷贝目录必须加-r) cp 来源文件 目标文件
test1 拷贝成test2 cp test1 test2
etho abc >filename # >符号表示重定向 把前面命令输出的类容写入后面的文件中
>>追加写入 >删除写入
(一个 ‘>>’ 这个符号跟前面介绍的 ‘>’ 的做用都是重定向,即把前面输出的东西输入到后边的文件中,只是 ‘>>’ 是追加的意思,而用 ‘>’ 若是文件中有内容则会删除文件中内容,而 ‘>>’ 则不会。)
cp -d 链接软链接硬链接 软链接跟window快捷方式类是
mv ---mv /home/yuananqin /home/piao 把yuananqin移动到piao中
mv /home/yuananqin/123.txt
mv 来源文件 目标文件
若是目标文件不存在既把:来源文件更名成目标文件名称
cat -n filename //显示几行
cat -A filename//显示全部东西包括特殊符号
rmdir 只能删除目录不能删除文件
rm -r跟rmdir同样 -rf不须要提示才加f
/bin/rm -r aaa 使用绝对路径 which rm .. alias
环境变量 PATH
which 用来查找某个命令的绝对路径
[root@localhost ~]# which rmdir
/bin/rmdir
host ~]# which rm alias rm='
[root@loca
lrm -i'
/bin/rm
h ls alias ls='ls --color=au
[root@localhost ~]# whi
cto'
/bin/ls
rm和ls 是两个特殊命令,使用alias命令作了别名 。咱们使用rm 实际使用的事"rm -i"
ls实际使用的事“ls --color=auto”‘alias’ 能够设置命令的别名也能够设置文件的别名
[root@localhost ~]# echo $PATH//etho表示打印的意思$表示后面链接的是变量
设置环境变量
[root@localhost ~]# PATH=$PATH:/root
修改Linux的PATH方法有三(添加用户的路径到PATH):
方法一: 直接在命令行中输入:#PATH=$PATH:/etc/apache/bin。这种方法只对当前会话有效,也就是说每当登出或注销系统后,PATH设置就会恢复原有设置。
方法二: 修改/etc/profile文件。在/etc/profile文件的适当位置添加PATH=$PATH:/etc/apache/bin (注意:=即等号两边不能有任何空格)。这种方法最好,除非你手动强制修改PATH的值。不然将不会被改变。
方法三: 修改用户目录下的.bash_profile:vi ~/.bash_profile,把用户想添加的路径添加到PATH后面。这种方法只针对用户起做用。 注意:若采用修改profile文件的方法改变PATH,则必须从新登陆才能生效,如下方法可简化工做: 若是修改了/etc/profile,那么编辑结束后执行source profile 或执行点命令:./profile,PATH的值就会当即生效了。这个方法的原理是再执行一次/etc/profile shell脚本,注意若是用sh /etc/profile是不行的,由于sh是在子shell进程中执行的,即便PATH改变了也不会反映到当前环境中,可是source是在当前shell进程中执行的,因此咱们能看到PATH的改变。
linux文件属性和目录管理:
用ls –l 查看当前目录下的文件时,共显示了9列内容(用空格划分列)node
第1列,包含有该文件类型和所属主、所属组以及其余用户对该文件的权限。共11位有的文件是10位,没有最后面的一位。 其中第一位用来描述该文件的类型。linux
‘d’ 表示该文件为目录;ios
‘-‘ 表示该文件为普通文件;shell
‘l’ 表示该文件为连接文件(linux file),上边提到的软连接即为该类型;数据库
‘b’ 表示该文件为块设备,好比 /dev/sda 就是这样的文件。apache
‘c’ 表示该文件为串行端口设备,例如键盘、鼠标。vim
‘s’ 表示该文件为套接字文件(socket),用于进程间通讯。windows
第2列,表示为连接占用的节点(inode), [1] 为目录时,一般与该目录底下还有多少目录有关系。bash
第3列,表示该文件的所属主。网络
第4列,表示该文件的所属组。
第5列,表示该文件的大小。
第6列、第7列和第8列为该文件的最近的修改日期,分别为月份日期以及时间,也就是所谓的mtime.
第9列,文件名。
更改文件的权限
文件权限 drwxr-xr-x
第一列表示文件类型
l 连接文件 b块设备文件 c字符文件 p管道文件 s套接字文件 -普通文件
后9段每三段一组 拥有者 拥有组 其余人权限 r w x读写执行
对于目录 具备x说明能够进入cd目录 ,rx 具备 cd 和ls读出目录, wx rm mv
rw 对于目录没有意义
chmod u g o 表示 拥有者, 拥有组, 其余other
chmod u=rwx filename
chmod g=x filename
chmod o=rwx filename
chmod ugo=r filename//组合模式
chmod u+w filename //加模式
chmod u-r filename
chmod o+x password
r 4 w 2 x 1
chmod 744 filename
更改文件的所属主 chown
语法: chown [ -R ] 帐户名 文件名或者 chown [ -R ] 帐户名:组名 文件名
-R选项只做用于目录,做用是级联更改,即不只更改当前目录,连目录里的目录或者文件所有更改。
chown user filename 更改文件的全部主
chown :usergroup filename 更改文件所属组
chown yuananqin:piao password 更改拥有者和拥有组
umask语法: umask xxx (这里的xxx表明三个数字)
1)若用户创建为普通文件,则预设 ‘没有可执行权限’, 只有’rw’两个权限。最大为666 (‘-rw-rw-rw-‘).
2)若用户创建为目录,则预设全部权限均开放,即777 (‘drwxrwxrwx’).
umask数值表明的含义为,上边两条规则中的默认值(文件为666,目录为777)须要减掉的权限。因此目录的权限为 'rwxrwxrwx' - '----w--w-' = 'rwxr-xr-x',普通文件的权限为 'rw-rw-rw-' - '----w--w-' = 'rw-r--r--'. umask的值是能够自定义的,好比设定umask 为 002,你再建立目录或者文件时,默认权限分别为 'rwxrwxrwx' - '-------w-' = 'rwxrwxr-x' 和 'rw-rw-rw-' - '-------w-' = 'rw-rw-r--'.
umask 0022 后三位 文件最高权限666? 目录最高权限777
建立一个文件默认权限是:拥有者-可读可写6 拥有组 -可读4 其余 -可读4
建立一个目录默认权限是:拥有者-可读可写可执行7 拥有组 -可读可执行5 其余 -可读可执行5
umask 能够在 /etc/bashrc 里面更改,预设状况下,root的umask为022,而通常使用者则为002
超级权限
一个文件都有一个全部者, 表示该文件是谁建立的. 同时, 该文件还有一个组编号, 表示该文件所属的组, 通常为文件全部者所属的组. 若是是一个可执行文件, 那么在执行时, 通常该文件只拥有调用该文件的用户具备的权限. 而setuid, setgid 能够来改变这种设置.
setuid: 设置使文件在执行阶段具备文件全部者的权限. 典型的文件是 /usr/bin/passwd. 若是通常用户执行该文件, 则在执行过程当中, 该文件能够得到root权限, 从而能够更改用户的密码.
setgid: 该权限只对目录有效. 目录被设置该位后, 任何用户在此目录下建立的文件都具备和该目录所属的组相同的组.
sticky bit: 该位能够理解为防删除位. 一个文件是否能够被某用户删除, 主要取决于该文件所属的组是否对该用户具备写权限. 若是没有写权限, 则这个目录下的全部文件都不能被删除, 同时也不能添加新的文件. 若是但愿用户可以添加文件但同时不能删除文件, 则能够对文件使用sticky bit位. 设置该位后, 就算用户对目录具备写权限, 也不能删除该文件.
下面说一下如何操做这些标志:
操做这些标志与操做文件权限的命令是同样的, 都是 chmod. 有两种方法来操做,
1) chmod u+s temp -- 为temp文件加上setuid标志. (setuid 只对文件有效)
chmod g+s tempdir -- 为tempdir目录加上setgid标志 (setgid 只对目录有效)
chmod o+t temp -- 为temp文件加上sticky标志 (sticky只对目录有效)
2) 采用八进制方式. 对通常文件经过三组八进制数字来置标志, 如 666, 777, 644等. 若是设置这些特殊标志, 则在这组数字以外外加一组八进制数字. 如 4666, 2777等. 这一组八进制数字三位的意义以下,
abc
a - setuid位, 若是该位为1, 则表示设置setuid
b - setgid位, 若是该位为1, 则表示设置setgid
c - sticky位, 若是该位为1, 则表示设置sticky
也就是说,若是有特殊权限时,第一位数字能够是0,1(--t),2(-s-),3(-st),4(s--),5(s-t),6(ss-),7(sst)
设置完这些标志后, 能够用 ls -l 来查看. 若是有这些标志, 则会在原来的执行标志位置上显示. 如
rwsrw-r-- 表示有setuid标志
rwxrwsrw- 表示有setgid标志
rwxrw-rwt 表示有sticky标志
那么原来的执行标志x到哪里去了呢? 系统是这样规定的, 若是原本在该位上有x, 则这些特殊标志显示为小写字母 (s, s, t). 不然, 显示为大写字母 (S, S, T)
1. ‘which’ 用来查找可执行文件的绝对路径。
重定向
ls / > ls_out.txt
把根目录下的文件输出结果 重定向到 ls_out.txt中。
>重定向符号老是从零开始写文件,全部若是遇到一个错误的重定向会删除文件
好比 ls /sssd > ls_out.txt
1,高级文件管理
输入输出重定向
标准输入 设备:键盘 标记:0
标准输出 设备:屏幕 标记:1
错误输出 设备:屏幕 标记:2
echo "aminglinux" > aming.log 输出重定向
echo "study.lishiming.net" >> aming.log 追加
cat < /etc/passwd 将文件内容读出作cat命令的输入
若是我想把一个程序的输出存放到单独的一个文件中,那么咱们在这个流程中该如何介入呢?
其实很简单,只是用标记符来控制输出的目标就能够了,例如
ls
/etc/passwd aaa.txt
> out.file 2> err.file 将标准输出与错误输出分别定向到文件
ls
/etc/passwd aaa.txt
&> all.file 将错误输出和标准输出合并定向到文件
ls /etc/passwd aaa.txt
>/dev/null 2>&1 将错误输出和标准输出合并定向到系统黑洞
ls -l /bin/usr &> ls-output.txt
注意重定向的顺序安排很是重要。标准错误的重定向必须老是出如今标准输出重定向以后,
要否则它不起做用
经过重定向输出结果到一个特殊的
叫作 “/dev/null” 的文件。这个文件是系统设备,叫作位存储桶,它能够接受输入,而且对输
入不作任何处理。
/dev/null /dev/zero 介绍
/dev/null 是系统的黑洞
/dev/zero 是系统的零发生器
dd if=/dev/zero of=/root/big_file bs=10 count=1M
wc 计算文件的行数,单词数,字节数
# wc /etc/passwd
40 59 1800 /etc/passwd
# wc -l /etc/passwd
40 /etc/passwd
# wc -w /etc/passwd
59 /etc/passwd
# wc -c /etc/passwd
1800 /etc/passwd
#
grep正则介绍
^ 行首
$ 行尾
v 取反
n 显示行号
c 统计行数
diff
对比两文件的差别
d 删除了(delete) -a 新增了(append) -c 改变了(change)
cp /etc/passwd passwd1
删几行 改几行 加几行看看效果
diff /etc/passwd passwd1
uniq 对文件去重
uniq -c file 显示file文件中重复的行出现的次数
uniq -d file 只显示重复的行,没重复的不显示
cut 按列提取文件
-d 指明列分隔符 -f 选择输出的区域 -c 指定字符位置
# cut -d: -f 1,7 /etc/passwd |head -n 2
root:/bin/bash
bin:/sbin/nologin
# cut -c 1-3,6-9 /etc/passwd |head -n 2
tr 字符的删除替换
-d 删除
# tr -d : < /etc/passwd |head -n 2
替换
# tr 'abc' 'ABC' < /etc/passwd |head -n 2
# tr 'abc' 'A
' < /etc/passwd |head -n 2
# tr 'a-z' 'A-Z' < /etc/passwd |head -n 2
sort 排序输出
默认按首字符从头到尾的顺序排序
-r 逆序
-n 按数字排序
-t 指明分隔符 与 -k 连用
-k 按指定的域排序
#
sort -t: -k 3 /etc/passwd
| 管道妙用
将上一个命令的标准输出,传递给下一个命令作标准输入
cat /etc/passwd | head -n 3 | cut -d: -f 1,3,7 |sort -rt: -k 2 |tr [a-z] [A-Z]
xargs
前面咱们学习了管道,管道只是让后面的命令从前一个命令获取输入
那咱们要创建一个/etc/passwd第一域(用户名)的目录的话,只利用管道就没法实现了
# cut -d: -f 1 /etc/passwd |head -n 5 | mkdir
mkdir: 缺乏操做数
请尝试执行“mkdir --help”来获取更多信息。
# cut -d: -f 1 /etc/passwd |head -n 5 | xargs mkdir
# ls
adm bin daemon lp root
查找文件
which 搜索命令的位置 搜索的源是$PATH
# which ls
alias ls='ls --color=tty'
/bin/ls
#
which cat
locate 搜索全部文件 搜索的源始updatadb库 库按期更新 因此不能搜到最新的资料
locate passwd | head -n 3
find 搜索真实文件系统,搜索方式多样
find .
-type 类型 f d l p c b
-name 名称 能够通配
-size 大小 +1M 大于1M,-1M 小于1M,1M 等于1M
-user 文件拥有者
-group文件属组
-perm 权限 有+ -时0是通配;
+表明(或)三组权限匹配其中之一;好比 r-x 知足r-- --x r-x 三个都成立
-表明(与)三组权限同时匹配; 好比 r-xr-xr-x 知足r----xr-x 也算成立
-o 或
-not 非
-ls 详细信息
-exec CMD {} \; -ok CMD {} \;
-mtime +3 从当天向历史天数推算的第三天前(三天前 不包含第三天)
-atime -3 从当前向历史天数推算的前三天至当天这个段范围
-ctime 3 从当天向历史天数推算的第三天
与管道连用 | xargs
cat 能够捕捉键盘输入当没有任何参数跟随的时候, 因此能够用从定向捕捉键盘输入到文本中。
ctrl +d
1,怎么查看命令帮助
ls --help
man ls
百度搜索或google搜索,例如:ls命令详解
2,基本文件管理,经过从【查,建,删,改】四个维度介绍了不一样的命令。
查:(ls,cat,more,less,head,tail,rev,tac)
ls -a 查看目录中全部的文件,包括隐藏文件(以.开头的)
ls -l 查看目录中文件的详细信息
ls -t 以时间前后顺序显示结果
ls -h 显示文件大小
ls -d 查看目录信息
ls -i 显示inode节点
cat 查看文件文件,只显示最后一页,例如cat /etc/passwd
more 分屏显示,按空格键翻页,没法前翻
less 可上下滚动查看文件内容
head 默认只显示前10行
head -20 /etc/passwd 显示前20行
tail 默认显示最后10行
tail -20 /etc/passwd 显示最后20行
rev 使文件内容左右颠倒
tac 使文件内容先后颠倒
建:(mkdir ,touch,vim)
mkdir aminglinux 建立一个aminglinux目录
mkdir a b c 依次在当前目录下建立a b c 同级目录
mkdir -p aa/bb/cc 递推建立aa bb cc目录,aa目录包含bb,bb目录包含cc
删:(cp, mv,rm)
cp a b 将文件a复制一份成b
cp -r 复制目录,默认不加-r只能复制文件
mv 移动或更名
rm 删除文件
rm -r 删除目录,默认不加-r只能删除文件
rm -f 强制删除,不提示
3,用户管理 (增删改切)
用户都存储哪些信息? /etc/passwd
用户名 密码控位键 用户UID 组GID 用户描述信息 用户家目录 用户shell
linux系统是支持多用户的系统
用户分为三种以UID来区分
超级用户 UID = 0 在系统中拥有至高无上的权限.
系统用户 UID 1-499 bin,ftp,mail等,不具有登陆系统的权利,倒是系统运行不可缺乏的.
普通用户 UID 500以上 管理员创建的用户.密码和权限都由管理员制定.
useradd user1 建立用户user1
-u UID
-d 家目录
-g GID
-c 用户描述信息
passwd user1 给user1设置密码
usermod 修改用户属性命令
-u UID
-d 家目录
-g GID
-s 指定用户shell
userdel
-r 删除用户及用户家目录
su 切换用户
以root用户切换其余用户则不须要密码
而其余用户作任何切换都须要密码
su -
加 - 与不加 - 的区别
登陆后检查
whoami 查看当前用户身份
who 查看登陆本机用户及来源ip
w 查看登陆用户在作什么
id 查看用户和查看用户所属的组
users 都有哪些登陆用户
退出登录
exit 退出登录shell
---------------------------------------------------------------------------------------------------------------------
1. 救援模式
如果真机,须要有安装光盘或者U盘,重启进入bios调成光驱启动,选择 ‘Rescue installed system’
语言咱们默认,键盘类型也默认
Rescue Method 也保持默认
是否在使用rescue模式的时候启用网络,这个根据实际状况,在这里阿铭选择NO(使用tab键)
三种模式能够选择:shell 模式会直接进入命令行,能够进行的操做有编辑文件、修改用户密码等; fakd 是诊断模式; reboot 会直接重启; 选择第一个shell模式
执行一个命令:chroot /mnt/sysimage
2. Linux启动过程
BIOS加电自检,找启动介质则找到MBR
找到MBR后,则根据bootloader(grub)设置找到内核所在位置
执行Linux内核映像代码,检测和加载硬件驱动
驱动加载完成后,内核把主动权交给了init
init会根据系统设定的运行级别作系统初始化
/etc/init/rcS.conf
exec /etc/rc.d/rc.sysinit -> 激活交换分区,检查磁盘,加载硬件模块以及其它一些须要优先执行任务
exec /etc/rc.d/rc $RUNLEVEL ($RUNLEVEL == 3)
/etc/rc.d/rc3.d/
/etc/rc.d/rc.local
创建终端:6个tty和1个图形
用户登陆
3. 命令ls
-l 详细信息
-a 查看隐藏的文件或目录
-d 只看目录自己,不列出目录下面的文件和目录
-t 以时间前后排序
5. cd命令
cd 后面不加东西,就是进入到当前用户的家目录
cd ~ 这里的~符号也表示用户的家目录
cd - 切换到上一次所在的目录
cd . .. 其中.表示当前目录, ..表示上一级目录
注意区分绝对路径,相对路径概念,其中绝对路径是从/开始的
6. 环境变量PATH的用法
echo $PATH 能够查看系统的环境变量PATH的值,使用which命令能够查看某个命令所在的绝对路径
PATH=$PATH:/tmp 这样咱们可使用/tmp/下面的可执行文件做为命令
让PATH永久生效的,须要把它加入到/etc/profile 里,重启生效,或者直接运行命令:
source /etc/profile
alias设置命令的别名,例如 alias aming='ls -lt'
解除别名使用 unalias aming
让别名永久生效,须要把设置别名的命令,加入到 ~/.bashrc 里
7. man 的用法
默认,咱们安装的CentOS没有这个命令,须要使用yum工具安装它: yum install -y man
想查看一个命令的具体用法,就可使用man来查询一下文档,好比,man ls 能够查看ls命令的用法
咱们还可使用man来查看某个配置文件的用法,好比 man passwd
8. 快捷键
Ctrl+c 取消命令
Ctrl+z 暂停命令
Ctrl+a 光标到行首
Ctrl+e 光标到行尾
Ctrl+u 删除光标前全部字符
Ctrl+k 删除光标后全部字符
Ctrl+l 清屏
Ctrl+d 退出登陆 == exit
Ctrl+s 锁住命令终端,按任何键都不会有反应
Ctrl+q 解锁命令终端
9. grub密码
配置文件/etc/grub.conf,这个文件实际上是一个软链接文件(相似于win下的快捷方式),真正的文件是/boot/grub/grub.conf
在hiddenmenu下加入一行(明文):
password 123456
密文:输入命令
grub-md5-crypt
而后输入密码,
编辑/etc/grub.conf,加入:
password --md5 上面的字符串
---------------------------------------------------------------------------------------------------------------------------------------------------------
单引号表明字符串
双引号
若是你把文本放在双引号中,shell 使用的特
殊字符,除了 $,\ (反斜杠) ,和 ‘(倒引号)以外,则失去它们的特殊含义,被看成普通字符
来看待。
记住,在双引号中,参数展开,算术表达式展开,和命令替换仍然有效: