一、文件管理

1.1、Linux下的文件类型

● -  普通文件

● d 目录文件directory

● b 块设备blocks

● c字符设备character

● |符号链接文件link

●p管道文件pipe

●s套接字文件socket

范例:

 1 [root@centos7 ~]#ls -l /run/2 total 603 drwxr-xr-x.  2 root           root            100 Mar 29 09:32 abrt4 -rw-------.  1 root           root             11 Mar 29 09:32 alsactl.pid5 -rw-r--r--.  1 root           root              5 Mar 29 09:32 atd.pid6 -rw-r--r--.  1 root           root              4 Mar 29 09:32 auditd.pid7 prw-------.  1 root           root              0 Mar 29 09:32 autofs.fifo-misc8 prw-------.  1 root           root              0 Mar 29 09:32 autofs.fifo-net9 drwxr-xr-x.  2 avahi          avahi            80 Mar 29 09:32 avahi-daemon
10 drwxr-xr-x.  2 root           root             40 Mar 29 09:32 console
11 -rw-r--r--.  1 root           root              5 Mar 29 09:32 crond.pid
12 ----------.  1 root           root              0 Mar 29 09:32 cron.reboot
13 drwx------.  2 root           root             40 Mar 29 09:32 cryptsetup
14 drwxr-xr-x.  3 root           lp               80 Mar 29 09:32 cups
15 drwxr-xr-x.  2 root           root             60 Mar 29 09:32 dbus
16 -rw-r--r--.  1 root           root              5 Mar 29 19:18 dhclient-ens33.pid
17 prw-------.  1 root           root              0 Mar 29 09:32 dmeventd-client
18 prw-------.  1 root           root              0 Mar 29 09:32 dmeventd-server
19 -rw-------.  1 root           root              0 Mar 29 09:32 ebtables.lock
20 drwxr-xr-x.  2 root           root             40 Mar 29 09:32 faillock
21 drwxr-x---.  2 root           root             40 Mar 29 14:20 firewalld
22 -rw-------.  1 root           root              4 Mar 29 09:32 gssproxy.pid
23 srw-rw-rw-.  1 root           root              0 Mar 29 09:32 gssproxy.sock
24 drwxr-xr-x.  4 root           root            100 Mar 29 09:32 initramfs
25 -rw-r--r--.  1 root           root              4 Mar 29 09:32 ksmtune.pid
26 drwxr-xr-x.  7 root           root            240 Mar 29 09:32 libvirt
27 -rw-r--r--.  1 root           root              4 Mar 29 09:32 libvirtd.pid
28 drwxr-xr-x.  8 root           root            220 Mar 29 10:12 lock
29 drwxr-xr-x.  3 root           root             60 Mar 29 09:32 log
30 drwxrwxr-x.  3 root           libstoragemgmt   60 Mar 29 09:32 lsm
31 drwx------.  2 root           root             80 Mar 29 09:32 lvm
32 -rw-r--r--.  1 root           root              4 Mar 29 09:32 lvmetad.pid
33 srwxr-xr-x.  1 root           root              0 Mar 29 09:32 mcelog-client
34 -rw-r--r--.  1 root           root              3 Mar 29 09:32 mcelog.pid
35 drwx--x---.  2 root           root             40 Mar 29 09:32 mdadm
36 drwxr-xr-x.  2 root           root             40 Mar 29 09:32 mount
37 drwxrwxr-x.  2 root           root             40 Mar 29 09:32 netreport
38 drwxr-xr-x.  4 root           root            140 Mar 29 14:20 NetworkManager
39 drwxr-xr-x.  2 root           root             40 Mar 29 09:32 plymouth
40 drwxr-xr-x.  2 root           root             40 Mar 29 09:32 ppp
41 drwxr-xr-x.  2 radvd          radvd            40 Mar 29 09:32 radvd
42 drwx------.  2 rpc            rpc              40 Mar 29 09:32 rpcbind
43 -r--r--r--.  1 root           root              0 Mar 29 09:32 rpcbind.lock
44 srw-rw-rw-.  1 root           root              0 Mar 29 09:32 rpcbind.sock
45 -rw-r--r--.  1 rpcuser        rpcuser           5 Mar 29 09:32 rpc.statd.pid
46 drwxr-xr-x.  2 root           root             40 Mar 29 09:32 samba
47 drwxrwxr-x.  2 root           screen           40 Mar 29 09:32 screen
48 drwxr-xr-x.  2 root           root             40 Mar 29 09:32 sepermit
49 drwxr-xr-x.  2 root           root             40 Mar 29 09:32 setrans
50 drwx--x--x.  2 setroubleshoot setroubleshoot   40 Mar 29 09:32 setroubleshoot
51 -rw-------.  1 root           root              5 Mar 29 09:32 sm-notify.pid
52 drwxr-xr-x.  2 root           root             40 Mar 29 09:32 spice-vdagentd
53 -rw-r--r--.  1 root           root              5 Mar 29 09:32 sshd.pid
54 drwx--x--x.  3 root           root             60 Mar 29 09:32 sudo
55 drwxr-xr-x.  2 root           root             60 Mar 29 09:32 sysconfig
56 -rw-------.  1 root           root              4 Mar 29 09:32 syslogd.pid
57 drwxr-xr-x. 18 root           root            440 Mar 29 09:32 systemd
58 drwxr-xr-x.  2 root           root             60 Mar 29 09:32 tmpfiles.d
59 drwxr-xr-x.  2 root           root             60 Mar 29 09:32 tuned
60 drwxr-xr-x.  7 root           root            160 Mar 29 09:35 udev
61 drwxr-xr-x.  3 root           root             60 Mar 29 09:34 user
62 -rw-rw-r--.  1 root           utmp           1920 Mar 29 16:31 utmp
63 drwxr-xr-x.  2 root           root             60 Mar 29 09:32 vmware
64 -rw-------.  1 root           root              0 Mar 29 09:32 xtables.lock

1.2、文件操作命令

1.2.1显示当前工作目录

Linux pwd命令用于显示工作目录。

执行pwd指令可立刻得知您目前所在的工作目录的绝对路径名称。

● -p显示真实物理路径

● -l 显示链接路径

范例:

1 [root@centos7 ~]#pwd
2 /root
3 [root@centos7 ~]#cd /data
4 [root@centos7 data]#pwd
5 /data
6 [root@centos7 data]#

1.2.2、切换目录

Linux cd命令用于切换当前工作目录至 dirName(目录参数)。

其中 dirName 表示法可为绝对路径或相对路径。若目录名称省略,则变换至使用者的 home 目录 (也就是刚 login 时所在的目录)。

另外,”~” 也表示为 home 目录 的意思,”.” 则是表示目前所在的目录,”..” 则表示目前目录位置的上一层目录。

●切换至父目录:cd ..

●切换至当前用户主目录:cd

●切换至以前的工作目录:cd -

范例:

1 [root@centos7 data]#cd /etc/sysconfig/
2 [root@centos7 sysconfig]#cd ..
3 [root@centos7 etc]#cd
4 [root@centos7 ~]#cd -
5 /etc
6 [root@centos7 etc]#

1.2.3、列出目录内容

ls命令可以列出当前目录的内容或指定目录

● -a 包含隐藏文件

● -l 显示额外的信息

● -R 目录递归

● -ld 目录和符号链接信息

● -1 文件分行显示

● -S 按从大到小排序

● -t 按mtime排序

● -u 配合-t选项,显示并按atime从新到j旧排序

● -U 按目录存放顺序显示

● - X 按文件后缀排序

范例:

[root@centos7 ~]#ls -R /boot
/boot:
config-3.10.0-1062.el7.x86_64
efi
grub
grub2
initramfs-0-rescue-2fab55e6ef42422b8cfc57ccd7db581f.img
initramfs-3.10.0-1062.el7.x86_64.img
initramfs-3.10.0-1062.el7.x86_64kdump.img
symvers-3.10.0-1062.el7.x86_64.gz
System.map-3.10.0-1062.el7.x86_64
vmlinuz-0-rescue-2fab55e6ef42422b8cfc57ccd7db581f
vmlinuz-3.10.0-1062.el7.x86_64/boot/efi:
EFI/boot/efi/EFI:
BOOT  centos/boot/efi/EFI/BOOT:
BOOTX64.EFI  fallback.efi  fbx64.efi/boot/efi/EFI/centos:
BOOT.CSV     fw            fwupx64.efi  MokManager.efi  shimx64-centos.efi
BOOTX64.CSV  fwupia32.efi  mmx64.efi    shim.efi        shimx64.efi/boot/efi/EFI/centos/fw:/boot/grub:
splash.xpm.gz/boot/grub2:
device.map  fonts  grub.cfg  grubenv  i386-pc  locale/boot/grub2/fonts:
unicode.pf2/boot/grub2/i386-pc:
acpi.mod              gdb.mod                   pata.mod
adler32.mod           geli.mod                  pbkdf2.mod
affs.mod              gettext.mod               pbkdf2_test.mod
afs.mod               gfxmenu.mod               pcidump.mod
ahci.mod              gfxterm_background.mod    pci.mod
all_video.mod         gfxterm_menu.mod          plan9.mod
aout.mod              gfxterm.mod               play.mod
archelp.mod           gptsync.mod               png.mod
ata.mod               gzio.mod                  priority_queue.mod
at_keyboard.mod       halt.mod                  probe.mod
backtrace.mod         hashsum.mod               procfs.mod
bfs.mod               hdparm.mod                progress.mod
biosdisk.mod          hello.mod                 pxechain.mod
bitmap.mod            help.mod                  pxe.mod
bitmap_scale.mod      hexdump.mod               raid5rec.mod
blocklist.mod         hfs.mod                   raid6rec.mod
blscfg.mod            hfspluscomp.mod           read.mod
boot.img              hfsplus.mod               reboot.mod
boot.mod              http.mod                  regexp.mod
bsd.mod               iorw.mod                  reiserfs.mod
btrfs.mod             iso9660.mod               relocator.mod
bufio.mod             jfs.mod                   romfs.mod
cat.mod               jpeg.mod                  scsi.mod
cbfs.mod              keylayouts.mod            search_fs_file.mod
cbls.mod              keystatus.mod             search_fs_uuid.mod
cbmemc.mod            ldm.mod                   search_label.mod
cbtable.mod           legacycfg.mod             search.mod
cbtime.mod            legacy_password_test.mod  sendkey.mod
chain.mod             linux16.mod               serial.mod
cmdline_cat_test.mod  linux.mod                 setjmp.mod
cmosdump.mod          loadenv.mod               setjmp_test.mod
cmostest.mod          loopback.mod              setpci.mod
cmp.mod               lsacpi.mod                sfs.mod
command.lst           lsapm.mod                 signature_test.mod
configfile.mod        lsmmap.mod                sleep.mod
core.img              ls.mod                    sleep_test.mod
cpio_be.mod           lspci.mod                 spkmodem.mod
cpio.mod              luks.mod                  squash4.mod
cpuid.mod             lvm.mod                   syslinuxcfg.mod
crc64.mod             lzopio.mod                tar.mod
cryptodisk.mod        macbless.mod              terminal.lst
crypto.lst            macho.mod                 terminal.mod
crypto.mod            mda_text.mod              terminfo.mod
cs5536.mod            mdraid09_be.mod           test_blockarg.mod
datehook.mod          mdraid09.mod              testload.mod
date.mod              mdraid1x.mod              test.mod
datetime.mod          memdisk.mod               testspeed.mod
diskfilter.mod        memrw.mod                 tftp.mod
disk.mod              minicmd.mod               tga.mod
div_test.mod          minix2_be.mod             time.mod
dm_nv.mod             minix2.mod                trig.mod
drivemap.mod          minix3_be.mod             tr.mod
echo.mod              minix3.mod                truecrypt.mod
efiemu.mod            minix_be.mod              true.mod
ehci.mod              minix.mod                 udf.mod
elf.mod               mmap.mod                  ufs1_be.mod
eval.mod              moddep.lst                ufs1.mod
exfat.mod             modinfo.sh                ufs2.mod
exfctest.mod          morse.mod                 uhci.mod
ext2.mod              mpi.mod                   usb_keyboard.mod
extcmd.mod            msdospart.mod             usb.mod
fat.mod               multiboot2.mod            usbms.mod
file.mod              multiboot.mod             usbserial_common.mod
font.mod              nativedisk.mod            usbserial_ftdi.mod
freedos.mod           net.mod                   usbserial_pl2303.mod
fshelp.mod            newc.mod                  usbserial_usbdebug.mod
fs.lst                nilfs2.mod                usbtest.mod
functional_test.mod   normal.mod                vbe.mod
gcry_arcfour.mod      ntfscomp.mod              verify.mod
gcry_blowfish.mod     ntfs.mod                  vga.mod
gcry_camellia.mod     ntldr.mod                 vga_text.mod
gcry_cast5.mod        odc.mod                   video_bochs.mod
gcry_crc.mod          offsetio.mod              video_cirrus.mod
gcry_des.mod          ohci.mod                  video_colors.mod
gcry_dsa.mod          part_acorn.mod            video_fb.mod
gcry_idea.mod         part_amiga.mod            videoinfo.mod
gcry_md4.mod          part_apple.mod            video.lst
gcry_md5.mod          part_bsd.mod              video.mod
gcry_rfc2268.mod      part_dfly.mod             videotest_checksum.mod
gcry_rijndael.mod     part_dvh.mod              videotest.mod
gcry_rmd160.mod       part_gpt.mod              xfs.mod
gcry_rsa.mod          partmap.lst               xnu.mod
gcry_seed.mod         part_msdos.mod            xnu_uuid.mod
gcry_serpent.mod      part_plan.mod             xnu_uuid_test.mod
gcry_sha1.mod         part_sun.mod              xzio.mod
gcry_sha256.mod       part_sunpc.mod            zfscrypt.mod
gcry_sha512.mod       parttool.lst              zfsinfo.mod
gcry_tiger.mod        parttool.mod              zfs.mod
gcry_twofish.mod      password.mod
gcry_whirlpool.mod    password_pbkdf2.mod/boot/grub2/locale:
ast.mo    de@hebrew.mo    en@greek.mo     eo.mo  gl.mo  ja.mo  pl.mo     sv.mo  zh_CN.mo
ca.mo     de.mo           en@hebrew.mo    es.mo  hu.mo  lt.mo  pt_BR.mo  tr.mo  zh_TW.mo
da.mo     en@arabic.mo    en@piglatin.mo  fi.mo  id.mo  nl.mo  ru.mo     uk.mo
de_CH.mo  en@cyrillic.mo  en@quot.mo      fr.mo  it.mo  pa.mo  sl.mo     vi.mo

1.2.4、查看文件状态

每个文件有三个时间戳:
access time 访问时间,atime,读取文件内容
modify time 修改时间,mtime,改变文件内容(数据)
change time 改变时间,ctime,元数据发生改变

范例:

[root@centos7 ~]#stat /etc/passwdFile: ‘/etc/passwd’Size: 2256          Blocks: 8          IO Block: 4096   regular file
Device: 802h/2050d    Inode: 134330564   Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Context: system_u:object_r:passwd_file_t:s0
Access: 2020-03-29 15:50:01.109177374 +0800
Modify: 2020-03-17 10:50:55.021029137 +0800
Change: 2020-03-17 10:50:55.022029138 +0800Birth: -
[root@centos7 ~]#

1.2.5、Linux和windows文本格式转换

范例:

 1 [root@centos8 data]#dnf -y install dos2unix                         安装转换工具2 [root@centos8 data]#dos2unix win.txt                                将Linux的文本格式转换为Windows的文本格式3 dos2unix: converting file win.txt to Unix format...  4 [root@centos8 data]#file win.txt5 win.txt: ASCII text6 7 [root@centos8 data]#unix2dos win.txt                                将Windows的文本格式转换为Linux的文本格式8 unix2dos: converting file win.txt to DOS format...9 [root@centos8 data]#file win.txt
10 win.txt: ASCII text, with CRLF line terminators

1.2.6、文件通配符

*         匹配零个或多个字符,但不匹配 "." 开头的文件,即隐藏文件
?        匹配任何单个字符
~        当前用户家目录
~        mage 用户mage家目录
~+和.  当前工作目录
~-       前一个工作目录
[0-9]    匹配数字范围
[a-z]    字母
[A-Z]   字母
[wang] 匹配列表中的任何的一个字符
[^wang] 匹配列表中的所有字符以外的字符
[:digit:]:任意数字,相当于0-9
[:lower:]:任意小写字母,表示 a-z
[:upper:]: 任意大写字母,表示 A-Z
[:alpha:]: 任意大小写字母
[:alnum:]:任意数字或字母
[:blank:]:水平空白字符
[:space:]:水平或垂直空白字符
[:punct:]:标点符号
[:print:]:可打印字符
[:cntrl:]:控制(非打印)字符
[:graph:]:图形字符
[:xdigit:]:十六进制字符

范例:

 1 [root@centos7 data]#touch file{a..z}.txt2 [root@centos7 data]#ls3 filea.txt  filee.txt  filei.txt  filem.txt  fileq.txt  fileu.txt  filey.txt4 fileb.txt  filef.txt  filej.txt  filen.txt  filer.txt  filev.txt  filez.txt5 filec.txt  fileg.txt  filek.txt  fileo.txt  files.txt  filew.txt6 filed.txt  fileh.txt  filel.txt  filep.txt  filet.txt  filex.txt7 [root@centos7 data]#touch file{0..9}.txt8 [root@centos7 data]#ls9 file0.txt  file5.txt  filea.txt  filef.txt  filek.txt  filep.txt  fileu.txt  filez.txt
10 file1.txt  file6.txt  fileb.txt  fileg.txt  filel.txt  fileq.txt  filev.txt
11 file2.txt  file7.txt  filec.txt  fileh.txt  filem.txt  filer.txt  filew.txt
12 file3.txt  file8.txt  filed.txt  filei.txt  filen.txt  files.txt  filex.txt
13 file4.txt  file9.txt  filee.txt  filej.txt  fileo.txt  filet.txt  filey.txt

1 [root@centos7 data]#ls file[:lower:].txt
2 filee.txt  filel.txt  fileo.txt  filer.txt  filew.txt

1.2.7、复制文件和目录

Linux cp命令主要用于复制文件或目录

●  -i   如果目标已存在,覆盖前提示是否覆盖
●  -n  不覆盖,注意两者顺序
●  -r, -R 递归复制目录及内部的所有内容
●  -a 归档,相当于-dR --preserv=all,常用于备份功能
●  -d --no-dereference --preserv=links 不复制原文件,只复制链接名
●  --preserv[=ATTR_LIST]
mode: 权限
ownership: 属主属组
timestamp:
links
xattr
context
all
●  -p 等同--preserv=mode,ownership,timestamp
●  -v --verbose
●  -f --force
●  -u --update 只复制源比目标更新文件或目标不存在的文件
●  -b 目标存在,覆盖前先备份,默认形式为 filename~ ,只保留最近的一个备份
●  --backup=numbered 目标存在,覆盖前先备份加数字后缀,形式为 filename.~#~ ,可以保留多个版本

范例:

1 [root@centos7 data]#cp /etc/issue ./issue.bak          复制/etc/issue到当前目录下改名为issue.bak
2 [root@centos7 data]#ll !*                              执行上一条命令的参数
3 ll /etc/issue ./issue.bak
4 -rw-r--r--. 1 root root 23 Sep  5  2019 /etc/issue
5 -rw-r--r--. 1 root root 23 Mar 29 20:46 ./issue.bak
6 [root@centos7 data]#date
7 Sun Mar 29 20:46:38 CST 2020

 1 [root@centos7 data]#cp -p /root/windows2.txt windows3.txt2 [root@centos7 data]#ls3 file0.txt  file5.txt  filea.txt  filef.txt  filek.txt  filep.txt  fileu.txt  filez.txt4 file1.txt  file6.txt  fileb.txt  fileg.txt  filel.txt  fileq.txt  filev.txt  issue.bak5 file2.txt  file7.txt  filec.txt  fileh.txt  filem.txt  filer.txt  filew.txt  windows3.txt6 file3.txt  file8.txt  filed.txt  filei.txt  filen.txt  files.txt  filex.txt7 file4.txt  file9.txt  filee.txt  filej.txt  fileo.txt  filet.txt  filey.txt8 [root@centos7 data]#ll /root/windows2.txt windows3.txt 9 -rw-r--r--. 1 root root 9 Mar 24 09:49 /root/windows2.txt
10 -rw-r--r--. 1 root root 9 Mar 24 09:49 windows3.txt

1.2.8、移动和重命名文件

mv 命令可以实现文件或目录的移动和改名
同一分区移动数据,速度很快:数据位置没有变化
不同分区移动数据,速度相对慢:数据位置发生了变化
●   -i 交互式
●   -f 强制
●   -b目标存在。覆盖前先备份
范例:
移动文件

移动文件夹

rename可以批量修改文件名

1 [root@centos7 data]#touch file{1..10}conf
2 [root@centos7 data]#ls
3 file10conf  file2conf  file4conf  file6conf  file8conf
4 file1conf   file3conf  file5conf  file7conf  file9conf
5 [root@centos7 data]#rename conf conf.bak *
6 [root@centos7 data]#ls
7 file10conf.bak  file2conf.bak  file4conf.bak  file6conf.bak  file8conf.bak
8 file1conf.bak   file3conf.bak  file5conf.bak  file7conf.bak  file9conf.bak
9 [root@centos7 data]#

1.2.9、硬链接和软连接的区别

1. 本质:
硬链接:本质是同一个文件
软链接:本质不是同一个文件
2. 跨设备
硬链接:不支持
软链接:支持
3. inode
硬链接:相同
软链接:不同
4. 链接数
硬链接:创建新的硬链接,链接数会增加,删除硬链接,链接数减少
软链接:创建或删除,链接数不会变化
5. 文件夹
硬链接:不支持
软链接:支持
6. 相对路径
硬链接:原始文件相对路径是相对于当前工作目录
软链接:原始文件的相对路径是相对于链接文件的相对路径
7. 删除源文件
硬链接:只是链接数减一,但链接文件的访问不受影响
软链接:链接文件将无法访问
8. 文件类型
硬链接:和源文件相同
软链接:链接文件,和源文件无关

创建硬链接(不允许跨分区创建,不允许创建文件夹的硬链接)

创建软链接

二、标准I/O重定向和管道

2.1、标准输入和输出

Linux给程序提供三种I/O设备

标准输入   -0   默认接受来自终端窗口的输入

标准输出   -1   默认输出到终端窗口

标准错误   -2   默认输出到终端窗口

 1 root@centos7 ~]#ll /dev/std*2 lrwxrwxrwx. 1 root root 15 Mar 29 09:32 /dev/stderr -> /proc/self/fd/23 lrwxrwxrwx. 1 root root 15 Mar 29 09:32 /dev/stdin -> /proc/self/fd/04 lrwxrwxrwx. 1 root root 15 Mar 29 09:32 /dev/stdout -> /proc/self/fd/15 [root@centos7 ~]#ll /proc/self/fd/*6 ls: cannot access /proc/self/fd/255: No such file or directory7 ls: cannot access /proc/self/fd/3: No such file or directory8 lrwx------. 1 root root 64 Mar 29 21:43 /proc/self/fd/0 -> /dev/pts/19 lrwx------. 1 root root 64 Mar 29 21:43 /proc/self/fd/1 -> /dev/pts/1
10 lrwx------. 1 root root 64 Mar 29 21:43 /proc/self/fd/2 -> /dev/pts/1

2.2、I/O重定向

2.2.1、标准输出和错误重定向

支持的操作符号包括:

1> 或 >  把标准输出重定向到文件

2>          把标准错误重定向到文件

&            把所有输出重定向到文件

以上如果文件已存在,文件内容会被覆盖

set  -c  禁止将内容覆盖已有文件,但可追加,利用>|仍可强制覆盖

set +c  允许覆盖,默认

标准输出范例:

hostname 1> /dev/pts/1  在当前pts0终端输入该命令,输出到pts1终端

将uname  -r 的标准输出结果重定向到/data/stdout.log文件下,当前data下没有stdout.log文件执行命令会创建文件。(如果再执行一次会覆盖当前文件)

两个>不会覆盖原文件内容只会追加

()将多个命令的执行结果重定向到/data/f1.log文件

标准错误范例:

将执行xxx的错误输出命令放到/data/f1.log下

删除/data/f1.log将提示信息重定向到/data/all.log文件

加上&符号将执行命令的正确和错误信息都存到 /data/all.log中

清除大文件

2.2.2、标准输入重定向

利用<可以将标准输入重定向

范例:

将1-100相加的算式重定向到bc.log文件中,将bc.log重定向输入到bc计算机程序中

多行重定向

范例:

1 [root@centos7 data]#cat > /data/cat1.log <<EOF
2 > 1
3 > 1
4 > EOF
5 [root@centos7 data]#cat cat1.log
6 1
7 1

2.3、管道

管道用来连接多个命令

将命令1的标准输出发送给命令2的标准输入,命令2的标准输出发送到命令3的标准输入

所有命令会在当前shell进程的子shell进程中执行

范例:

管道符左边的命令输出的结果,传给右边输入执行

三、用户、组和权限

用户管理命令

useradd

usermod

userdel

组账户维护命令

groupadd

groupmod

groupdel

3.1、用户创建

  • -c<备注>  加上备注文字。备注文字会保存在passwd的备注栏位中。
  • -d<登入目录>  指定用户登入时的启始目录。
  • -D  变更预设值.
  • -e<有效期限>  指定帐号的有效期限。
  • -f<缓冲天数>  指定在密码过期后多少天即关闭该帐号。
  • -g<群组>  指定用户所属的群组。
  • -G<群组>  指定用户所属的附加群组。
  • -m  自动建立用户的登入目录。
  • -M  不要自动建立用户的登入目录。
  • -n  取消建立以用户名称为名的群组.
  • -r  建立系统帐号。
  • -s<shell>   指定用户登入后所使用的shell。
  • -u<uid>  指定用户ID。

添加一般用户

# useradd tt

为添加的用户指定相应的用户组

# useradd -g root tt

创建一个系统用户

# useradd -r tt

为新添加的用户指定home目录

# useradd -d /home/myd tt

建立用户且制定ID

# useradd gjz -u 544

典型范例:

生成随机口令

1 [root@centos7 ~]#openssl rand -base64 9
2 3upzvCXUYaUD
3 [root@centos7 ~]#

用户属性修改

Linux usermod命令用于修改用户帐号。

usermod可用来修改用户帐号的各项设定。

  • -c<备注>  修改用户帐号的备注文字。
  • -d登入目录>  修改用户登入时的目录。
  • -e<有效期限>  修改帐号的有效期限。
  • -f<缓冲天数>  修改在密码过期后多少天即关闭该帐号。
  • -g<群组>  修改用户所属的群组。
  • -G<群组>  修改用户所属的附加群组。
  • -l<帐号名称>  修改用户帐号名称。
  • -L  锁定用户密码,使密码无效。
  • -s<shell>  修改用户登入后所使用的shell。
  • -u<uid>  修改用户ID。
  • -U  解除密码锁定。

更改登录目录

# usermod -d /home/hnlinux root

改变用户的uid

# usermod -u 777 root

3.2、创建组

groupadd用于创建一个新的工作组

-g:指定新建工作组的id;
-r:创建系统工作组,系统工作组的组ID小于500;
-K:覆盖配置文件“/ect/login.defs”;
-o:允许添加组ID号不唯一的工作组。

建立一个新组,并设置组ID加入系统:

groupadd -g 344 jsdigname

修改组

Linux groupmod命令用于更改群组识别码或名称。

需要更改群组的识别码或名称时,可用groupmod指令来完成这项工作。

  • -g <群组识别码>  设置欲使用的群组识别码。
  • -o  重复使用群组识别码。
  • -n <新群组名称>  设置欲使用的群组名称。

3.3、文件权限

查看gjz用户所属组

更改文件f1.txt文件所有者root变为wang

更改f1.txt文件的所属组

同时更改f1.txt文件的所有者和所属组(所有者和所属组中间可用.或者:)

参考f1文件属性更f2文件

chown  -R递归更改,将dir1文件夹中的文件夹文件所属者改为mage,所属组改为g1(较危险)

文件开头9个字符中前3个为文件所属者权限,中间3个为所属组权限,最后3个为other其他用户

修改文件权限chmod命令

数字修改权限法

3.3.1、umask新建文件和目录的默认权限

指定umask值为754,默认创建文件夹权限为777-754=023,默认创建文件权限为666-754=022,6-7=-1(结果为奇数+1),6-5=1(结果为奇数+1),6-4=2,结果偶数不变

临时更改umask值创建文件

3.4、对root账户设置权限约束防止误操作

chattr  +i 防止root账户权限过大文件误删除   (不能删除,改名,更改)

chattr  -i取消限制   lsattr   查看

chattr  -a 可以追加内容不能删除改名

3.5ACL访问控制列表

setfacl命令 是用来在命令行里设置ACL(访问控制列表)。在命令行里,一系列的命令跟随以一系列的文件名

-b,--remove-all:删除所有扩展的acl规则,基本的acl规则(所有者,群组,其他)将被保留。
-k,--remove-default:删除缺省的acl规则。如果没有缺省规则,将不提示。
-n,--no-mask:不要重新计算有效权限。setfacl默认会重新计算ACL mask,除非mask被明确的制定。
--mask:重新计算有效权限,即使ACL mask被明确指定。
-d,--default:设定默认的acl规则。
--restore=file:从文件恢复备份的acl规则(这些文件可由getfacl -R产生)。通过这种机制可以恢复整个目录树的acl规则。此参数不能和除--test以外的任何参数一同执行。
--test:测试模式,不会改变任何文件的acl规则,操作后的acl规格将被列出。
-R,--recursive:递归的对所有文件及目录进行操作。
-L,--logical:跟踪符号链接,默认情况下只跟踪符号链接文件,跳过符号链接目录。
-P,--physical:跳过所有符号链接,包括符号链接文件。
--version:输出setfacl的版本号并退出。
--help:输出帮助信息。
--:标识命令行参数结束,其后的所有参数都将被认为是文件名
-:如果文件名是-,则setfacl将从标准输入读取文件名。

setfacl设置acl,getfacl查看acl

删除acl

清空所有acl

递归设置权限

Linux文件管理、标准I/O重定向和管道以及Linux用户、组和权限知识总结相关推荐

  1. 标准I/O重定向和管道

    标准I/O重定向和管道 1.标准输入和输出 程序:指令+数据 读入数据:Input 输出数据:Output 打开的文件都有一个fd: fifile descriptor (文件描述符) Linux给程 ...

  2. linux系统用户,组和权限的管理

    PS: {最近一直在做毕业设计,前面博客也记录过我的一些过程.其中需要在Ubuntu上搭建一个FTP服务器,此处我选择Vsftpd,但是在我对vsftpd的配置文件vsftpd.conf设置正确后(对 ...

  3. Linux 标准输入输出、重定向及管道

    随笔一篇,以便日后翻阅,如有问题欢迎指正 操作环境:Ubuntu 21.10 desktop shell版本:Xshell 因为所学知识有限,所以本文结合了多篇文章的精华并适当添加了自己的内容 其实就 ...

  4. linux apache设置web访问重定向_从零开始学Linux运维|30.Linux的目录结构

    1.tree命令 linux下目录结构跟一个倒过来的树一样的,最顶层就是根目录 / tree这个命令就很形象 它够很方便的查看目录结构 使用"yum install tree -y" ...

  5. Linux bash中I/O重定向及管道

    我们知道,在Linux中一切皆文件.这就意味着,任何一个设备在系统中都有一个文件与之对应.因此我们就可以通过文件来访问设备.对于用户来讲,访问文件就是通过文件名来进行的,用户看到就是一个文件名,但对于 ...

  6. linux 重定向_Unix/Linux编程实践之IO重定向和管道

    I/O重定向的原理模型 ls > test.file是如何工作的?shell是如何告诉程序把结果输出到文件,而不是屏幕? 在who | sort > user.file中,shell是如何 ...

  7. nohup: 忽略输入重定向错误到标准输出端_Linux 重定向与管道

    重定向 重定向 > 重定向追加输入 >> 正确错误都会重定向 &> 标准输入 0 标准输出 1> 或 > (简写) 标准错误 2> FD 文件描述符, ...

  8. Linux中强大的输入输出重定向和管道

    Linux中有三个最重要的输入输出流: Standard Input(STDIN) - 通常指键盘的输入 Standard Output(STDOUT) - 通常指显示器的输出 Standard Er ...

  9. linux允许所有用户执行文件夹,在Linux中,可以使用命令()针对文件newfiles.txt为所有用户添加执行权限。...

    [1]( )鸡冠花的来源是苋科植物鸡冠花的干燥花序. 29.下列酚中,哪个酚酸性最强( ). "多一份经历,就多一件本领"这说明 创建students对象,_______语句可以选 ...

最新文章

  1. R语言使用ggplot2包使用geom_boxplot函数绘制基础分组箱图(手动配置箱图箱体颜色)实战
  2. C# 设置Word文档保护(加密、解密、权限设置)
  3. yd的拔钉子之路之 POI 2017
  4. [How TO]-Ubuntu 20.04修改终端标题栏文字
  5. 无序数组求第k大的数 python_整数无序数组求第K大数
  6. 使用nodejs构建Docker image最佳实践
  7. 想在边缘运行计算机视觉程序?先来迎接挑战!
  8. Linux文件系统IO:直接IO原理与实现:缓存I/O、直接I/O
  9. 数据科学入门的5个技巧
  10. 吴恩达《机器学习训练秘籍》完整中文版,现在可免费下载 | 资源
  11. Notification的使用,以及他的监听方法
  12. 字符串、数组处理方法总结
  13. 有限域f9的特征是多少_密码学数学基本第十一讲有限域.ppt
  14. 电信中兴f452光猫路由改桥接最简单的方式,亲自体验成功。
  15. AirTrest连接模拟器和安卓手机
  16. 中科院毕业去向(硕士+博士)
  17. matlab导弹追踪,导弹追踪代码
  18. 全球喷气发动机收入预计2028年达到1189.6亿美元
  19. 数据库并发抢红包_微信高并发抢红包秒杀实战案例
  20. 学习如何使用html和css样式将两张图片叠加到另一张图片上,实现微信扫一扫二维码效果

热门文章

  1. Docker-端口映射与容器互联
  2. 计算机一级文件题后缀名改吗,计算机一级文件与文件夹操作题
  3. Comparator简单小结
  4. html影音播放器百度云,关于前端直播(videoJS与百度云web播放器:Cyberplayer3.0试用)...
  5. 5G生活到底啥样?一分钟带你提前体验!
  6. 小米大BOSS雷军写Java代码水平如何?一起来扒一扒
  7. python pdf加密以及校验pdf是否是加密的
  8. 什么软件测试鞋子真假,小白如何快速鉴定耐克鞋真假?记住这5点,让你永远识别假鞋...
  9. Qt开发的上位机 硬件:固高八轴运动控制卡,海康威视相机,金橙子板卡,喷码机
  10. php图片水印制作教程,使用PHP给图片加水印的方法