常用命令su ls cp cd mv cat touch mkdir rm head less more pwd tac 等

1.用户切换

su:switch user

su kevin   //半切换,切换到kevin用户,但是不读取kevin用户的配置文件

su - kevin   //完全切换,执行这个命令的时候表示切换到kevin用户,并且重新读取用户环境相关配置文件

clear   /*清屏*/

2.pwd

pwd   //printing working directory,显示当前目录

3.cd

cd:change directory 切换目录

cd 切换到用户的家目录,也就是主目录,Home directory 家目录可以用~表示,所以此命令也可以cd ~

cd ~

cd ~kevin   /*切换到kevin用户的家目录*/    cd ~USERHAME:进入指定用户的家目录,当然对权限有要求

cd -:在当前目录和前一次所在的目录之间来回切换

4.命令历史

history:查看命令历史

-c:清空命令历史

-d:OFFSET[n]:删除指定位置的命令

-w:保存命令历史至历史文件

命令历史的使用技巧:

!n:执行命令历史中的第n条命令

[[email protected] ~]# !15

!-n:执行命令历史中倒数第n条命令

[[email protected] ~]# !-5

!!:执行上一条命令

[[email protected] ~]# !!

!string:执行命令历史中最近一个以指定字符串开头的命令

[[email protected] ~]# !ech

!$:引用前一个命令的最后一个参数

[root[email protected] ~]# nano /tmp/inittab

[[email protected] ~]# 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:以时间先后顺序显示结果

[[email protected] ~]# 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"的意思,新建目录

[[email protected] ~]#mkdir aming ##创建一个名文aming的目录

[[email protected] ~]#mkdir a b c ##依次在当前目录创建a b c三个同级目录

[[email protected] ~]#mkdir -p aa/bb/cc ##递归创建aa bb cc目录,aa目录包含bb,bb目录包含cc

3.rmdir

rmdir是"remove directory"的意思,删除目录,用法同上,-p选项略有不同

[[email protected] ~]#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中的剪切

[[email protected] aa]# mv aaa/bbb . ##将aaa目录下的bbb目录移动到当前目录下

[[email protected] aa]# ls

1.txt  2.txt  aaa  bbb

[[email protected] aa]# mv 2.txt 3.txt  ##将文件2.txt重命名为3.txt

[[email protected] 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:反向显示文本。

[[email protected] ~]# tac /etc/issue

Kernel \r on an \m

CentOS release 6.4 (Final)

- 与cat相反,tac是由最后一行到第一行反向在屏幕上显示出来的。

3.more:分页显示文本,向后翻。

[[email protected] ~]# 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:代表往回翻页,不

- 过这个操作只对文件有用,对管道无用。

more显示内容,翻到最后一页会自动退出。

4.less:分页显示文本;翻到最后不会退出,要按q退出。

命令类似more,不过有些许不同。

- 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:指定要显示的字段

[[email protected] ~]# 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]

[[email protected] ~]# tr ‘abc‘ ‘ABc‘ ##转换字符abc为ABc

abc

ABc

account

Account

begin

Begin

[[email protected] ~]# tr ‘a-z‘ ‘A-Z‘ < /etc/passwd  ##将passwd文件中,a到z的所有字母转换成大写

[[email protected] ~]# tr -d ‘ab‘  ##删除出现在字符集中的ab,如果直接tr -d就是删除字符集中所有字符

aaaaaaabvc

vc

bfdsffa

fdsff

ab

aaaaaaabbbbc

c

split 切割大文件

[[email protected] ~]#split -b70k 2.txt     ##将2.txt文件按大小分割成N个文件,每个文件72k,默认命名为xaa xab xac....

[[email protected] ~]#split -l500 2.txt kevin    ##将2.txt文件按行切割成N个文件,每个文件500行,命名为kevinaa kevinab kevinac...

文件查找:

locate:

locate 数据库由另一个 叫做 updatedb 的程序创建。

这个数据库不是持续更新的,如果新创建的文件去用locate查找,是找不到的,因为没有更新updatedb数据库,这时候需用手动更新一下.

非实时,模糊匹配,查找是根据全系统文件数据库进行的;

updatedb:

手动生成文件数据库

[[email protected] ~]# locate passwd |head -5     ##依据updatedb,可以手动更新updatedb

/etc/passwd

/etc/passwd-

/etc/pam.d/passwd

/etc/security/opasswd

/lib64/security/pam_passwdqc.so

[[email protected] ~]# 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 用来查找某个命令的绝对路径

[[email protected] ~]# which rmdir

/bin/rmdir

host ~]# which rm alias rm=‘

[[email protected]lrm -i‘
        /bin/rm

h ls alias ls=‘ls --color=au

[[email protected] ~]# whicto‘

/bin/ls

rm和ls 是两个特殊命令,使用alias命令做了别名 。我们使用rm 实际使用的事"rm -i" 
ls实际使用的事“ls --color=auto”‘alias’ 可以设置命令的别名也可以设置文件的别名

[[email protected] ~]# echo $PATH//etho表示打印的意思$表示后面连接的是变量

设置环境变量

[[email protected] ~]# 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的改变。

属性 ls -lh

linux文件属性和目录管理:

用ls –l 查看当前目录下的文件时,共显示了9列内容(用空格划分列)

第1列,包含有该文件类型和所属主、所属组以及其他用户对该文件的权限。共11位有的文件是10位,没有最后面的一位。 其中第一位用来描述该文件的类型。

‘d’ 表示该文件为目录;

‘-‘ 表示该文件为普通文件;

‘l’ 表示该文件为链接文件(linux file),上边提到的软链接即为该类型;

‘b’ 表示该文件为块设备,比如 /dev/sda 就是这样的文件。

‘c’ 表示该文件为串行端口设备,例如键盘、鼠标。

‘s’ 表示该文件为套接字文件(socket),用于进程间通信。

第2列,表示为链接占用的节点(inode), [1] 为目录时,通常与该目录底下还有多少目录有关系。

第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)

在linux下搜一个文件

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 使用的特

殊字符,除了 $,\ (反斜杠) ,和 ‘(倒引号)之外,则失去它们的特殊含义,被当作普通字符

来看待。

记住,在双引号中,参数展开,算术表达式展开,和命令替换仍然有效:

时间: 2024-08-10 17:18:59

常用命令su ls cp cd mv cat touch mkdir rm head less more pwd tac 等的相关文章

Linux基础文件管理命令之ls,cd

Linux中提供了大量的命令,使用他们可以简化我们的工作,也许在图形化界面中要点击鼠标十几下操作,而在linux系统中一条命令就可以轻松解决.所以,在Linux系统上工作离不开使用系统提供的命令.要想真正理解Linux系统,就必须从Linux命令学起. linux系统中的命令格式一般如下: 命令格式:   命令  选项  参数     选项:       短选项: -       多个选项可以组合:-a -b = -ab       长选项: -- 参数:命令的作用对象 下面主要介绍ls和cd命

linux 常用命令之ls的使用场景和结果解释

1.列出/linux/ls-file 文件夹下的所有文件和目录的详细资料 [linux ~]$ ls -l -R /linux/ls-file 输入上面的命令回车后,就会显示目录下所有文件的详细信息 在使用 ls 命令时要注意命令的格式:在命令提示符后,首先是命令的关键字,接下来是命令参数,在命令参数之前要有一短横线"-",所有的命令参数都有特定的作用,自己可以根据需要选用一个或者多个参数,在命令参数的后面是命令的操作对象. 在以上这条命令""ls -l -R /l

linux 常用命令之ls的格式和参数

ls命令就是list的缩写,缺省下ls用来打印出当前目录的清单,如果ls指定其他目录,那么就会显示指定目录里的文件及文件夹清单. 通过ls 命令不仅可以查看linux文件夹包含的文件,而且可以查看文件权限(包括目录.文件夹.文件权限),查看目录信息等等,ls 命令在日常的linux操作中用的很多,在此先给大家介绍一下ls 命令格式和参数. ls命令格式:ls [选项] [目录名]. ls命令功能:列出目标目录中所有的子目录和文件. ls 命令的参数选项说明: -a, –all 列出目录下的所有文

linux_常用命令_(ls, lsof,nslookup)_查看文件按照时间排序

平时收集些用到的命令 方便使用 1:  ls -lrt 按时间排序  展示 2:nslookup  查看dns解析 3:lsof -p 进程号 lsof `which httpd` //那个进程在使用apache的可执行文件lsof /etc/passwd //那个进程在占用/etc/passwdlsof /dev/hda6 //那个进程在占用hda6lsof /dev/cdrom //那个进程在占用光驱lsof -c sendmail //查看sendmail进程的文件使用情况lsof -c

笔记3 (目录结构、文件类型、环境变量、命令:ls、cd、mkdir、rmdir、rm、alias、cp、mv)

系统目录结构 ls /  查看根下面的目录 tree命令以树状图列出文件目录结构 tree -L 2 只查看两层 /usr/bin/  /usr/sbin/  /bin/  /sbin/  都是存平时用的命令 /sbin/  下面的命令一般都是root用户的 /bin/   下面的都是普通用户的 /boot/  是存系统启动相关的文件 /dev/   是linux系统里边特有的设备文件 /etc/   是系统一些配置文件所在的路径 /home/  用户的家目录 /lib/ /lib64/ 存系统

Linux常用命令(一) - ls

ls命令是linux下最常用的命令.ls命令就是list的缩写, 缺省下ls用来打印出当前目录的清单, 如果ls指定其他目录, 那么就会显示指定目录里的文件及文件夹清单. 通过ls 命令不仅可以查看linux文件夹包含的文件, 而且可以查看文件权限(包括目录.文件夹.文件权限), 查看目录信息等等.ls 命令在日常的linux操作中用的很多! 1. 命令格式: ls [选项] [目录名] 2. 命令功能: 列出目标目录中所有的子目录和文件. 3. 常用参数: -a, –all 列出目录下的所有文

Linux常用命令简述--ls

一.ls介绍 ls命令是list的简写,用来显示指定目录里的文件及文件夹清单:ls 命令不仅可以查看linux文件夹包含的文件,还可以查看文件权限,目录信息等等 二.常用选项介绍 1.命令格式 ls [选项]... [文件|目录].. 2.常用选项 -a, --all                     不隐藏任何以. 开始的项目 -A, --almost-all              列出除. 及.. 以外的任何项目 --author                  与-l 同时使用

linux-14基础命令之-复制(cp)移动(mv),删除(rm),拷贝文件(dd)

1.cp 命令用于复制文件或者目录 格式为:cp[选项]源文件  目标文件 复制名录有三种情况: @1.目标文件是一个目录,将源复制到该目录下:  @2.目标文件是一个文件,将源文件覆盖该文件: @3. 文件文件不存在,将复制源文件并修改为目标文件的名称: cp 命令参数 参数 作用 -p 保留原始文件的属性 -d 若对象为“连接文件”则保留该“连接文件"属性 -r 递归持续复制 -i  如目标文件存在,则询问是否覆盖 -a 相当于-pdr(p,d,r 为上述的参数) 如:创建一个名为insta

Linux常用命令:ls命令

ls命令是linux下最常用的命令.ls命令就是list的缩写缺省下ls用来打印出当前目录的清单如果ls指定其他目录那么就会显示指定目录里的文件及文件夹清单. 通过ls 命令不仅可以查看linux文件夹包含的文件而且可以查看文件权限(包括目录.文件夹.文件权限)查看目录信息等等.ls 命令在日常的linux操作中用的很多! 1. 命令格式: ls [选项] [目录名] 2. 命令功能: 列出目标目录中所有的子目录和文件. 3. 常用参数: -a, –all 列出目录下的所有文件,包括以