Inode Structure POSIX

inode mode 0644 uid 1000 gid 1000 size 4096 mtime block ptrs Block 0 Block 1 Block 2 ... 4KB each (typical)
FieldSizeDescription
mode2 bytesFile type + permissions
uid4 bytesOwner user ID
gid4 bytesOwner group ID
size8 bytesFile size in bytes
atime8 bytesLast access time
mtime8 bytesLast modification time
ctime8 bytesLast status change time
nlinks2 bytesHard link count

File Permissions chmod

- type rwx owner r-x group r-x others =755
-rwxr-xr-x  1 user group  4096 Dec 27 12:00 script.sh
drwxr-xr-x  2 user group  4096 Dec 27 12:00 directory/
-rw-r--r--  1 user group  1024 Dec 27 12:00 document.txt
OctalBinaryPermissionsCommon Use
755111 101 101rwxr-xr-xExecutables, directories
644110 100 100rw-r--r--Regular files
600110 000 000rw-------Private files (SSH keys)
777111 111 111rwxrwxrwxFull access (avoid)
700111 000 000rwx------Private directories
BitValueMeaning
r4Read
w2Write
x1Execute (files) / Search (directories)

Directory Entry dirent

directory entries . inode 42 .. inode 2 file.txt inode 128 images/ inode 256 inode 128 metadata + blocks filename to inode
EntryDescription
.Current directory (self-reference)
..Parent directory
filenameMaps name to inode number
FilesystemMax FilenameMax Path
ext4255 bytes4096 bytes
APFS255 UTF-8 chars1024 chars
NTFS255 UTF-16 chars32767 chars

Filesystem Defaults ext4, APFS, NTFS

Propertyext4APFSNTFS
Block size4 KB4 KB4 KB
Max file size16 TB8 EB16 EB
Max volume size1 EB16 EB16 EB
Inode size256 bytesvariable1 KB (MFT)
JournalingYesYes (COW)Yes
Case-sensitiveYesOptionalNo*
Block SizeDescription
512 BTraditional sector size
4 KBTypical filesystem block (modern default)
4 KBMemory page size (most architectures)

File Descriptors POSIX

process fd table 0 stdin 1 stdout 2 stderr keyboard terminal terminal input output errors
# Redirect stdout to file
command > output.txt

# Redirect stderr to file
command 2> errors.txt

# Redirect both
command > output.txt 2>&1

# Pipe stdout to next command
command1 | command2
FDNameDefaultC Constant
0stdinKeyboard inputSTDIN_FILENO
1stdoutTerminal outputSTDOUT_FILENO
2stderrTerminal (errors)STDERR_FILENO
3+(user)Opened files/sockets-
LimitDefaultDescription
Soft limit1024Per-process open files (ulimit -n)
Hard limit4096+Kernel maximum per process
System-widevaries/proc/sys/fs/file-max

File Types stat

SymbolTypeDescription
-Regular fileData storage
dDirectoryContains entries
lSymbolic linkPoints to path
cCharacter device/dev/tty, /dev/null
bBlock device/dev/sda, /dev/nvme0n1
pNamed pipe (FIFO)IPC mechanism
sSocketUnix domain socket